CVE-2026-96634
Adminer SQLite ATTACH Statement Regex Denial of Service and Security Bypass
Description
### Summary This vulnerability is a patch bypass that exploits catastrophic backtracking in a regular expression used to filter ATTACH statements in AdminNeo's SQLite functionality. The original vulnerability (CVE-2021-43008) allowed authenticated users to create PHP files through SQLite ATTACH statements, achieving remote code execution. The patch introduced a regex filter to block ATTACH queries, but this filter is vulnerable to catastrophic backtracking. Originally reported by @zdi-disclosures in Adminer: https://github.com/vrana/adminer/security/advisories/GHSA-3582-q6xq-5vf7 ### Analysis **[Source]** sql.inc.php :: SQL import handler:47 ```php $query = get_file("sql_file", true, ";"); ``` > User uploads a malicious SQL file through the import form. The file content is read into the `$query` variable without any initial sanitization. **[Transform]** sql.inc.php :: SQL import handler:87 ```php // Query parsing loop that extracts individual SQL statements ``` > The uploaded SQL content is processed in a loop that splits it into individual queries. Each query `$query` is extracted for processing. **[Context]** sql.inc.php :: SQL import handler:65 ```php $space = "(?:\\s|/\\*[\s\S]*?\\*/|(?:#|$line_comment)[^\n]*\n?|--\r?\n)"; ``` > Definition of the `$space` regex pattern used in the ATTACH filter. The possessive quantifier `*+` combined with SQLite comment patterns (`--`) creates the catastrophic backtracking vulnerability when many comment lines are processed. **[Transform]** sql.inc.php :: SQL import handler:146 ```php if (DIALECT == "sqlite" && preg_match("~^$space*+ATTACH\\b~i", $q, $match)) { ``` > The ATTACH query filter check. When the regex encounters 350,000 SQLite comment lines (`--`), it triggers catastrophic backtracking. The possessive quantifier `*+` causes exponential backtracking, eventually hitting PHP's backtracking limit and causing `preg_match()` to return `false` instead of `0` or `1`, bypassing the security filter. **[Sink]** sql.inc.php :: SQL import handler:162 ```php Connection::get()->multiQuery($q) ``` > When the ATTACH filter is bypassed due to the `preg_match()` returning `false`, the malicious SQL query containing the ATTACH statement is executed. This allows the attacker to create a `.php` file with embedded PHP code, achieving remote code execution when the file is accessed via HTTP. The root cause is that PHP's `preg_match()` function returns `false` when the backtracking limit is exceeded, but the code only checks for truthy values (1 for match), treating `false` the same as `0` (no match). This allows the ATTACH statement to bypass the security filter. -- CREDIT --------------------------------------- This vulnerability was discovered by: 0daystolive (Sorcery Ltd) working with TrendAI Zero Day Initiative Zero Day Initiative [email protected] The PGP key used for all ZDI vendor communications is available from: http://www.zerodayinitiative.com/documents/disclosures-pgp-key.asc -- INFORMATION ABOUT THE ZDI -------------------- Established by TippingPoint and acquired by Trend Micro, the Zero Day Initiative (ZDI) neither re-sells vulnerability details nor exploit code. Instead, upon notifying the affected product vendor, the ZDI provides its Trend Micro TippingPoint customers with zero day protection through its intrusion prevention technology. Explicit details regarding the specifics of the vulnerability are not exposed to any parties until an official vendor patch is publicly available. Please contact us for further details or refer to: http://www.zerodayinitiative.com -- DISCLOSURE POLICY ---------------------------- Our vulnerability disclosure policy is available online at: http://www.zerodayinitiative.com/advisories/disclosure_policy/
INFO
Published Date :
Oct. 30, 2026, 10:53 p.m.
Last Modified :
Oct. 30, 2026, 10:53 p.m.
Remotely Exploit :
No
Source :
github-security-advisories
Affected Products
The following products are affected by CVE-2026-96634
vulnerability.
Even if cvefeed.io is aware of the exact versions of the
products
that
are
affected, the information is not represented in the table below.
No affected product recoded yet
Solution
- Update to the latest version of the affected software.
- Apply vendor-supplied security patches promptly.
- Review and validate regular expression filters.
- Test implemented security filters thoroughly.
References to Advisories, Solutions, and Tools
Here, you will find a curated list of external links that provide in-depth
information, practical solutions, and valuable tools related to
CVE-2026-96634.
CWE - Common Weakness Enumeration
While CVE identifies
specific instances of vulnerabilities, CWE categorizes the common flaws or
weaknesses that can lead to vulnerabilities. CVE-2026-96634 is
associated with the following CWEs:
Common Attack Pattern Enumeration and Classification (CAPEC)
Common Attack Pattern Enumeration and Classification
(CAPEC)
stores attack patterns, which are descriptions of the common attributes and
approaches employed by adversaries to exploit the CVE-2026-96634
weaknesses.
We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).
Results are limited to the first 15 repositories due to potential performance issues.
The following list is the news that have been mention
CVE-2026-96634 vulnerability anywhere in the article.