Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSubmit crafted SVG to image pipeline
-
Exploitsharp decodes it via librsvg
-
ExecutionTrigger use-after-free memory corruption
-
ImpactCode execution in Node.js process on glibc Linux
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Memory lifecycle management
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the application to decode an attacker-supplied SVG image through sharp's librsvg-backed loader (VipsForeignLoadSvg) using a vulnerable sharp (< 0.35.5) with the pre-0.35.5 bundled librsvg (before 2.63.2). Reaching code execution is further constrained to glibc-based Linux and to node executables NOT compiled as Position Independent Executables (PIE) - the advisory explicitly notes that PIE-hardened node, used by most Linux package managers, prevents RCE, while the 'official' Node.js binaries are not PIE and remain exposed. Limiting/mitigating factors: SVG decoding must be enabled (it can be fully disabled via sharp.block({ operation: ['VipsForeignLoadSvg'] })), the host must be glibc Linux, and additional unspecified 'runtime-specific conditions' must align; absent these the flaw degrades to a memory-corruption/crash rather than reliable RCE. |
| Impact | The input assigns CVSS 4.0 8.9 (High) via CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N with high impact across both the vulnerable and subsequent system, reflecting a use-after-free (CWE-416) in the bundled librsvg dependency (CVE-2026-96889) that can yield RCE. Crucially, the raw score overstates turnkey risk: the GHSA advisory and description repeatedly qualify the outcome as occurring only 'under certain runtime-specific conditions' and 'may result' in code execution - captured by AT:P (attack requirements present) - and the advisory names a hard precondition that RCE is avoided entirely if the node executable is compiled as a Position Independent Executable (PIE), which most Linux package managers already enforce (only the official Node.js binaries are not PIE). There is NO EPSS score, NO CISA KEV listing, and NO public exploit provided in the input, so exploitation is 'no public exploit identified at time of analysis' - this should be treated as a conditional, defense-in-depth memory-safety fix rather than evidence of imminent mass exploitation. There is also a signal conflict worth verifying: the official vector uses AV:L (local), yet the description frames the threat as 'an attacker can supply a crafted SVG image' decoded by sharp, which in typical web/upload pipelines is a network-delivered, unauthenticated input (PR:N/UI:N) - verify with the vendor whether AV:L reflects a specific local-delivery assumption or is conservative. Net: a credible RCE primitive, but gated by glibc-based Linux, non-PIE node, and active SVG decoding, placing it below unconditional-critical priority. |
| Exploit ScenarioDerived | An application uses sharp (< 0.35.5) to process user-supplied images on a glibc-based Linux host where the node runtime is not PIE-hardened; an attacker submits a crafted SVG that sharp hands to librsvg for decoding. The malformed SVG triggers the use-after-free in librsvg, and under the right runtime conditions the corrupted memory is leveraged to execute arbitrary code in the context of the Node.js process. No public proof-of-concept is identified in the provided data, and success depends on the non-default-hardening and platform conditions noted in the advisory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 21, 2026
Code execution can occur in sharp versions before 0.35.5 when an application decodes attacker-supplied SVG images through the bundled librsvg, which contains the use-after-free tracked as CVE-2026-96889. The RCE outcome is constrained to glibc-based Linux and Node.js executables that are not built as PIE, so many distribution-packaged Node.js deployments are protected from code execution even though the underlying memory corruption remains. No public exploit was identified at time of analysis; SVG decoding can be disabled with sharp.block as a workaround.
RemediationAI
Vendor-released patch: upgrade sharp to 0.35.5 or later, which bundles librsvg 2.63.2, and update any globally installed librsvg to 2.63.2; the upstream fix commit is 96de105d9d36ab04c76c2b78b97255171630d236 and the advisory is at https://github.com/lovell/sharp/security/advisories/GHSA-wq5f-xc86-pv6w. If immediate upgrade is not possible, disable SVG decoding with sharp.block({ operation: ["VipsForeignLoadSvg"] }); the trade-off is loss of SVG support in that process. Additionally, run node from a PIE-compiled binary where feasible because the advisory notes official Node.js binaries are not PIE and remain exposed to the RCE outcome, whereas most Linux package-manager Node.js builds are PIE-hardened; this reduces exploitability but does not fix the underlying librsvg memory corruption.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in npm
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
sharp is a Node.js image-processing library that uses libvips and librsvg for SVG decoding through the VipsForeignLoadSvg loader. The root cause is CWE-416, a use-after-free in librsvg before 2.63.2 (CVE-2026-96889), reached when sharp decodes a crafted SVG; memory corruption can become code execution only when runtime-specific conditions align on glibc-based Linux and the node executable is not PIE. The independent assessment rates this CVSS 3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H, treating it as network-reachable in applications that accept remote SVGs but with high attack complexity and strong runtime prerequisites; the source CVSS 4.0 vector similarly reflects high impact with prerequisite conditions. The affected CPE cpe:2.3:a:lovell:sharp:*:*:*:*:*:*:*:* is broad, while package data identifies npm/sharp before 0.35.5 as vulnerable and 0.35.5 as bundling the fixed librsvg 2.63.2.
Know when Sharp gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
Crafted SVG is typically network-delivered and unauthenticated (AV:N/PR:N/UI:N); AC:H reflects the runtime-specific, non-PIE/glibc conditions required, with full in-process code execution impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
sharp before 0.35.5 bundles a librsvg dependency affected by a memory-related vulnerability (CVE-2026-96889) that, under certain runtime-specific conditions, can lead to code execution on glibc-based Linux. An attacker can supply a crafted SVG image that, when decoded by sharp through librsvg, may result in arbitrary code execution.
Blast Radius
ecosystem impact- 9,163 npm packages depend on sharp (2,487 direct, 6,754 indirect)
Ecosystem-wide dependent count for version 0.35.5.
Articles & Coverage 1
Technical POC Analysis
The defect is CWE-416, use-after-free, and it does not live in sharp's own JavaScript or C++ code.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Sharp image-processing library versions before 0.35.5 can execute attacker-controlled code when decoding malicious SVG images on glibc-based Linux with non-PIE Node.js executables, exposing applications that process untrusted uploads. Leadership should care because a successful exploit could compromise service integrity and data on affected deployments, though the code-execution path is constrained and no public exploit was identified at time of analysis.
No vendor-released patch identified at time of analysis; disable SVG decoding with sharp.block, reject or sanitize untrusted SVG inputs, restrict SVG processing to trusted sources, and prefer PIE-built Node.js executables on glibc-based Linux to reduce code-execution exposure while tracking CVE-2026-96889 for a librsvg fix.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Use-after-free vulnerabilities occur when a program continues to access memory through a pointer after that memory has been deallocated.
Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
Related Vulnerabilities in Sharp Bundled Dependency Code Execution Flaws
View all 3The Crestron AM-100 firmware 1.6.0.2, Crestron AM-101 firmware 2.7.0.1, Barco wePresent WiPG-1000P firmware 2.3.0.10, Ba
The Crestron AM-100 firmware 1.6.0.2, Crestron AM-101 firmware 2.7.0.1, Barco wePresent WiPG-1000P firmware 2.3.0.10, Ba
Stored cross-site scripting in code16 Sharp before 9.22.5 lets an authenticated user who can submit content into a Sharp
Stored cross-site scripting in code16 Sharp before 9.22.5 lets an authenticated user who can edit a rich-text Editor fie
Sharp and Toshiba Tec MFPs improperly process HTTP authentication requests, resulting in an authentication bypass vulner
Cross-site scripting vulnerability in Energy Management Controller with Cloud Services JH-RVB1 /JH-RV11 Ver.B0.1.9.1 and
Energy Management Controller with Cloud Services JH-RVB1 /JH-RV11 Ver.B0.1.9.1 and earlier allows a network-adjacent una
Improper authentication vulnerability in Energy Management Controller with Cloud Services JH-RVB1 /JH-RV11 Ver.B0.1.9.1
Authorization bypass in Sharp (code16/sharp Laravel CMS package) versions 9.0.0 through 9.22.3 permits authenticated use
Sharp and Toshiba Tec MFPs provide configuration related APIs. Rated high severity (CVSS 8.1), this vulnerability is rem
EUVD-2026-106914
GHSA-j56w-ppx9-7qff
NVD
CVE.org
EPSS
Exploit-DB