{"api_version":"1","generated_at":"2026-08-14T18:45:02+00:00","cve":"CVE-2026-9390","urls":{"html":"https://cve.report/CVE-2026-9390","api":"https://cve.report/api/cve/CVE-2026-9390.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-9390","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-9390"},"summary":{"title":"XML::Sig versions before 0.71 for Perl allow XPath injection in ID lookup","description":"XML::Sig versions before 0.71 for Perl allow XPath injection in ID lookup.\n\nverify() and _get_signed_xml() in lib/XML/Sig.pm build XPath expressions by concatenating the SignedInfo/Reference/@URI value read from the document being verified. The value is neither escaped nor checked against the NCName grammar that XML requires of an ID, so a URI containing a single quote closes the string literal in the generated expression and appends arbitrary XPath operators.\n\nA crafted URI can make the lookup match elements the reference does not name, or every element in the document, so which node is selected for digest verification is decided by the injected expression rather than by the reference.","state":"PUBLISHED","assigner":"CPANSec","published_at":"2026-08-03 14:16:30","updated_at":"2026-08-05 14:57:18"},"problem_types":["CWE-643","CWE-1287","CWE-643 CWE-643 Improper Neutralization of Data within XPath Expressions ('XPath Injection')","CWE-1287 CWE-1287 Improper Validation of Specified Type of Input"],"metrics":[{"version":"3.1","source":"ADP","type":"DECLARED","score":"9.1","severity":"CRITICAL","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","data":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"NONE","baseScore":9.1,"baseSeverity":"CRITICAL","confidentialityImpact":"HIGH","integrityImpact":"HIGH","privilegesRequired":"NONE","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","version":"3.1"}},{"version":"3.1","source":"134c704f-9b21-4f2e-91b3-4a467353bcc0","type":"Secondary","score":"9.1","severity":"CRITICAL","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","baseScore":9.1,"baseSeverity":"CRITICAL","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"NONE"}}],"references":[{"url":"https://github.com/perl-net-saml2/perl-XML-Sig/commit/69ad2b421118fadd33d57f50b110b8d161e8fef5.patch","name":"https://github.com/perl-net-saml2/perl-XML-Sig/commit/69ad2b421118fadd33d57f50b110b8d161e8fef5.patch","refsource":"9b29abf9-4ab0-4765-b253-1875cd9b441e","tags":["Patch"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://metacpan.org/release/TIMLEGGE/XML-Sig-0.71/changes","name":"https://metacpan.org/release/TIMLEGGE/XML-Sig-0.71/changes","refsource":"9b29abf9-4ab0-4765-b253-1875cd9b441e","tags":["Release Notes"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/perl-net-saml2/perl-XML-Sig/commit/a85aad21aa767ac1c158bbfc19447683941ab376.patch","name":"https://github.com/perl-net-saml2/perl-XML-Sig/commit/a85aad21aa767ac1c158bbfc19447683941ab376.patch","refsource":"9b29abf9-4ab0-4765-b253-1875cd9b441e","tags":["Patch"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-9390","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-9390","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"TIMLEGGE","product":"XML::Sig","version":"affected 0.71 custom","platforms":[]}],"timeline":[],"solutions":[{"source":"CNA","title":"","value":"Upgrade to version 0.71","time":"","lang":"en"}],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[{"cve_year":"2026","cve_id":"9390","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"xml\\","cpe5":"\\","cpe6":"sig_project","cpe7":"xml\\","cpe8":"\\","cpe9":"sig","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"}],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2026","cve_id":"9390","cve":"CVE-2026-9390","epss":"0.002820000","percentile":"0.204170000","score_date":"2026-08-09","updated_at":"2026-08-10 00:07:38"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"adp":[{"metrics":[{"cvssV3_1":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"NONE","baseScore":9.1,"baseSeverity":"CRITICAL","confidentialityImpact":"HIGH","integrityImpact":"HIGH","privilegesRequired":"NONE","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","version":"3.1"}},{"other":{"content":{"id":"CVE-2026-9390","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"total"}],"role":"CISA Coordinator","timestamp":"2026-08-03T19:58:29.107052Z","version":"2.0.3"},"type":"ssvc"}}],"providerMetadata":{"dateUpdated":"2026-08-03T19:58:50.173Z","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP"},"title":"CISA ADP Vulnrichment"}],"cna":{"affected":[{"collectionURL":"https://cpan.org/modules","defaultStatus":"unaffected","packageName":"XML-Sig","product":"XML::Sig","programFiles":["lib/XML/Sig.pm"],"programRoutines":[{"name":"XML::Sig::verify"},{"name":"XML::Sig::_get_signed_xml"}],"repo":"https://github.com/perl-net-saml2/perl-XML-Sig","vendor":"TIMLEGGE","versions":[{"lessThan":"0.71","status":"affected","version":"0","versionType":"custom"}]}],"descriptions":[{"lang":"en","value":"XML::Sig versions before 0.71 for Perl allow XPath injection in ID lookup.\n\nverify() and _get_signed_xml() in lib/XML/Sig.pm build XPath expressions by concatenating the SignedInfo/Reference/@URI value read from the document being verified. The value is neither escaped nor checked against the NCName grammar that XML requires of an ID, so a URI containing a single quote closes the string literal in the generated expression and appends arbitrary XPath operators.\n\nA crafted URI can make the lookup match elements the reference does not name, or every element in the document, so which node is selected for digest verification is decided by the injected expression rather than by the reference."}],"problemTypes":[{"descriptions":[{"cweId":"CWE-643","description":"CWE-643 Improper Neutralization of Data within XPath Expressions ('XPath Injection')","lang":"en","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-1287","description":"CWE-1287 Improper Validation of Specified Type of Input","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-08-03T13:09:40.158Z","orgId":"9b29abf9-4ab0-4765-b253-1875cd9b441e","shortName":"CPANSec"},"references":[{"tags":["patch"],"url":"https://github.com/perl-net-saml2/perl-XML-Sig/commit/69ad2b421118fadd33d57f50b110b8d161e8fef5.patch"},{"tags":["patch"],"url":"https://github.com/perl-net-saml2/perl-XML-Sig/commit/a85aad21aa767ac1c158bbfc19447683941ab376.patch"},{"tags":["release-notes"],"url":"https://metacpan.org/release/TIMLEGGE/XML-Sig-0.71/changes"}],"solutions":[{"lang":"en","value":"Upgrade to version 0.71"}],"source":{"discovery":"UNKNOWN"},"title":"XML::Sig versions before 0.71 for Perl allow XPath injection in ID lookup","x_generator":{"engine":"cpansec-cna-tool 0.1"}}},"cveMetadata":{"assignerOrgId":"9b29abf9-4ab0-4765-b253-1875cd9b441e","assignerShortName":"CPANSec","cveId":"CVE-2026-9390","datePublished":"2026-08-03T13:09:40.158Z","dateReserved":"2026-05-23T20:04:32.906Z","dateUpdated":"2026-08-03T19:58:50.173Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-08-03 14:16:30","lastModifiedDate":"2026-08-05 14:57:18","problem_types":["CWE-643","CWE-1287","CWE-643 CWE-643 Improper Neutralization of Data within XPath Expressions ('XPath Injection')","CWE-1287 CWE-1287 Improper Validation of Specified Type of Input"],"metrics":{"cvssMetricV31":[{"source":"134c704f-9b21-4f2e-91b3-4a467353bcc0","type":"Secondary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","baseScore":9.1,"baseSeverity":"CRITICAL","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"NONE"},"exploitabilityScore":3.9,"impactScore":5.2}],"ssvcV203":[{"source":"134c704f-9b21-4f2e-91b3-4a467353bcc0","ssvcData":{"timestamp":"2026-08-03T19:58:29.107052Z","id":"CVE-2026-9390","options":[{"exploitation":"none"},{"automatable":"yes"},{"technicalImpact":"total"}],"role":"CISA Coordinator","version":"2.0.3"}}]},"configurations":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:a:xml\\:\\:sig_project:xml\\:\\:sig:*:*:*:*:*:perl:*:*","versionEndExcluding":"0.71","matchCriteriaId":"FC1BDEFE-0662-4F7C-9641-A32B9CF06366"}]}]}]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"9390","Ordinal":"1","Title":"XML::Sig versions before 0.71 for Perl allow XPath injection in ","CVE":"CVE-2026-9390","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"9390","Ordinal":"1","NoteData":"XML::Sig versions before 0.71 for Perl allow XPath injection in ID lookup.\n\nverify() and _get_signed_xml() in lib/XML/Sig.pm build XPath expressions by concatenating the SignedInfo/Reference/@URI value read from the document being verified. The value is neither escaped nor checked against the NCName grammar that XML requires of an ID, so a URI containing a single quote closes the string literal in the generated expression and appends arbitrary XPath operators.\n\nA crafted URI can make the lookup match elements the reference does not name, or every element in the document, so which node is selected for digest verification is decided by the injected expression rather than by the reference.","Type":"Description","Title":"XML::Sig versions before 0.71 for Perl allow XPath injection in "}]}}}