Skip to main content
Public proof of conceptFix availableAwaiting NVD analysis

CVE-2026-121265

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

A public proof of concept exists; no exploitation attested.

  • Published2026-11-07
  • WeaknessCWE-89

Am I affected?

With a domain, we read the version its public headers and pages expose. A distribution build can carry the fix under an older number.

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.

Timeline

dates in UTC
  1. 2026-11-0711:17CVE publishedCNA
  2. 2026-11-0712:17CVE publishedNVD
  3. 2026-11-0909:28First public proof of conceptPoC-in-GitHub

Versions per branch

Products declared by the CNA1 product

As CPANSec, the CNA that assigned this CVE, declared them in the CVE record; versions as written.

Source: the CNA record (CVE Program), © The MITRE Corporation,CVE Terms of UseCVE recordupdated 2026-11-07

Distribution builds and vendor advisories

Packages from OSV.dev and products from the vendors' CSAF advisories.

version not verifiedVersions not verified: read as OSV.dev and the vendors publish them, not checked against each vendor's release list.

Packages

  • libsql-abstract-perlUbuntu:26.10all versions · no fixed version listed
  • libsql-abstract-perlUbuntu:26.04:LTSall versions · no fixed version listed
  • libsql-abstract-perlUbuntu:24.04:LTSall versions · no fixed version listed
  • libsql-abstract-perlUbuntu:22.04:LTSall versions · no fixed version listed
  • libsql-abstract-perlUbuntu:20.04:LTSall versions · no fixed version listed
  • libsql-abstract-perlUbuntu:18.04:LTSall versions · no fixed version listed
  • libsql-abstract-perlUbuntu:16.04:LTSall versions · no fixed version listed
  • libsql-abstract-perlDebian:14all versions · no fixed version listed

4 more package ranges on OSV.dev

Full record on NVD

Fix

No fix published by the sources we read yet. NVD record

Detection

read 2026-11-09 09:29 UTC
Nuclei template
none so far
ProjectDiscovery
Exploit-DB
no entry
Exploit-DB
Proof of concept
Metasploit modules
none listed
Metasploit Framework

Sources

Identifiers

Technical details

CVSS v3 Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Published
2026-11-07
Last Modified
2026-11-10
NVD status
Received
GitHub Advisory
GHSA-929q-6qm3-gx8h

Frequently asked questions

What is CVE-2026-121265?

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.

Is CVE-2026-121265 actively exploited?

Active exploitation of CVE-2026-121265 has not been confirmed. Its EPSS score was 0.3% on 2026-11-09, the estimated probability of exploitation in the next 30 days.

What is the CVSS score for CVE-2026-121265?

CVE-2026-121265 has a CVSS v3 base score of 9.8 (CRITICAL severity), with vector string CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H.

Running perl-sql-abstract? Hear about its next vulnerability

Surveillance reads the versions in your stack — a domain, a lockfile or a list — checks each CVE against the ranges its sources publish, and alerts you when one you run is exploited or enters CISA KEV. A version it cannot read stays « version not verified ».

No credit card required · No monthly cap on website lookups · 250 API requests/month

Sources for this record