{"schemaVersion":3,"id":"CVE-2026-84369","aliases":["GHSA-4vpr-x523-8j87","CGA-2w32-2wxq-mq5c","CGA-4h7m-xg4q-gq84","CGA-7jr2-c9m7-mpjj","CGA-8vfc-58xg-55jm","CGA-crwh-ccch-gj8g","CGA-fj58-64mg-2q9x","CGA-gh65-mxp5-49pq","CGA-r8v2-xwq5-x9p5","DEBIAN-CVE-2026-84369"],"status":"published","duplicateOf":null,"title":null,"description":"SVGO, short for SVG Optimizer, is a Node.js library and command-line application for optimizing SVG files. From version 1.0.0 until versions 2.8.4, 3.3.5, and 4.1.0, the opt-in removeScripts plugin, named removeScriptElement in versions 2 and 3 and implemented in plugins/removeScripts.js, removes SVG and XHTML script elements but does not inspect executable HTML content inside SVG foreignObject elements. Event-handler attributes such as onload and onbeforetoggle, srcdoc documents, and executable URLs in the action, data, formaction, href, and src attributes can remain in attacker-controlled SVG input. When an application uses the plugin as its only protection and serves the optimized SVG in an active browser context, the payload can execute script in the viewer's origin, expose data, modify content, or perform actions as the victim. This issue is fixed in versions 2.8.4, 3.3.5, and 4.1.0.","dates":{"published":"2026-09-01T20:43:52.013Z","modified":"2026-09-02T15:46:16.971Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":6.1,"severity":"medium","version":"3.1","versionLabel":"v3.1","source":"CVE.org","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","computed":false,"selection":"backend-summary"},"metrics":[{"version":"3.1","versionLabel":"v3.1","source":"CVE.org","score":6.1,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Npm","score":6.1,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","exploitability":7.2,"impact":4.5,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Chainguard","score":6.1,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","exploitability":7.2,"impact":4.5,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":6.1,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Debian","score":6.1,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","exploitability":7.2,"impact":4.5,"computed":true}]},"epss":{"probability":0.0043,"percentile":0.36105,"severity":"low","asOf":"2026-10-21T00:00:00.000Z","change":{"pp":0.151,"baselineDate":"2026-09-21T00:00:00.000Z","baselineScore":0.00279},"history":[{"date":"2026-09-14T00:00:00.000Z","score":0.00279,"percentile":null},{"date":"2026-09-15T00:00:00.000Z","score":0.00279,"percentile":null},{"date":"2026-09-16T00:00:00.000Z","score":0.00279,"percentile":null},{"date":"2026-09-17T00:00:00.000Z","score":0.00279,"percentile":null},{"date":"2026-09-18T00:00:00.000Z","score":0.00279,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.00279,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.00279,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00279,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00279,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00279,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.0043,"percentile":0.36105}],"last30":[{"date":"2026-09-21T00:00:00.000Z","score":0.00279,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00279,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00279,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.0043,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.0043,"percentile":0.36105}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[],"exploitCount":0,"weaknesses":[{"id":"CWE-79","name":"Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')","description":"The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.","type":"weakness","status":"Stable","abstraction":"Base","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/79.html"}],"affected":[{"vendor":"chainguard","product":"airflow-2","name":"airflow-2","label":"airflow-2","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/airflow-2","purlType":"apk","versions":[{"text":"All versions","noFixRecorded":true,"fixedIn":null}],"versionsText":"All versions (No fix recorded)","eol":null,"hubHref":null},{"vendor":"chainguard","product":"airflow-core-2","name":"airflow-core-2","label":"airflow-core-2","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/airflow-core-2","purlType":"apk","versions":[{"text":"All versions","noFixRecorded":true,"fixedIn":null}],"versionsText":"All versions (No fix recorded)","eol":null,"hubHref":null},{"vendor":"chainguard","product":"arangodb-3.11","name":"arangodb-3.11","label":"arangodb-3.11","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/arangodb-3.11","purlType":"apk","versions":[{"text":"< 3.11.14.5-r24","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 3.11.14.5-r24","eol":null,"hubHref":null},{"vendor":"chainguard","product":"arangodb-3.12","name":"arangodb-3.12","label":"arangodb-3.12","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/arangodb-3.12","purlType":"apk","versions":[{"text":"< 3.12.11-r1","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 3.12.11-r1","eol":null,"hubHref":null},{"vendor":"debian","product":"node-svgo","name":"node-svgo","label":"node-svgo","ecosystem":"Debian","cpePart":null,"purl":"pkg:deb/debian/node-svgo","purlType":"deb","versions":[{"text":"< 3.3.5+ds-1","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 3.3.5+ds-1","eol":null,"hubHref":null},{"vendor":"Npm","product":"svgo","name":"svgo","label":"svgo","ecosystem":"Npm","cpePart":null,"purl":"pkg:npm/svgo","purlType":"npm","versions":[{"text":"≥ 1.0.0, < 2.8.4","noFixRecorded":false,"fixedIn":null},{"text":"≥ 3.0.0, < 3.3.5","noFixRecorded":false,"fixedIn":null},{"text":"≥ 4.0.0, < 4.1.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"≥ 1.0.0, < 2.8.4 | ≥ 3.0.0, < 3.3.5 | ≥ 4.0.0, < 4.1.0","eol":null,"hubHref":null},{"vendor":"svg","product":"svgo","name":"svgo","label":"svgo","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≥ 1.0.0, < 2.8.4","noFixRecorded":false,"fixedIn":null},{"text":"≥ 3.0.0, < 3.3.5","noFixRecorded":false,"fixedIn":null},{"text":"≥ 4.0.0, < 4.1.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"≥ 1.0.0, < 2.8.4 | ≥ 3.0.0, < 3.3.5 | ≥ 4.0.0, < 4.1.0","eol":null,"hubHref":"/vendor/svg/svgo"}],"affectedCount":7,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/svg/svgo/security/advisories/GHSA-4vpr-x523-8j87","label":"github.com/svg/svgo/security/advisories/GHSA-4vpr-x523-8j87","hostname":"github.com","tags":["X Refsource CONFIRM","WEB","Advisory"]},{"url":"https://github.com/svg/svgo/pull/2264","label":"github.com/svg/svgo/pull/2264","hostname":"github.com","tags":["X Refsource MISC","WEB","FIX"]},{"url":"https://github.com/svg/svgo/pull/2269","label":"github.com/svg/svgo/pull/2269","hostname":"github.com","tags":["X Refsource MISC","WEB","FIX"]},{"url":"https://github.com/svg/svgo/pull/2272","label":"github.com/svg/svgo/pull/2272","hostname":"github.com","tags":["X Refsource MISC","WEB","FIX"]},{"url":"https://github.com/svg/svgo/commit/0557385564a5c6c11d76cd934a6cff94451e532c","label":"github.com/svg/svgo/commit/0557385564a5c6c11d76cd934a6cff94451e532c","hostname":"github.com","tags":["X Refsource MISC","WEB","FIX"]},{"url":"https://github.com/svg/svgo/commit/994a9f00d79ddec68ce19a1ce9eb8ca08d747e4f","label":"github.com/svg/svgo/commit/994a9f00d79ddec68ce19a1ce9eb8ca08d747e4f","hostname":"github.com","tags":["X Refsource MISC","WEB","FIX"]},{"url":"https://github.com/svg/svgo/commit/fd51e474a300417d9361d9302d596b1763146327","label":"github.com/svg/svgo/commit/fd51e474a300417d9361d9302d596b1763146327","hostname":"github.com","tags":["X Refsource MISC","WEB","FIX"]},{"url":"https://github.com/svg/svgo/releases/tag/v2.8.4","label":"github.com/svg/svgo/releases/tag/v2.8.4","hostname":"github.com","tags":["X Refsource MISC","WEB"]},{"url":"https://github.com/svg/svgo/releases/tag/v3.3.5","label":"github.com/svg/svgo/releases/tag/v3.3.5","hostname":"github.com","tags":["X Refsource MISC","WEB"]},{"url":"https://github.com/svg/svgo/releases/tag/v4.1.0","label":"github.com/svg/svgo/releases/tag/v4.1.0","hostname":"github.com","tags":["X Refsource MISC","WEB"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-84369","label":"nvd.nist.gov/vuln/detail/CVE-2026-84369","hostname":"nvd.nist.gov","tags":["Advisory"]},{"url":"https://github.com/svg/svgo","label":"github.com/svg/svgo","hostname":"github.com","tags":["PACKAGE"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/84xxx/CVE-2026-84369.json","label":"github.com/CVEProject/cvelistV5/tree/main/cves/2026/84xxx/CVE-2026-84369.json","hostname":"github.com","tags":["Advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-84369","label":"security-tracker.debian.org/tracker/CVE-2026-84369","hostname":"security-tracker.debian.org","tags":["Advisory"]}],"lineage":{"upstream":[],"downstream":["OPENSUSE-SU-2026:12070-1"],"duplicates":[],"related":["OPENSUSE-SU-2026:12070-1"]},"timeline":[{"kind":"published","date":"2026-09-01T20:43:52.013Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-09-02T15:46:16.971Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":24,"level":"low","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-22T13:30:36.879Z","stale":false,"partial":false}}