6.1 MEDIUM
- CVSS version (CVSS): 3.1
- Attack Vector (AV): Network (N)
- Attack Complexity (AC): Low (L)
- Privileges Required (PR): None (N)
- User Interaction (UI): Required (R)
- Scope (S): Changed (C)
- Confidentiality (C): Low (L)
- Integrity (I): Low (L)
- Availability (A): None (N)
- Modified Attack Vector (MAV): Network (N)
- Modified Attack Complexity (MAC): Low (L)
- Modified Privileges Required (MPR): None (N)
- Modified User Interaction (MUI): Required (R)
- Modified Confidentiality (MC): Low (L)
- Modified Scope (MS): Changed (C)
- Modified Integrity (MI): Low (L)
- Modified Availability (MA): None (N)
by @LeSuisse Activity log
- Created suggestion
- @LeSuisse ignored package haskellPackages.svgone
- @LeSuisse accepted
- @LeSuisse published on GitHub
SVGO: removeScripts incompletely sanitizes executable HTML in SVG foreignObject elements
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.
References
-
https://github.com/svg/svgo/security/advisories/GHSA-4vpr-x523-8j87 x_refsource_CONFIRM
-
https://github.com/svg/svgo/pull/2264 x_refsource_MISC
-
https://github.com/svg/svgo/pull/2269 x_refsource_MISC
-
https://github.com/svg/svgo/pull/2272 x_refsource_MISC
-
https://github.com/svg/svgo/releases/tag/v2.8.4 x_refsource_MISC
-
https://github.com/svg/svgo/releases/tag/v3.3.5 x_refsource_MISC
-
https://github.com/svg/svgo/releases/tag/v4.1.0 x_refsource_MISC
Affected products
- ==>= 3.0.0, < 3.3.5
- ==>= 1.0.0, < 2.8.4
- ==>= 4.0.0, < 4.1.0
Matching in nixpkgs
8.2 HIGH
- CVSS version (CVSS): 3.1
- Attack Vector (AV): Network (N)
- Attack Complexity (AC): Low (L)
- Privileges Required (PR): None (N)
- User Interaction (UI): Required (R)
- Scope (S): Changed (C)
- Confidentiality (C): High (H)
- Integrity (I): Low (L)
- Availability (A): None (N)
- Modified Attack Vector (MAV): Network (N)
- Modified Attack Complexity (MAC): Low (L)
- Modified Privileges Required (MPR): None (N)
- Modified User Interaction (MUI): Required (R)
- Modified Confidentiality (MC): High (H)
- Modified Scope (MS): Changed (C)
- Modified Integrity (MI): Low (L)
- Modified Availability (MA): None (N)
by @LeSuisse Activity log
- Created suggestion
- @LeSuisse ignored package haskellPackages.svgone
- @LeSuisse accepted
- @LeSuisse published on GitHub
SVGO: removeScripts allows executable links through namespace and control-character bypasses
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, incompletely filters executable links in plugins/removeScripts.js and lib/svgo/tools.js. The plugin does not recognize namespace-prefixed SVG anchor elements such as svg:a with href or namespaced *:href values, and it does not remove ASCII tab, line-feed, or carriage-return characters before checking URL schemes. Browsers remove those characters before parsing a scheme, allowing an executable link to pass the plugin's check. When an application processes attacker-controlled SVG input and serves the result in an active browser context, a victim who activates the surviving link can execute script in the SVG'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.
References
-
https://github.com/svg/svgo/security/advisories/GHSA-w27v-7q3p-w38r x_refsource_CONFIRM
-
https://github.com/svg/svgo/pull/2268 x_refsource_MISC
-
https://github.com/svg/svgo/pull/2269 x_refsource_MISC
-
https://github.com/svg/svgo/pull/2272 x_refsource_MISC
-
https://github.com/svg/svgo/releases/tag/v2.8.4 x_refsource_MISC
-
https://github.com/svg/svgo/releases/tag/v3.3.5 x_refsource_MISC
-
https://github.com/svg/svgo/releases/tag/v4.1.0 x_refsource_MISC
Affected products
- ==>= 3.0.0, < 3.3.5
- ==>= 1.0.0, < 2.8.4
- ==>= 4.0.0, < 4.1.0
Matching in nixpkgs
8.2 HIGH
- CVSS version (CVSS): 3.1
- Attack Vector (AV): Network (N)
- Attack Complexity (AC): Low (L)
- Privileges Required (PR): None (N)
- User Interaction (UI): Required (R)
- Scope (S): Changed (C)
- Confidentiality (C): High (H)
- Integrity (I): Low (L)
- Availability (A): None (N)
- Modified Attack Vector (MAV): Network (N)
- Modified Attack Complexity (MAC): Low (L)
- Modified Privileges Required (MPR): None (N)
- Modified User Interaction (MUI): Required (R)
- Modified Confidentiality (MC): High (H)
- Modified Scope (MS): Changed (C)
- Modified Integrity (MI): Low (L)
- Modified Availability (MA): None (N)
by @LeSuisse Activity log
- Created suggestion
- @LeSuisse accepted
- @LeSuisse ignored package haskellPackages.svgone
- @LeSuisse published on GitHub
SVGO: removeScripts plugin leaves some executable scripts intact
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.3, 3.3.4, and 4.0.2, the removeScripts plugin, named removeScriptElement in versions 1 through 3, can leave executable content in optimized SVGs because it does not remove namespaced or prefixed script elements such as <svg:script> and, in versions 3 and 4, matches JavaScript URIs case sensitively. Applications that process untrusted SVG input with this plugin enabled and serve the result can allow scripts to execute when another user opens the SVG, exposing local storage or cookies. This issue is fixed in versions 2.8.3, 3.3.4, and 4.0.2.
References
-
https://github.com/svg/svgo/security/advisories/GHSA-2p49-hgcm-8545 x_refsource_CONFIRM
-
https://github.com/svg/svgo/releases/tag/v2.8.3 x_refsource_MISC
-
https://github.com/svg/svgo/releases/tag/v3.3.4 x_refsource_MISC
-
https://github.com/svg/svgo/releases/tag/v4.0.2 x_refsource_MISC
Affected products
- ==>= 3.0.0, < 3.3.4
- ==>= 1.0.0, < 2.8.3
- ==>= 4.0.0, < 4.0.2