Description
SQL::Abstract versions from 1.90_01 before 2.000001_04 for Perl allow SQL injection via the where values of a nested statement in an identifier position.

A nested statement such as { -select => ... } in a position where plain scalars are identifiers treats its own plain scalars as identifiers too. These positions are the select list, ORDER BY, GROUP BY, RETURNING, and with the ExtraClauses plugin FROM (-as) and JOIN (to). The values of the statement's where, having and set clauses, and the rows of a -values, go into the SQL text instead of the bind list, unescaped unless quote_char is set. Subselects in a WHERE condition are not affected.

An application that passes untrusted input as a where value of such a nested statement, expecting it to be bound, allows SQL injection.
Published: 2026-11-04
Score: n/a
EPSS: n/a
KEV: No
Impact: SQL Injection
Action: Immediate Patch
AI Analysis

Impact

The vulnerability in Perl's SQL::Abstract module allows an attacker to inject arbitrary SQL by supplying untrusted input as a where value inside a nested statement positioned as an identifier. The injection occurs when the module treats these values as part of the SQL text rather than a bind parameter, leading to potential data exposure, modification, or deletion. This flaw is identified as CWE‑89, reflecting an improper handling of user input in SQL construction.

Affected Systems

The CVE affects Perl applications that include SQL::Abstract versions 1.90_01 through any release prior to 2.000001_04. The module is distributed via CPAN and widely used in database abstraction layers; any code that relies on these versions for query generation is vulnerable. No specific vendor or additional product names are disclosed beyond the Perl module itself.

Risk and Exploitability

The CVSS score is not provided and the EPSS score is unavailable, but the nature of an SQL injection grants the attacker extensive capabilities. The vulnerability is not listed in CISA’s KEV catalog, yet its exploitation potential remains high, especially in applications that accept user input without proper validation or binding. An attacker could exploit this flaw if the application exposes the vulnerable query paths through a web interface or other remote service, or via local code injection if such nested statements are used with untrusted input.

Generated by OpenCVE AI on November 4, 2026 at 15:24 UTC.

Remediation

Vendor Solution

Upgrade to SQL-Abstract 2.000001_04 or later.


OpenCVE Recommended Actions

  • Upgrade the SQL::Abstract module to version 2.000001_04 or later to eliminate the injection path.
  • Ensure that all user-supplied data passed to SQL::Abstract is validated or escaped; prefer the use of bind parameters for dynamic queries.
  • If an upgrade cannot be performed immediately, avoid using nested statements that include where clauses in identifier positions, or configure the module’s quote_char option to force escaping.

Generated by OpenCVE AI on November 4, 2026 at 15:24 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 04 Nov 2026 14:45:00 +0000

Type Values Removed Values Added
Description SQL::Abstract versions from 1.90_01 before 2.000001_04 for Perl allow SQL injection via the where values of a nested statement in an identifier position. A nested statement such as { -select => ... } in a position where plain scalars are identifiers treats its own plain scalars as identifiers too. These positions are the select list, ORDER BY, GROUP BY, RETURNING, and with the ExtraClauses plugin FROM (-as) and JOIN (to). The values of the statement's where, having and set clauses, and the rows of a -values, go into the SQL text instead of the bind list, unescaped unless quote_char is set. Subselects in a WHERE condition are not affected. An application that passes untrusted input as a where value of such a nested statement, expecting it to be bound, allows SQL injection.
Title SQL::Abstract versions from 1.90_01 before 2.000001_04 for Perl allow SQL injection via the where values of a nested statement in an identifier position
Weaknesses CWE-89
References

Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: CPANSec

Published:

Updated: 2026-11-04T14:35:55.505Z

Reserved: 2026-11-03T08:03:49.098Z

Link: CVE-2026-121007

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-11-04T15:17:41.733

Modified: 2026-11-04T15:17:41.733

Link: CVE-2026-121007

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-11-04T15:30:09Z

Weaknesses
  • CWE-89

    Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')