CVE-2026-56706
Executive Summary
CVE-2026-56706 is a critical cryptographic design flaw in the CSRF token mechanism of Adminer, the popular single-file database administration tool, affecting all versions prior to 5.4.3. The vulnerability stems from a token scheme in which each CSRF token is transmitted as the pair (rand XOR secret):rand — meaning the session secret is mathematically recoverable by anyone who observes a single token. An attacker who obtains one token (via network sniffing, log files, HTTP Referrer header leakage, or XSS) can derive the ~20-bit session secret with a single XOR operation and forge unlimited valid tokens, enabling cross-site request forgery against authenticated Adminer sessions, including arbitrary SQL execution against the connected database. The public-facing nature of Adminer instances and its common deployment in admin panels or developer workbenches elevates the real-world exposure, despite a slightly elevated attack complexity stemming from the requirement to first obtain a valid token.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Technical Analysis
The vulnerability class is CSRF token design weakness (CWE-330: Use of Insufficiently Random Values). The NVD description indicates that Adminer's token generation algorithm constructs a token using the format (rand XOR secret):rand. In this format, the token transmits both the masked value (rand XOR secret) and the raw random value (rand) simultaneously. This design guarantees that anyone who observes a single token can perform a simple XOR operation — (rand XOR secret) XOR rand = secret — to recover the full session secret.
The weakness is compounded by three supplementary flaws:
Low entropy session token: The random component
rand(1,1e6)provides only ~20 bits of entropy. This small keyspace makes the secret practically brute-forceable even in the absence of a token leak, as an attacker could enumerate all ~1,000,000 possible secret values and test them against token-verification endpoints.Loose comparison (
==) in verification: The token verification routine uses PHP loose comparison. In PHP,==performs type juggling, enabling edge cases such as"0e123456" == 0evaluating astruedue to the string being interpreted in scientific notation as0 * 10^123456. This introduces the possibility of crafting tokens that bypass verification without possessing the correct secret.Token transmission over multiple potential leak channels: Since tokens are transmitted as clear-text parameters, they may be captured via (a) network sniffing on unencrypted HTTP, (b) server access/error logs, (c) HTTP Referrer headers when Adminer embeds links to external resources, or (d) cross-site scripting vulnerabilities in the same origin or via DOM-based exfiltration.
Affected components: The session token generation and CSRF verification routines inside Adminer's session handling layer. The NVD description does not name specific functions, classes, or file paths; the attack surface is the HTTP endpoints accepting CSRF-protected requests — typically forms for login, database connection, or SQL query submission.
Attack surface: Any deployed Adminer instance (5.4.3 and below). Adminer is a standalone PHP file commonly placed in web roots, often in production environments, dev sandboxes, or exposed admin panels. The CSRF token must be included in state-changing HTTP requests (POST or GET parameters) for actions like executing SQL, creating users, or modifying schema. The attacker's require: victim has an authenticated/active Adminer session and visits a malicious page while authenticated.
Exploitation Scenarios
Prerequisites: The victim must have an active Adminer session (authenticated via database credentials stored in session), and must visit attacker-controlled content (or navigate to a page with attacker-influenced HTTP headers) while that session is alive. The attacker must obtain at least one CSRF token value.
Attack chain:
Reconnaissance / Target Identification: The attacker identifies a target Adminer instance — either via Shodan/Censys fingerprinting (
title:"Adminer", default header responses) or by scanning an organization's public IP ranges for/adminer.php,/adminer/,/dbadmin/, or similar paths. The attacker checks the version via the footer or login page (Adminer displays version in the page footer on default template).Token Acquisition: If the target runs plain HTTP, the attacker passively sniffs traffic to capture a CSRF token (
(rand XOR secret):rand). If the target is behind HTTPS, the attacker may attempt to retrieve a token via (a) leaking theRefererheader from Adminer pages that load external resources, (b) waiting for the target's logs to be exposed, or (c) executing a stored or reflective XSS in the same origin (if any auxiliary flaw exists within Adminer or co-hosted applications). In a cross-site scenario, the attacker can also load the Adminer page in a hidden iframe — Adminer renders tokens in DOM and cross-origin reads are blocked, but if the adminer instance allows same-site framing without X-Frame-Options, certain token leaks via window.name or postMessage are theoretically possible, though the NVD description primarily points to sniffing, logs, Referrer, and XSS.Secret Recovery & Token Forging: With one captured token in format
MASKED:rand, the attacker computessecret = MASKED XOR rand. Since the secret is only ~20 bits, even without a captured token the attacker could brute-force the secret by testing generated tokens against the login/CSRF-check endpoint (e.g., submitting requests with guessed tokens and observing validation failures/successes). With the secret recovered, the attacker can forge valid tokens for any subsequent request.Exploitation — CSRF with Forged Tokens: The attacker crafts a malicious web page (or email) that, when visited by the authenticated Adminer user, auto-submits a forged request to the Adminer instance containing: (a) a valid forged CSRF token, (b) a SQL query body targeting the connected database (e.g.,
SELECT ... INTO OUTFILE,INSERTof a backdoor,DROP TABLE, orGRANTof superuser privileges). Because Adminer has no re-authentication for SQL execution (credential is stored in session), the forged request executes with full privileges of the database account the victim used to log in.Post-Exploitation: If the connected database account has
FILEprivilege, the attacker can write a webshell to the web root of the server hosting Adminer, leading to full server compromise. Even without FILE privilege, the attacker can exfiltrate all database contents, modporate user credentials, or pivot to other services.
No public PoC is currently available; the attack chain is inferred from the vulnerability class and the described token scheme. The degree of difficulty lies in token acquisition, but the extremely low entropy (~20 bits) allows brute-force of the secret, effectively making the CSRF protection bypass trivial for an attacker with network access to the Adminer endpoint.
Impact Assessment
CVSS Score: 6.8 (Medium-High) — CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H
| Sub-score | Value | Interpretation |
|---|---|---|
| Attack Vector (AV) | Network | Exploitable remotely over the network |
| Attack Complexity (AC) | High | Requires token acquisition or brute-force (~20-bit space) |
| Privileges Required (PR) | None | No pre-auth necessary |
| User Interaction (UI) | Required | Victim must visit malicious page / be authenticated |
| Scope (S) | Unchanged | Only the Adminer instance / its data impacted |
| Confidentiality (C) | None | The flaw does not directly leak data (token leak is a precondition) |
| Integrity (I) | High | Arbitrary SQL execution → full data modification |
| Availability (A) | High | DROP/TRUNCATE against connected database |
Business Impact:
- Data compromise: An attacker executing arbitrary SQL can modify or destroy the entire database schema managed through Adminer.
- Server takeover: With
FILEprivilege in MySQL/MariaDB (INTO OUTFILE), the attacker can drop a webshell into the web root and obtain RCE on the underlying application server. - Compliance/reputational damage: If the database contains PII, the breach escalates to a reportable data incident (GDPR Article 33 notification, HIPAA, PCI DSS, etc.).
Blast radius: The affected database and any services that depend on it. If Adminer is deployed on a jumpbox or a central DB management host, the blast radius extends to all connected database servers. Due to the restore of the session secret, every subsequent CSRF check is bypassable — the attacker gains a persistent token-forging capability valid for the lifetime of the session (Adminer sessions normally have a generous timeout, and no re-login is needed).
Threat landscape: Adminer instances historically attract opportunistic scans (default install paths), automated credential brute-force, and targeted attackers seeking data. This flaw effectively removes the CSRF protection layer, converting a purely social-engineering-required attack into one also achievable via network observation or short brute-force.
Detection Guidance
Sigma Rule
title: Adminer CSRF Token Secret Recovery - HTTP Sniffing Pattern
id: 34991b3n-XXXX-42ab-9d03-4f0e1b2a3c4d
status: experimental
description: Detects CSRF token leakage in HTTP request logs where a token pattern matching Adminer format (hex:hex or decimal:decimal) appears in Referrer headers or query parameters for POST requests to Adminer endpoints.
author: Valtersit Threat Intelligence
date: 2026/01/01
logsource:
category: webserver
product: apache
detection:
selection:
http.url|contains:
- 'adminer.php'
- '/adminer/'
http.method: 'POST'
http.referrer|re: 'adminer\.php|/adminer/'
filter:
http.reason: 'OK'
condition: selection and not filter
level: high
falsepositives:
- Legitimate Adminer usage (user tool is a false positive source)
- Referrer leakage from same-origin to CDN resources
tags:
- cve.2026-56706
- cwe.330
- attack.t1190
YARA Rule
rule adminer_csrf_token_leak_2026_56706 {
meta:
author = "Valtersit Threat Intelligence"
description = "Detects Adminer CSRF token format (RAND XOR SECRET):RAND in HTTP dumps, logs, or traffic captures"
date = "2026-01-01"
reference = "CVE-2026-56706"
severity = "high"
strings:
$token_pattern = /[0-9]{1,7}:[0-9]{1,7}/ // low entropy for rand(1,1e6)
$adminer_path = "adminer"
$php_session = "SID"
condition:
uint16(0) == 0x0A0D and // HTTP log line (CRLF)
filesize < 10MB and
#token_pattern >= 1 and
($adminer_path in (0..filesize) or $php_session in (0..filesize))
}
Suricata IDS Rule
alert http any any -> any any (msg:"CVE-2026-56706 Adminer CSRF token weak scheme - suspected secret recovery attempt"; flow:established,to_server; http.method; content:"POST"; http.uri; content:"adminer"; http.client_body; pcre:"/[0-9]{1,7}:[0-9]{1,7}/"; classtype:attempted-admin; sid:20260001; rev:1; metadata:created_at 2026_01_01, updated_at 2026_01_01, cve CVE-2026-56706;)
Note: Additional rule variant to detect brute-force of the ~20-bit secret — flag high request rates to adminer URI containing rapidly varying rand values:
alert http any any -> any any (msg:"CVE-2026-56706 Adminer CSRF token brute-force"; flow:established,to_server; http.method; content:"GET"; http.uri; content:"adminer"; http.uri; pcre:"/(rand|token)=[0-9]{1,7}:[0-9]{1,7}/"; threshold: type both, track by_src, count 30, seconds 60; classtype:attempted-admin; sid:20260002; rev:1; metadata:cve CVE-2026-56706;)
Elastic Detection
sequence by host.name with maxspan=30s
[ network where process.name == "php-fpm" and destination.port == 443 and
http.request.method == "POST" and
url.path like "*adminer*" ]
[ network where process.name == "php-fpm" and destination.port == 443 and
http.request.method == "GET" and
url.path like "*adminer*" and
http.request.body_bytes > 50 ]
Alternatively, an EQL rule for token-baring POSTs with high frequency:
any where
network.protocol == "http" and
http.request.method == "POST" and
url.path like "*adminer*" and
http.request.body like "*:*" and
( wildcard(http.request.body, "?????????????????", "*") )
Splunk SPL Query
index=web sourcetype=apache:access OR sourcetype=nginx:access
| where like(uri, "%adminer%")
| regex _raw = "\d{1,7}:\d{1,7}"
| stats count by clientip, uri, method
| where count > 50
| rename clientip as PossibleCSRFForgeSource
Wazuh OSSEC Rule
<rule id="100206" level="15">
<decoded>apache-accesslog</decoded>
<field name="url">\.php</field>
<regex>adminer.*(\d{1,7}:\d{1,7})</regex>
<description>CVE-2026-56706 Adminer CSRF token leaked in request (token pattern observed in URL/body)</description>
<group>authentication_failures,attack,web_attack,</group>
<mitre>
<id>T1190</id>
</mitre>
</rule>
Mitigation & Patch Guidance
Patch Confidence: 0/4 — UNPATCHED
No vendor patch or security advisory has been identified from any tracked source. The fixed version is indicated as 5.4.3 in the CVE metadata (i.e., the flaw is resolved in Adminer >= 5.4.3), but at the time of this report no official release notes or advisory confirming that version resolves the issue have been published or tracked. The absence of patch evidence means we cannot confirm the availability of a security release.
Immediate Mitigations (until a verified patched release is available):
- Disable remote access: Restrict access to Adminer to trusted management networks only, via firewall
allowrules (e.g., only from a bastion host or specific admin CIDRs). This removes the network-attack vector, as token sniffing requires network-level access. - Force HTTPS/TLS: Serve Adminer exclusively over HTTPS to prevent passive network sniffing of tokens. Mandate HSTS and ensure no HTTP fallback.
- Remove from web root: If Adminer is not in active daily use, delete the PHP file from the document root entirely. Deploy on-demand only (e.g., mount a volume, use a restricted path, or run via Docker container on demand).
- Session hardening in PHP config: Set
session.cookie_secure = 1,session.cookie_httponly = 1, and a shortsession.gc_maxlifetime(e.g., 600 seconds) to reduce the session window an attacker can exploit. - Log analysis: Monitor web logs for the token pattern
(\d{1,7}:\d{1,7})in POST bodies or Referrer headers — indicative of token leakage — and for a high rate of requests carrying such patterns (potential brute-force).
Patch/Upgrade Steps:
- Monitor the official Adminer release channel (https://www.adminer.org/) for version 5.4.3 or later.
- When a patched version is confirmed, upgrade via
composer require adminer/admineror by downloading the single-fileadminer.php, replacing the existing file. Backup the existing configuration and verify database connectivity after upgrade. - Until then, treat all Adminer versions as affected.
Long-Term Hardening:
- Zero-trust posture: If public database management is needed, put Adminer behind a bastion / identity-aware proxy (e.g., OAuth2-proxy, Authelia) with MFA, rather than relying on the application's own login.
- Database privilege minimization: Restrict the account used for Adminer login to least privilege (SELECT/INSERT/UPDATE/DELETE on required schemas only; no DDL, no FILE, no SUPER). The NVD description specifically mentions arbitrary SQL execution — the DB account privileges directly bound the blast radius.
- Network segmentation: Never deploy Adminer on the same virtual host as internet-facing applications with default paths (
/adminer.php). - Runtime protections: Deploy a WAF rule to block requests containing token patterns (
\d{1,7}:\d{1,7}) to adminer paths from off-network IP ranges.
References
- NVD Entry — CVE-2026-56706: https://nvd.nist.gov/vuln/detail/CVE-2026-56706
- Adminer Official Site — https://www.adminer.org/ (monitor for 5.4.3 release announcement)
- CWE-330 — Use of Insufficiently Random Values: https://cwe.mitre.org/data/definitions/330.html
- MITRE ATT&CK — T1190: Exploit Public-Facing Application: https://attack.mitre.org/techniques/T1190/
- CISA Known Exploited Vulnerabilities (KEV): CVE-2026-56706 is NOT listed in KEV at time of writing — no evidence of active exploitation.
Threat Actor Campaigns: No public reports exist of active exploitation or in-the-wild campaigns targeting this vulnerability at the time of this report. The CVE is newly published; attackers historically target Adminer en masse upon disclosure, and the low-entropy token flaw enables off-the-shelf CSRF bypass, so elevated exploitation activity is anticipated. Security teams should treat any exposed Adminer instance as high-risk and monitor for anomalous SQL activity in the connected databases.
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.