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.
Severity
CVSS 3.1
9.8 critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
EPSS
0.6% estimated probability of exploitation activity in the next 30 days; 48th percentile. Scored 2026-11-13. A forecast for this CVE across the internet, not for your own systems.
CISA's assessment (SSVC)
Exploitation: none · Automatable: yes · Technical impact: total, assessed 2026-11-10. From CISA's Vulnrichment in the CVE List: whether it is exploited, whether exploiting it can be automated, and how much control it gives.
CWE
CWE-89Improper Neutralization of Special Elements used in an SQL Command (SQL Injection)
Show the promptExplain CVE-2026-121265 for an engineer deciding whether to act. Use https://cve.bz/api/public/cves/CVE-2026-121265?via=ask-ai-copy and https://cve.bz/cve/CVE-2026-121265?via=ask-ai-copy as the source of truth: what is affected and which versions fix it, whether it is in CISA KEV, public exploits, and its EPSS (an internet-wide 30-day estimate of exploitation activity, not a forecast for my systems). If they give no fixed versions, use the CVE record https://cveawg.mitre.org/api/cve/CVE-2026-121265 or the vendor advisory, not third-party mirrors. Tell me how to check whether I am affected and how to verify a fix. Cite the sources and say where they are uncertain.
Opens a third-party assistant; its answer is its own, not cve.bz's. The prompt holds only this CVE's id and public links.
Badge for a README or a site
An image that stays current: it is drawn from the data each time it is fetched (a host that proxies images, as GitHub does, may show its copy for a while). Markdown:
Repositories on GitHub named after this CVE. Nobody has checked them and they are not scanned: some hold a working proof of concept, some nothing useful, and some malware made to look like one. Read the code before you run any of it.
googlesky/CVE-2026-1212650 stars, Perl, created PoC for CVE-2026-121265 (SQL::Abstract < 2.000003 arrayref SQL injection, CWE-89): INSERT/UPDATE exfiltration, privilege escalation and gen…
Attack patterns (CAPEC)
CAPEC-7 Blind SQL Injection Likelihood: High · Severity: High
CAPEC-66 SQL Injection Likelihood: High · Severity: High
CAPEC-108 Command Line Execution through SQL Injection Likelihood: Low · Severity: Very High
CAPEC-109 Object Relational Mapping Injection Likelihood: Low · Severity: High
CAPEC-110 SQL Injection through SOAP Parameter Tampering Likelihood: High · Severity: Very High
CAPEC-470 Expanding Control over the Operating System from the Database Severity: Very High
The attack patterns MITRE's CAPEC relates to this record's weaknesses, as MITRE names them. Credits.
History
Scored 9.8 critical
The NVD deferred its analysis
Changes since this site first stored the record. The same for every record: /api/public/changes.