SQL injection in ADOdb PostgreSQL driver pg_insert_id() method
Impact
Improper escaping of a query parameter may allow an attacker to execute arbitrary SQL statements when the code using ADOdb connects to a PostgreSQL database and calls pg_insert_id() with user-supplied data.
Source excerpt · OSVAffected packages
Start with the recorded fix for your release branch. Check your installed version and test compatibility before upgrading. Fixing this advisory does not rule out other vulnerabilities in the release.
| Affected range | Recorded fix |
|---|---|
| Earlier releases before 5.22.9Ecosystem versions | 5.22.9 |
Version evidence: OSV · GHSA-8x27-jwjr-8545
View original version evidence (39 explicit versions)
Original source description
Improper escaping of a query parameter may allow an attacker to execute arbitrary SQL statements when the code using ADOdb connects to a PostgreSQL database and calls pg_insert_id() with user-supplied data.
Note that the indicated Severity corresponds to a worst-case usage scenario.
Impact
PostgreSQL drivers (postgres64, postgres7, postgres8, postgres9).
Patches
Vulnerability is fixed in ADOdb 5.22.9 (11107d6d6e5160b62e05dff8a3a2678cf0e3a426).
Workarounds
Only pass controlled data to pg_insert_id() method's $fieldname parameter, or escape it with pg_escape_identifier() first.
References
- Issue https://github.com/ADOdb/ADOdb/issues/1070
- Blog post by Marco Nappi
Credits
Thanks to Marco Nappi (@mrcnpp) for reporting this vulnerability.
References
- Security advisory github.com/ADOdb/ADOdb/security/advisories/GHSA-8x27-jwjr-8545
- Security advisory nvd.nist.gov/vuln/detail/CVE-2025-46337
- Source reference github.com/ADOdb/ADOdb/issues/1070
- Patch github.com/ADOdb/ADOdb/commit/11107d6d6e5160b62e05dff8a3a2678cf0e3a426
- Source reference github.com/ADOdb/ADOdb
- Source reference lists.debian.org/debian-lts-announce/2025/05/msg00029.html
- Security advisory xaliom.blogspot.com/2025/05/from-sast-to-cve-2025-46337.html