← Back to search

CVE-2026-121265

9.8 CRITICAL

Published 2026-11-07 · Updated 2026-11-10

AI risk analysis

Summary
SQL::Abstract versions before 2.000003 for Perl allow SQL injection when arrayref column values are passed to insert(), update(), or values() with the default array_datatypes option disabled, causing unescaped SQL from the first array element to be injected directly into queries. This occurs because request data (e.g., JSON arrays or repeated form fields decoded as arrayrefs) is treated as literal SQL instead of parameterized values.
Exploitability
Exploitation requires an application to pass unsanitized user-controlled input (e.g., JSON or form data decoded as arrayrefs) directly into insert() or update() calls with default settings and no additional escaping, but the vulnerability is trivial to trigger once such input paths exist.
Blast radius
Successful exploitation enables full database compromise—including read, modify, or delete of all data—and may facilitate lateral movement if the database holds credentials or sensitive application state.
Detection
No reliable host or network indicator is derivable from the published description.
Prioritized remediation
Upgrade to SQL::Abstract version 2.000003 or later, which fixes the vulnerability by properly handling arrayrefs regardless of the array_datatypes setting.
sql-injectionperlwebdatabaseinput-validation

Analysis generated locally by garnet-coder (no data left the box). AI-assisted — verify against primary sources before acting.

NVD description

SQL::Abstract versions before 2.000003 for Perl allow SQL injection via an arrayref column value in insert and update. With the array_datatypes option off, which is the default, insert(), update() and values() treat an arrayref column value as literal SQL. Its first element goes into the SQL text unescaped and the rest become bind values. A JSON array, or a repeated form field decoded as an arrayref, is such a value. An application that passes request data as column values to insert or update with the default options allows SQL injection. Releases before 2.000003 also treat an arrayref in generate() as literal SQL, including through AUTOLOAD when allow_autoload is on, whatever array_datatypes is set to.

CVSS vector

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Weaknesses

CWE-89

All references

Source data: NVD (nvd.nist.gov), public domain. Exploit-DB.ai adds local AI analysis for defensive use only.

Related CVEs

Related by shared AI tags and CWE weakness class. Browse the full archive.