Executive brief
Adminer is a popular database management web application. A vulnerability in versions before 5.4.3 allows attackers without authentication to execute arbitrary PHP code on the server by injecting malicious parameters into the database connection string. This works when the server is configured to use Microsoft SQL Server connections and has specific PHP extensions enabled, which is common in enterprises using Azure SQL Database.
Technical details
The vulnerability is a parameter injection flaw (CWE-73, CWE-88) in mssql.inc.php where user-supplied server field input is interpolated directly into a PDO DSN string without sanitization. An attacker sends a crafted POST request with semicolon-delimited ODBC parameters in the server field (e.g., "127.0.0.1;TraceFile=shell.php;TraceOn=1"). The ODBC driver manager treats semicolons as parameter delimiters and processes TraceFile/TraceOn parameters before connection attempts, writing a trace file containing the attacker-controlled username. Since PHP code in the username is written verbatim to the trace file in the web root, it executes on subsequent HTTP requests. Attack vector is network-based with no authentication, privileges, or user interaction required. Prerequisites include pdo_sqlsrv PHP extension, Microsoft ODBC Driver for SQL Server, and web-root write permissions—common in SQL Server/Azure environments. Patched in version 5.4.3.
Affected products
- Adminer Project Adminer before 5.4.3
Timeline
- 2026-07-09: disclosed: GitHub Security Advisory published
- 2026-08-25: advisory: NVD entry published