CVE-2026-121008
Full vulnerability record from the local CVENow database.
Description
SQL::Abstract::Tree versions before 2.000001_04 for Perl allow cross-site scripting via unescaped SQL text and bind values in the html profile. The html profile wraps keywords and placeholders in span elements and breaks lines with br elements, so its output is meant to go into a page as is. The format method does not HTML-escape the SQL text or the bind values it fills in around that markup. An application that renders SQL formatted with the html profile, such as in a debug panel or query log, allows an attacker who controls a bind value or part of the SQL text to embed JavaScript in the page.
Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
9b29abf9-4ab0-4765-b253-1875cd9b441e
Published
2026-11-04 15:17:41.873000
Last modified
2026-11-04 15:17:41.873000
View original CVE JSON
{
"id": "CVE-2026-121008",
"sourceIdentifier": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
"published": "2026-11-04T15:17:41.873",
"lastModified": "2026-11-04T15:17:41.873",
"vulnStatus": "Received",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "SQL::Abstract::Tree versions before 2.000001_04 for Perl allow cross-site scripting via unescaped SQL text and bind values in the html profile.\n\nThe html profile wraps keywords and placeholders in span elements and breaks lines with br elements, so its output is meant to go into a page as is. The format method does not HTML-escape the SQL text or the bind values it fills in around that markup.\n\nAn application that renders SQL formatted with the html profile, such as in a debug panel or query log, allows an attacker who controls a bind value or part of the SQL text to embed JavaScript in the page."
}
],
"affected": [
{
"source": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
"affectedData": [
{
"defaultStatus": "unaffected",
"collectionURL": "https://cpan.org/modules",
"packageName": "SQL-Abstract",
"modules": [
"SQL::Abstract::Tree"
],
"programFiles": [
"lib/SQL/Abstract/Tree.pm"
],
"programRoutines": [
{
"name": "SQL::Abstract::Tree::format"
},
{
"name": "SQL::Abstract::Tree::format_keyword"
},
{
"name": "SQL::Abstract::Tree::fill_in_placeholder"
}
],
"repo": "https://github.com/dbsrgits/sql-abstract",
"packageURL": "pkg:cpan/SQL-Abstract",
"versions": [
{
"version": "0",
"lessThan": "2.000001_04",
"versionType": "custom",
"status": "affected"
}
]
}
]
}
],
"metrics": {},
"weaknesses": [
{
"source": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-79"
}
]
}
],
"references": [
{
"url": "https://github.com/dbsrgits/sql-abstract/commit/85a75fcde3e09da5181dee07a4eccba76ad94305.patch",
"source": "9b29abf9-4ab0-4765-b253-1875cd9b441e"
},
{
"url": "https://metacpan.org/release/GETTY/SQL-Abstract-2.000001_04/changes",
"source": "9b29abf9-4ab0-4765-b253-1875cd9b441e"
}
]
}