Skip to main content

sharp EUVDEUVD-2026-106915

| CVE-2026-114112 HIGH
Heap-based Buffer Overflow (CWE-122)
2026-10-21 VulnCheck GHSA-gqw3-74gm-648q
8.9
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Upload crafted AVIF/HEIF image to app
  2. Delivery
    Application passes image to sharp
  3. Exploit
    libheif heap overflow during decode
  4. Execution
    Corrupt heap and hijack control flow
  5. Impact
    Execute arbitrary code on host

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Heap buffer bounds checking
MITRE ATT&CK

1 technique across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires an application that decodes untrusted AVIF or HEIF images using sharp prior to 0.35.4, running on glibc-based Linux. The flaw is in the bundled (or globally-installed) libheif; reaching it requires that sharp's HEIF/AVIF load path (VipsForeignLoadHeif) actually process attacker-controlled image data. Achieving reliable RCE (versus a crash) is substantially more feasible when the node executable is NOT compiled as a Position Independent Executable - notably the 'official' Node.js binaries are not PIE, whereas most Linux package-manager node builds are, which mitigates. The CVSS AT:P (Attack Requirements: Present) reflects these conditional dependencies. LIMITING FACTORS: non-glibc (e.g. musl/Alpine) platforms, PIE-compiled node, and applications not exposing HEIF/AVIF decoding to untrusted input reduce or remove exposure. A documented workaround exists: sharp.block({ operation: ['VipsForeignLoadHeif'] }) disables the vulnerable decoder.

Impact

This is a credible priority for any glibc-based Linux service that decodes untrusted user-supplied images with sharp, but the real-world risk is more nuanced than the 8.9 CVSS 4.0 score suggests. The root cause is CWE-122 (heap-based buffer overflow) in the bundled libheif dependency (upstream GHSA-g89c-p67h-r497 / CVE-2026-84383 and GHSA-2jg2-4ch7-h545), reachable through sharp's AVIF/HEIF decoding path. Signals conflict on the attack vector: upstream libheif rated the flaw 'network' (AV:N), but the sharp maintainer deliberately down-rated it because sharp itself has no networking features, yielding the provided CVSS 4.0 vector of AV:L with AT:P (Attack Requirements: Present) - reflecting that successful RCE depends on specific runtime conditions rather than a clean remote code path. The advisory explicitly flags the high Subsequent System Impact (SC:H/SI:H/SA:H), i.e. full code execution on the host once the heap corruption is leveraged. Crucially, EPSS, KEV, SSVC, and POC data are all ABSENT from the provided input: there is no public exploit identified at time of analysis and no confirmed active exploitation. The advisory wording is also cautious - 'possible remote code execution' under 'certain conditions' - meaning weaponized exploitation is not demonstrated, only plausible. The practical risk is therefore gated by deployment specifics (see exploitation_conditions): notably, exploitation to RCE is far more feasible when the node binary is NOT compiled as a Position Independent Executable, which is the case for the 'official' Node.js binaries. Verify your node build and image-processing exposure before deprioritizing.

Exploit ScenarioDerived

An application that accepts user-uploaded images and processes them with sharp < 0.35.4 (e.g. thumbnail generation) is sent a crafted AVIF or HEIF file; when sharp hands the image to the bundled libheif for decoding, a heap buffer overflow is triggered, potentially leading to arbitrary code execution on a glibc-based Linux host - especially if node was not built as a PIE. No public exploit code was identified in the provided data, and the advisory describes RCE as 'possible' under 'certain conditions' rather than demonstrated.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 21, 2026

Code execution can be triggered in applications that use sharp before 0.35.4 on glibc-based Linux to decode untrusted AVIF or HEIF images, because the bundled libheif dependency contains heap buffer overflow flaws (CWE-122). The CVE record rates this 8.9 under CVSS 4.0 with a local vector and PR:N, but the independent assessment emphasizes that exploitation requires sharp's VipsForeignLoadHeif path to process attacker-controlled image data and is substantially easier when the Node.js executable is not compiled as PIE; non-glibc deployments and PIE builds reduce exposure. No public exploit identified at time of analysis, and no CISA KEV confirmation was provided.

RemediationAI

Upgrade sharp to 0.35.4 or later, which provides libheif 1.23.2, per https://github.com/lovell/sharp/security/advisories/GHSA-rgj7-g3m4-5g8c. If using a globally installed libheif rather than sharp's bundled binaries, update libheif to 1.23.2. If upgrading is not immediately possible, disable sharp's HEIF/AVIF decoding with sharp.block({ operation: ['VipsForeignLoadHeif'] }); this removes the vulnerable load path but also disables legitimate HEIF/AVIF image support. Also ensure the Node.js executable is compiled as a Position Independent Executable (PIE), since the advisory notes that official Node.js binaries are not PIE and most Linux package-manager builds are; PIE reduces exploitability but does not fix the underlying libheif flaw. Non-glibc platforms such as musl/Alpine are a limiting factor for the RCE scenario described, but upgrading remains the primary fix.

Affected VersionsENISA

sharp 0 <0.35.4

Affected Packages

npm sharp fix: 0.35.4

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

The root cause is a heap-based buffer overflow class (CWE-122) in libheif image decoding, reached through sharp's libvips HEIF/AVIF loader path. sharp versions before 0.35.4 bundle a vulnerable libheif; separate upstream libheif advisories GHSA-g89c-p67h-r497 and GHSA-2jg2-4ch7-h545 describe the decoding flaws, and sharp 0.35.4 ships libheif 1.23.2 as the fixed dependency. The CPE cpe:2.3:a:lovell:sharp:*:*:*:*:*:*:*:* identifies the affected npm package range. The CVE metadata lists CVSS 4.0 8.9 (AV:L/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H), while the independent assessment uses CVSS 3.1 AV:L/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H; both reflect a local attack vector and conditional prerequisites rather than a directly network-reachable service flaw. In practice, memory corruption during crafted AVIF/HEIF parsing can lead to code execution or crashes, with glibc-based Linux and non-PIE Node.js binaries making reliable RCE more feasible.

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

Vendor (VulnCheck) PRIMARY 8.9 HIGH
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
vuln.today AI 8.1 HIGH

AV:L because sharp exposes no network interface and consumes a local image buffer/file; AC:H reflects the non-PIE/glibc heap-corruption prerequisites; S:C and C/I/A:H capture host-wide code execution.

3.1 AV:L/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H
4.0 AV:L/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
High
Subsequent system: Integrity
High
Subsequent system: Availability
High

Lifecycle Timeline

2
Patch available
Oct 21, 2026 - 02:01 EUVD
CVE Published
Oct 21, 2026 - 00:37 cve.org
HIGH 8.9

DescriptionCVE.org

Sharp before 0.35.4 bundles a vulnerable libheif dependency that allows attackers to achieve possible remote code execution on glibc-based Linux by supplying crafted images. Attackers can submit malicious AVIF/HEIF input to applications processing untrusted images with sharp, triggering libheif decoding flaws to execute code.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 379 npm packages depend on sharp (209 direct, 173 indirect)

Ecosystem-wide dependent count for version 0.35.4.

Technical POC Analysis

Evidence caveat, read first: the only supplied artifact is the GitHub advisory GHSA-rgj7-g3m4-5g8c for lovell/sharp.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

sharp versions before 0.35.4 on glibc-based Linux can permit code execution when applications decode untrusted AVIF or HEIF images, creating a high-severity memory-corruption risk for image-ingesting services. Leadership should care because products or pipelines that accept user-supplied images and rely on the affected library may be exposed, although no public exploit has been identified at time of analysis. Exposure is reduced for non-glibc deployments and Node.js builds compiled as PIE.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations include disabling AVIF/HEIF decoding in sharp, rejecting untrusted AVIF/HEIF image inputs, running image-processing workloads in isolated low-privilege containers, compiling Node.js as PIE, and preferring non-glibc deployments where operationally feasible; monitor for crashes or anomalous process activity during image decoding.

Threat Intelligence Overview

EPSS Score
0.2%
Top 92% exploitable
Prevalence
High
sharp is a dominant Node.js image library with tens of millions of weekly npm installs
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

A heap overflow occurs when a program writes data beyond the bounds of a buffer allocated in the heap memory region.

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 3

More in Sharp

View all
CVE-2019-3929 CRITICAL POC
9.8 Apr 30

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

CVE-2019-3930 CRITICAL POC
9.8 Apr 30

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

CVE-2026-61825 HIGH POC
8.7 Sep 24

Stored cross-site scripting in code16 Sharp before 9.22.5 lets an authenticated user who can submit content into a Sharp

CVE-2026-61823 HIGH POC
7.3 Sep 24

Stored cross-site scripting in code16 Sharp before 9.22.5 lets an authenticated user who can edit a rich-text Editor fie

CVE-2024-47406 CRITICAL
9.8 Oct 25

Sharp and Toshiba Tec MFPs improperly process HTTP authentication requests, resulting in an authentication bypass vulner

CVE-2024-23786 CRITICAL
9.3 Feb 14

Cross-site scripting vulnerability in Energy Management Controller with Cloud Services JH-RVB1 /JH-RV11 Ver.B0.1.9.1 and

CVE-2024-23789 HIGH
8.8 Feb 14

Energy Management Controller with Cloud Services JH-RVB1 /JH-RV11 Ver.B0.1.9.1 and earlier allows a network-adjacent una

CVE-2024-23783 HIGH
8.8 Feb 14

Improper authentication vulnerability in Energy Management Controller with Cloud Services JH-RVB1 /JH-RV11 Ver.B0.1.9.1

CVE-2026-53634 MEDIUM POC
4.3 Jun 10

Authorization bypass in Sharp (code16/sharp Laravel CMS package) versions 9.0.0 through 9.22.3 permits authenticated use

CVE-2024-47005 HIGH
8.1 Oct 25

Sharp and Toshiba Tec MFPs provide configuration related APIs. Rated high severity (CVSS 8.1), this vulnerability is rem

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy