Description
In PHP versions 8.2.* before 8.2.31, 8.3.* before 8.3.31, 8.4.* before 8.4.21, and 8.5.* before 8.5.6, the PDO Firebird driver improperly handles NUL bytes when preparing SQL queries. During token-by-token query construction, a string token containing a NUL byte is copied via strncat(), which stops at the NUL byte, dropping the closing quote and causing subsequent SQL tokens to be interpreted as part of the string. This allows SQL injection when attacker-controlled values are quoted via PDO::quote() and embedded in SQL statements.
Problem types
CWE-89 Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
Product status
8.2.* (semver) before 8.2.31
8.3.* (semver) before 8.3.31
8.4.* (semver) before 8.4.21
8.5.* (semver) before 8.5.6
Credits
Aleksey Solovev (Positive Technologies)
Nikita Sveshnikov (Positive Technologies)
Ilija Tovilo
Arnaud Le Blanc
Saki Takamachi
References
github.com/...hp-src/security/advisories/GHSA-w476-322c-wpvm