sharp: Vulnerabilities in libheif: GHSA-g89c-p67h-r497 and GHSA-2jg2-4ch7-h545
CVE-2026-114112 · GHSA-rgj7-g3m4-5g8c · published 8 Sept 2026
How serious is it
- Severity: high.
- No exploit prediction (EPSS) score yet.
- Not on the CISA list of exploited vulnerabilities.
- No public exploit in Exploit-DB.
Is your app affected by CVE-2026-114112?
Paste this prompt into Claude Code, Cursor or any AI coding tool: it runs a free Shippable scan of your project and fixes what it finds. Built with Lovable, Bolt or v0? Scan your live app. Or upload your package file.
Who is affected
sharp(npm) < 0.35.4
How to check
- Run
npm ls sharpin your project to see the installed version, including copies pulled in by other packages. - Or paste your lockfile into the checker: it lists every package with a known vulnerability, this one included.
- Or run
npx shippable-dev scan localhost:3000in your project folder. It reads your lockfile and flags this vulnerability along with every other known one.
How to fix
Copies a prompt for Claude Code, Cursor or Codex: it checks your lockfiles for this and upgrades it.
- Upgrade
sharpto 0.35.4 or later, commit the lockfile and redeploy. - If a vulnerable version was live, check your logs and rotate the secrets that server could read.
The advisory
### Impact
A number of vulnerabilities, two rated as "Critical" severity using CVSSv3, have been discovered and fixed in the upstream libheif dependency. These can lead to possible remote code execution (RCE) on glibc-based Linux when run under certain conditions.
The attack vector for these claims to be "network" however sharp does not provide any networking features so this vulnerability is down-rated to a "High" severity using CVSSv4 but please note its Subsequent System Impact.
Those processing untrusted input with versions of sharp prior to 0.35.4 are affected.
### Patches
#### Using prebuilt binaries provided by sharp?
Most people rely on the prebuilt binaries provided by sharp.
Please upgrade sharp to the latest version, currently 0.35.4, which provides libheif 1.23.2.
#### Using a globally-installed libheif?
Please ensure you are using the latest libheif 1.23.2.
### Workarounds
Add the following to your code to prevent sharp from decoding AVIF images.
```js
sharp.block({ operation: ["VipsForeignLoadHeif"] });
```
Ensure you are using a `node` executable binary compiled as a Position Independent Executable (PIE). Most Linux package managers already do this for protection against RCE however be warned that the "official" Node.js binaries do not.
### References
- [CVE-2026-84383](https://github.com/strukturag/libheif/security/advisories/GHSA-g89c-p67h-r497)
- https://github.com/strukturag/libheif/security/advisories/GHSA-2jg2-4ch7-h545
Check your whole app
Dependencies are only half of it. Free and read-only: before you push, run npx shippable-dev scan localhost:3000 in your project folder, no account needed. For your live app, you prove it's yours with a one-line tag first.
References
- github.com/lovell/sharp/security/advisories/GHSA-rgj7-g3m4-5g8c
- github.com/strukturag/libheif/security/advisories/GHSA-2jg2-4ch7-h545
- github.com/strukturag/libheif/security/advisories/GHSA-g89c-p67h-r497
- github.com/lovell/sharp
- github.com/lovell/sharp/releases/tag/v0.35.4
Merged from OSV. Last updated 25 Oct 2026. All vulnerabilities · RSS · JSON