ionic-team / ionic-team/capacitor-assets

sharp pinned to 0.32.6 is affected by GHSA-f88m-g3jw-g9cj (high); bump to ^0.35.3

Open Beginner friendly
#651 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
583
Forks
116
PR merge metrics
No merged PRs in 30d

Description

`@capacitor/assets@3.0.5` depends on `sharp` at an exact `0.32.6`:

```json
"dependencies": {
"sharp": "0.32.6"
}
```

That version falls inside [GHSA-f88m-g3jw-g9cj](https://github.com/advisories/GHSA-f88m-g3jw-g9cj) (high) — sharp's inherited libvips vulnerabilities, CVE-2026-33327, CVE-2026-33328, CVE-2026-35590 and CVE-2026-35591. The advisory covers `sharp < 0.35.0`, and the first patched release is `0.35.0`.

### Why the exact pin makes this awkward downstream

Because the dependency is pinned exactly rather than ranged, a consuming project cannot resolve it by updating — the only route is a package-manager override / `resolutions` entry forcing `sharp` above the range. That works, but it silently overrides a dependency the package deliberately pinned, which is not something a consumer should have to guess at.

### Relationship to #636

[#636](https://github.com/ionic-team/capacitor-assets/issues/636) already asks for a `sharp` bump, but from the install-failure angle and suggesting `0.34.1`. Worth noting that `0.34.x` is **also** inside this advisory's range, so it would not resolve the security side. `>= 0.35.0` addresses both, and would fix the `0.32.6` install/postinstall failures that several issues here describe as a side effect.

### Suggestion

Move the dependency to `^0.35.3` (current latest is `0.35.4`). For reference, Next.js 16.3.x now declares `sharp: ^0.35.3` as an optional dependency, so `0.35.x` is well exercised in the ecosystem.

Contributor guide

Open the contributing guide

Research direction

Locate the package manifest containing the exact sharp 0.32.6 dependency and inspect any generated lockfiles. Update the dependency to ^0.35.3, then run the repository's install and test or build checks; done means the vulnerable pin is gone and installation succeeds without the reported sharp failures.

Written by the indexing model from the issue text.

Assessment

Tech stack
node.js, typescript
Domain
security, tooling
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
74/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.