CVE-2026-121265

SQL::Abstract versions before 2.000003 for Perl allow SQL injection via an arrayref column value in insert and update

Published Nov 7, 2026 CVSS 3.1 · 9.8 Critical EPSS < 1% KEV · Not listed
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.

Remediation

Vendor Solution

Upgrade to SQL-Abstract 2.000003 or later.

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History
Type Values Removed Values Added
First Time appeared Perl
Perl sql::abstract
Vendors & Products Perl
Perl sql::abstract
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 9.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}

Type Values Removed Values Added
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.
Title SQL::Abstract versions before 2.000003 for Perl allow SQL injection via an arrayref column value in insert and update
Weaknesses CWE-89
References
Weaknesses

Sources

Status
PUBLISHED
Assigner
CPANSec
Published
Updated
Nov 10, 2026, 2:13 PM
Reserved
Nov 3, 2026, 10:57 AM
Status
Deferred
Published
Nov 7, 2026, 12:17 PM
Modified
Nov 12, 2026, 8:07 PM