Skip to content

fix(deps): update dependency sharp to ^0.35.0 [security] - #309

Open
renovate[bot] wants to merge 2 commits into
mainfrom
renovate/npm-sharp-vulnerability
Open

fix(deps): update dependency sharp to ^0.35.0 [security]#309
renovate[bot] wants to merge 2 commits into
mainfrom
renovate/npm-sharp-vulnerability

Conversation

@renovate

@renovate renovate Bot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
sharp (source, changelog) ^0.34.5^0.35.0 age confidence

sharp inherited vulnerabilities in libvips: CVE-2026-33327, CVE-2026-33328, CVE-2026-35590, CVE-2026-35591

GHSA-f88m-g3jw-g9cj

More information

Details

Impact

A number of vulnerabilities, two rated as "High" severity using CVSSv4, have been discovered and fixed in the upstream libvips dependency.

Those processing untrusted input with versions of sharp prior to 0.35.0 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.3, which provides libvips 8.18.3.

Using a globally-installed libvips?

Please ensure you are using the latest libvips 8.18.3.

Workarounds

Add the following to your code to prevent sharp from decoding GIF, TIFF and VIPS images.

sharp.block({ operation: ["VipsForeignLoadNsgif", "VipsForeignLoadTiff", "VipsForeignLoadVips"] });

Severity

  • CVSS Score: 7.0 / 10 (High)
  • Vector String: CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:L/VI:H/VA:H/SC:N/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

lovell/sharp (sharp)

v0.35.0

Compare Source

  • Breaking: Drop support for Node.js 18, now requires Node.js >= 20.9.0.

  • Breaking: Remove install script from package.json file.
    Compiling from source is now opt-in via the build script.

  • Breaking: Lossy AVIF output is now tuned using SSIMULACRA2-based iq quality metrics.

  • Breaking: Add limitInputChannels with a default value of 5.

  • Breaking: Remove deprecated failOnError constructor property.

  • Breaking: Remove deprecated paletteBitDepth from metadata response.

  • Breaking: Remove deprecated properties from sharpen operation.

  • Breaking: Rename format.jp2k as format.jp2 for API consistency.

  • Upgrade to libvips v8.18.3 for upstream bug fixes.

  • Remove experimental status from WebAssembly binaries.

  • Add prebuilt binaries for FreeBSD (WebAssembly).

  • Deprecate Windows 32-bit (win32-ia32) prebuilt binaries.

  • Ensure TIFF output bitdepth option is limited to 1, 2 or 4.

  • Add AVIF/HEIF tune option for control over quality metrics.
    #​4227

  • Add keepGainMap and withGainMap to process HDR JPEG images with embedded gain maps.
    #​4314

  • Add toUint8Array for output image as a TypedArray backed by a transferable ArrayBuffer.
    #​4355

  • Require prebuilt binaries using static paths to aid code bundling.
    #​4380

  • TypeScript: Ensure FormatEnum keys match reality.
    #​4475

  • Add margin option to trim operation.
    #​4480
    @​eddienubes

  • Ensure HEIF primary item is used as default page/frame.
    #​4487

  • Add image Media Type (MIME Type) to metadata response.
    #​4492

  • Add withDensity to set output density in EXIF metadata.
    #​4496

  • Improve pkg-config path discovery.
    #​4504

  • Add WebP exact option for control over transparent pixel colour values.

  • Add support for ECMAScript Modules (ESM).
    #​4509
    @​florian-lefebvre


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@changeset-bot

changeset-bot Bot commented Aug 26, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: fccb1e6

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@renovate
renovate Bot force-pushed the renovate/npm-sharp-vulnerability branch 5 times, most recently from 9658aef to 613e775 Compare September 5, 2026 21:17
@renovate
renovate Bot force-pushed the renovate/npm-sharp-vulnerability branch from 613e775 to 79949d6 Compare September 5, 2026 22:06
pnpm blocks dependency build scripts by default and this workspace declared no
`onlyBuiltDependencies`, so sharp's install script never ran. On Linux that goes
unnoticed - a matching prebuilt binary is fetched as an optional dependency - but
the macOS leg failed:

    MissingSharp: Could not find Sharp. Please install Sharp (`sharp`) manually
    into your project or migrate to another image service.

which is why this security PR could not pass its own CI. esbuild and turbo are
native installers in the same position and pnpm was reporting all three as
ignored, so they are listed together.

Note the failing leg was macOS-only, so a Linux run cannot prove this fix -
`pnpm install --frozen-lockfile` and `pnpm run verify` pass here (4/4 tasks) and
the ignored-builds warning is gone, but the macOS CI leg is the real check.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ETjy9oQGyETyFmDBdR9Egz
Signed-off-by: unional <homawong@gmail.com>
@renovate

renovate Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor Author

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

unional added a commit that referenced this pull request Sep 6, 2026
pnpm blocks dependency build scripts by default and this workspace declared no
`onlyBuiltDependencies`, so sharp's install script never runs. On Linux that goes
unnoticed - a matching prebuilt binary arrives as an optional dependency - but on
macOS `astro build` fails:

    MissingSharp: Could not find Sharp. Please install Sharp (`sharp`) manually
    into your project or migrate to another image service.

This is why the sharp security PR (#309) could not pass its macOS CI leg. Proven
there: the same change on that branch turned the run green.

Fixing it on `main` rather than only on that branch, because the missing
declaration is a property of this repo, not of the sharp upgrade - any dependency
PR touching these packages hits it, and Renovate will inherit the fix when it
rebases.

esbuild and turbo are native installers in the same position; pnpm reports all
three as ignored.

Verified: `pnpm install --frozen-lockfile` no longer warns about ignored builds
and `pnpm run verify` exits 0, 4/4 tasks.


Claude-Session: https://claude.ai/code/session_01ETjy9oQGyETyFmDBdR9Egz

Signed-off-by: unional <homawong@gmail.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant