{"api_version":"1","generated_at":"2026-11-05T02:25:56+00:00","cve":"CVE-2026-121009","urls":{"html":"https://cve.report/CVE-2026-121009","api":"https://cve.report/api/cve/CVE-2026-121009.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-121009","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-121009"},"summary":{"title":"SQL::Abstract versions from 1.90_01 before 2.000001_04 for Perl skip the injection_guard check for function names given with -func","description":"SQL::Abstract versions from 1.90_01 before 2.000001_04 for Perl skip the injection_guard check for function names given with -func.\n\ninjection_guard is documented to apply to every function name, but only the { -name => ... } shorthand goes through it. The explicit { -func => [ $name, ... ] } form puts $name into the SQL unchecked.\n\nAn application that relies on injection_guard to reject an untrusted function name passed with -func allows SQL injection.","state":"PUBLISHED","assigner":"CPANSec","published_at":"2026-11-04 15:17:42","updated_at":"2026-11-04 15:17:42"},"problem_types":["CWE-89","CWE-89 CWE-89 Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')"],"metrics":[],"references":[{"url":"https://metacpan.org/release/GETTY/SQL-Abstract-2.000001_04/changes","name":"https://metacpan.org/release/GETTY/SQL-Abstract-2.000001_04/changes","refsource":"9b29abf9-4ab0-4765-b253-1875cd9b441e","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/dbsrgits/sql-abstract/commit/b6e7d991ac588b937e8943a5b28b6837ff276a51.patch","name":"https://github.com/dbsrgits/sql-abstract/commit/b6e7d991ac588b937e8943a5b28b6837ff276a51.patch","refsource":"9b29abf9-4ab0-4765-b253-1875cd9b441e","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-121009","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-121009","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[],"timeline":[],"solutions":[{"source":"CNA","title":"","value":"Upgrade to SQL-Abstract 2.000001_04 or later.","time":"","lang":"en"}],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"collectionURL":"https://cpan.org/modules","defaultStatus":"unaffected","modules":["SQL::Abstract"],"packageName":"SQL-Abstract","packageURL":"pkg:cpan/SQL-Abstract","programFiles":["lib/SQL/Abstract.pm"],"programRoutines":[{"name":"SQL::Abstract::_expand_func"}],"repo":"https://github.com/dbsrgits/sql-abstract","versions":[{"lessThan":"2.000001_04","status":"affected","version":"1.90_01","versionType":"custom"}]}],"descriptions":[{"lang":"en","value":"SQL::Abstract versions from 1.90_01 before 2.000001_04 for Perl skip the injection_guard check for function names given with -func.\n\ninjection_guard is documented to apply to every function name, but only the { -name => ... } shorthand goes through it. The explicit { -func => [ $name, ... ] } form puts $name into the SQL unchecked.\n\nAn application that relies on injection_guard to reject an untrusted function name passed with -func allows SQL injection."}],"problemTypes":[{"descriptions":[{"cweId":"CWE-89","description":"CWE-89 Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-11-04T14:36:35.082Z","orgId":"9b29abf9-4ab0-4765-b253-1875cd9b441e","shortName":"CPANSec"},"references":[{"tags":["patch"],"url":"https://github.com/dbsrgits/sql-abstract/commit/b6e7d991ac588b937e8943a5b28b6837ff276a51.patch"},{"tags":["release-notes"],"url":"https://metacpan.org/release/GETTY/SQL-Abstract-2.000001_04/changes"}],"solutions":[{"lang":"en","value":"Upgrade to SQL-Abstract 2.000001_04 or later."}],"source":{"discovery":"UNKNOWN"},"title":"SQL::Abstract versions from 1.90_01 before 2.000001_04 for Perl skip the injection_guard check for function names given with -func","x_generator":{"engine":"cpansec-cna-tool 0.1"}}},"cveMetadata":{"assignerOrgId":"9b29abf9-4ab0-4765-b253-1875cd9b441e","assignerShortName":"CPANSec","cveId":"CVE-2026-121009","datePublished":"2026-11-04T14:36:35.082Z","dateReserved":"2026-11-03T08:11:18.519Z","dateUpdated":"2026-11-04T14:36:35.082Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-11-04 15:17:42","lastModifiedDate":"2026-11-04 15:17:42","problem_types":["CWE-89","CWE-89 CWE-89 Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')"],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"121009","Ordinal":"1","Title":"SQL::Abstract versions from 1.90_01 before 2.000001_04 for Perl ","CVE":"CVE-2026-121009","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"121009","Ordinal":"1","NoteData":"SQL::Abstract versions from 1.90_01 before 2.000001_04 for Perl skip the injection_guard check for function names given with -func.\n\ninjection_guard is documented to apply to every function name, but only the { -name => ... } shorthand goes through it. The explicit { -func => [ $name, ... ] } form puts $name into the SQL unchecked.\n\nAn application that relies on injection_guard to reject an untrusted function name passed with -func allows SQL injection.","Type":"Description","Title":"SQL::Abstract versions from 1.90_01 before 2.000001_04 for Perl "}]}}}