Skip to content

fix(repo): override sharp to >=0.35.0 to clear libvips advisory#2548

Merged
mandarini merged 2 commits into
masterfrom
fix/override-sharp-version
Jul 22, 2026
Merged

fix(repo): override sharp to >=0.35.0 to clear libvips advisory#2548
mandarini merged 2 commits into
masterfrom
fix/override-sharp-version

Conversation

@mandarini

@mandarini mandarini commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

The pnpm audit --audit-level=high --prod step in CI started failing on every PR after the GHSA-f88m-g3jw-g9cj advisory (CVE-2026-33327 and related libvips issues) was published on 2026-07-21, flagging sharp <0.35.0 pulled transitively through next in the realtime-js example app. This adds a sharp: >=0.35.0 override in pnpm-workspace.yaml (the location this workspace reads overrides from in pnpm v11) so sharp resolves to a patched version and the audit gate passes again.

Regenerating the lockfile bumps sharp to 0.35.3 and, as a side effect of the full re-resolution, picks up a few age-eligible patch bumps in dev tooling and the example app (next 16.2.9 to 16.2.10, @emnapi/runtime, and related wasm runtime bindings). None of these touch published package runtime code. After the change, pnpm audit --audit-level=high --prod reports no high-severity vulnerabilities.

@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: b128d5e5-6ce1-4124-a90b-6226e9e9ae92

📥 Commits

Reviewing files that changed from the base of the PR and between 6f35df4 and 7202813.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (2)
  • package.json
  • pnpm-workspace.yaml
🚧 Files skipped from review as they are similar to previous changes (1)
  • pnpm-workspace.yaml

📝 Walkthrough

Summary by CodeRabbit

  • Chores
    • Updated workspace dependency resolution to enforce Sharp 0.35.0+ consistently across all packages.
    • Added a workspace-wide constraint for unrun (>=0.2.39 <0.3.0) to keep installed versions aligned.
    • Adjusted where these constraints are defined so dependency behavior is uniform across the workspace.

Walkthrough

The root package.json removes its pnpm.overrides configuration for unrun. The workspace configuration adds root-level overrides constraining unrun to >=0.2.39 <0.3.0 and sharp to >=0.35.0 across workspace packages.

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 Checkov (3.3.8)
package.json

Traceback (most recent call last):
File "/usr/local/bin/checkov", line 2, in
from checkov.main import Checkov
ModuleNotFoundError: No module named 'checkov'

pnpm-workspace.yaml

Traceback (most recent call last):
File "/usr/local/bin/checkov", line 2, in
from checkov.main import Checkov
ModuleNotFoundError: No module named 'checkov'

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint install timed out. The project may have too many dependencies for the sandbox.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@mandarini
mandarini marked this pull request as ready for review July 22, 2026 13:57
@mandarini
mandarini requested review from a team as code owners July 22, 2026 13:57
@pkg-pr-new

pkg-pr-new Bot commented Jul 22, 2026

Copy link
Copy Markdown

Open in StackBlitz

@supabase/auth-js

npm i https://pkg.pr.new/@supabase/auth-js@2548

@supabase/functions-js

npm i https://pkg.pr.new/@supabase/functions-js@2548

@supabase/postgrest-js

npm i https://pkg.pr.new/@supabase/postgrest-js@2548

@supabase/realtime-js

npm i https://pkg.pr.new/@supabase/realtime-js@2548

@supabase/storage-js

npm i https://pkg.pr.new/@supabase/storage-js@2548

@supabase/supabase-js

npm i https://pkg.pr.new/@supabase/supabase-js@2548

commit: 7202813

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Capability matrix drift detected

The following capabilities are marked implemented in javascript but have no registered symbols to verify:

  • auth.admin.create_provider (no symbols list — cannot confirm implementation exists)
  • auth.admin.create_user (no symbols list — cannot confirm implementation exists)
  • auth.admin.delete_mfa_factor (no symbols list — cannot confirm implementation exists)
  • auth.admin.delete_provider (no symbols list — cannot confirm implementation exists)
  • auth.admin.delete_user (no symbols list — cannot confirm implementation exists)
  • auth.admin.generate_link (no symbols list — cannot confirm implementation exists)
  • auth.admin.get_provider (no symbols list — cannot confirm implementation exists)
  • auth.admin.get_user (no symbols list — cannot confirm implementation exists)
  • auth.admin.invite_user (no symbols list — cannot confirm implementation exists)
  • auth.admin.list_mfa_factors (no symbols list — cannot confirm implementation exists)
  • auth.admin.list_providers (no symbols list — cannot confirm implementation exists)
  • auth.admin.list_users (no symbols list — cannot confirm implementation exists)
  • auth.admin.sign_out (no symbols list — cannot confirm implementation exists)
  • auth.admin.update_provider (no symbols list — cannot confirm implementation exists)
  • auth.admin.update_user (no symbols list — cannot confirm implementation exists)
  • auth.identities.link_identity (no symbols list — cannot confirm implementation exists)
  • auth.identities.list_identities (no symbols list — cannot confirm implementation exists)
  • auth.identities.unlink_identity (no symbols list — cannot confirm implementation exists)
  • auth.mfa.challenge (no symbols list — cannot confirm implementation exists)
  • auth.mfa.challenge_and_verify (no symbols list — cannot confirm implementation exists)
  • auth.mfa.enroll (no symbols list — cannot confirm implementation exists)
  • auth.mfa.get_authenticator_assurance_level (no symbols list — cannot confirm implementation exists)
  • auth.mfa.list_factors (no symbols list — cannot confirm implementation exists)
  • auth.mfa.unenroll (no symbols list — cannot confirm implementation exists)
  • auth.mfa.verify (no symbols list — cannot confirm implementation exists)
  • auth.oauth_admin.create_client (no symbols list — cannot confirm implementation exists)
  • auth.oauth_admin.delete_client (no symbols list — cannot confirm implementation exists)
  • auth.oauth_admin.get_client (no symbols list — cannot confirm implementation exists)
  • auth.oauth_admin.list_clients (no symbols list — cannot confirm implementation exists)
  • auth.oauth_admin.regenerate_client_secret (no symbols list — cannot confirm implementation exists)
  • auth.oauth_admin.update_client (no symbols list — cannot confirm implementation exists)
  • auth.oauth_server.approve_authorization (no symbols list — cannot confirm implementation exists)
  • auth.oauth_server.deny_authorization (no symbols list — cannot confirm implementation exists)
  • auth.oauth_server.get_authorization_details (no symbols list — cannot confirm implementation exists)
  • auth.oauth_server.list_grants (no symbols list — cannot confirm implementation exists)
  • auth.oauth_server.revoke_grant (no symbols list — cannot confirm implementation exists)
  • auth.passkey.register_passkey (no symbols list — cannot confirm implementation exists)
  • auth.passkey.sign_in_with_passkey (no symbols list — cannot confirm implementation exists)
  • auth.passkey_admin.delete_passkey (no symbols list — cannot confirm implementation exists)
  • auth.passkey_admin.list_passkeys (no symbols list — cannot confirm implementation exists)
  • auth.session.auto_refresh (no symbols list — cannot confirm implementation exists)
  • auth.session.get_claims (no symbols list — cannot confirm implementation exists)
  • auth.session.get_session (no symbols list — cannot confirm implementation exists)
  • auth.session.get_user (no symbols list — cannot confirm implementation exists)
  • auth.session.refresh_session (no symbols list — cannot confirm implementation exists)
  • auth.session.set_session (no symbols list — cannot confirm implementation exists)
  • auth.session.sign_out (no symbols list — cannot confirm implementation exists)
  • auth.session.subscribe_auth_events (no symbols list — cannot confirm implementation exists)
  • auth.session.update_user (no symbols list — cannot confirm implementation exists)
  • auth.sign_in.exchange_code_for_session (no symbols list — cannot confirm implementation exists)
  • auth.sign_in.reauthenticate (no symbols list — cannot confirm implementation exists)
  • auth.sign_in.resend_confirmation (no symbols list — cannot confirm implementation exists)
  • auth.sign_in.reset_password (no symbols list — cannot confirm implementation exists)
  • auth.sign_in.sign_in_anonymously (no symbols list — cannot confirm implementation exists)
  • auth.sign_in.sign_in_with_id_token (no symbols list — cannot confirm implementation exists)
  • auth.sign_in.sign_in_with_oauth (no symbols list — cannot confirm implementation exists)
  • auth.sign_in.sign_in_with_otp (no symbols list — cannot confirm implementation exists)
  • auth.sign_in.sign_in_with_password (no symbols list — cannot confirm implementation exists)
  • auth.sign_in.sign_in_with_sso (no symbols list — cannot confirm implementation exists)
  • auth.sign_in.sign_in_with_web3 (no symbols list — cannot confirm implementation exists)
  • auth.sign_in.sign_up (no symbols list — cannot confirm implementation exists)
  • auth.sign_in.verify_otp (no symbols list — cannot confirm implementation exists)
  • database.mutate.delete (no symbols list — cannot confirm implementation exists)
  • database.mutate.insert (no symbols list — cannot confirm implementation exists)
  • database.mutate.update (no symbols list — cannot confirm implementation exists)
  • database.mutate.upsert (no symbols list — cannot confirm implementation exists)
  • database.query.from_table (no symbols list — cannot confirm implementation exists)
  • database.query.rpc (no symbols list — cannot confirm implementation exists)
  • database.query.schema_selection (no symbols list — cannot confirm implementation exists)
  • database.query.select (no symbols list — cannot confirm implementation exists)
  • database.using_filters.contained_by (no symbols list — cannot confirm implementation exists)
  • database.using_filters.contains (no symbols list — cannot confirm implementation exists)
  • database.using_filters.eq (no symbols list — cannot confirm implementation exists)
  • database.using_filters.gt (no symbols list — cannot confirm implementation exists)
  • database.using_filters.gte (no symbols list — cannot confirm implementation exists)
  • database.using_filters.ilike (no symbols list — cannot confirm implementation exists)
  • database.using_filters.ilike_all (no symbols list — cannot confirm implementation exists)
  • database.using_filters.ilike_any (no symbols list — cannot confirm implementation exists)
  • database.using_filters.in (no symbols list — cannot confirm implementation exists)
  • database.using_filters.is (no symbols list — cannot confirm implementation exists)
  • database.using_filters.is_distinct (no symbols list — cannot confirm implementation exists)
  • database.using_filters.like (no symbols list — cannot confirm implementation exists)
  • database.using_filters.like_all (no symbols list — cannot confirm implementation exists)
  • database.using_filters.like_any (no symbols list — cannot confirm implementation exists)
  • database.using_filters.lt (no symbols list — cannot confirm implementation exists)
  • database.using_filters.lte (no symbols list — cannot confirm implementation exists)
  • database.using_filters.match (no symbols list — cannot confirm implementation exists)
  • database.using_filters.neq (no symbols list — cannot confirm implementation exists)
  • database.using_filters.not (no symbols list — cannot confirm implementation exists)
  • database.using_filters.not_in (no symbols list — cannot confirm implementation exists)
  • database.using_filters.or (no symbols list — cannot confirm implementation exists)
  • database.using_filters.overlaps (no symbols list — cannot confirm implementation exists)
  • database.using_filters.range_adjacent (no symbols list — cannot confirm implementation exists)
  • database.using_filters.range_gt (no symbols list — cannot confirm implementation exists)
  • database.using_filters.range_gte (no symbols list — cannot confirm implementation exists)
  • database.using_filters.range_lt (no symbols list — cannot confirm implementation exists)
  • database.using_filters.range_lte (no symbols list — cannot confirm implementation exists)
  • database.using_filters.raw (no symbols list — cannot confirm implementation exists)
  • database.using_filters.regex (no symbols list — cannot confirm implementation exists)
  • database.using_filters.regex_icase (no symbols list — cannot confirm implementation exists)
  • database.using_filters.text_search (no symbols list — cannot confirm implementation exists)
  • database.using_modifiers.dry_run (no symbols list — cannot confirm implementation exists)
  • database.using_modifiers.explain (no symbols list — cannot confirm implementation exists)
  • database.using_modifiers.format_csv (no symbols list — cannot confirm implementation exists)
  • database.using_modifiers.format_geojson (no symbols list — cannot confirm implementation exists)
  • database.using_modifiers.limit (no symbols list — cannot confirm implementation exists)
  • database.using_modifiers.max_affected_rows (no symbols list — cannot confirm implementation exists)
  • database.using_modifiers.maybe_single_row (no symbols list — cannot confirm implementation exists)
  • database.using_modifiers.order (no symbols list — cannot confirm implementation exists)
  • database.using_modifiers.range (no symbols list — cannot confirm implementation exists)
  • database.using_modifiers.single_row (no symbols list — cannot confirm implementation exists)
  • storage.file_buckets.access_bucket (no symbols list — cannot confirm implementation exists)
  • storage.file_buckets.copy (no symbols list — cannot confirm implementation exists)
  • storage.file_buckets.create_file_bucket (no symbols list — cannot confirm implementation exists)
  • storage.file_buckets.create_signed_upload_url (no symbols list — cannot confirm implementation exists)
  • storage.file_buckets.create_signed_url (no symbols list — cannot confirm implementation exists)
  • storage.file_buckets.create_signed_urls (no symbols list — cannot confirm implementation exists)
  • storage.file_buckets.delete_file_bucket (no symbols list — cannot confirm implementation exists)
  • storage.file_buckets.download (no symbols list — cannot confirm implementation exists)
  • storage.file_buckets.empty_bucket (no symbols list — cannot confirm implementation exists)
  • storage.file_buckets.file_exists (no symbols list — cannot confirm implementation exists)
  • storage.file_buckets.file_info (no symbols list — cannot confirm implementation exists)
  • storage.file_buckets.get_bucket (no symbols list — cannot confirm implementation exists)
  • storage.file_buckets.get_public_url (no symbols list — cannot confirm implementation exists)
  • storage.file_buckets.list_file_buckets (no symbols list — cannot confirm implementation exists)
  • storage.file_buckets.list_files (no symbols list — cannot confirm implementation exists)
  • storage.file_buckets.list_files_paginated (no symbols list — cannot confirm implementation exists)
  • storage.file_buckets.move (no symbols list — cannot confirm implementation exists)
  • storage.file_buckets.remove (no symbols list — cannot confirm implementation exists)
  • storage.file_buckets.update_bucket (no symbols list — cannot confirm implementation exists)
  • storage.file_buckets.update_file (no symbols list — cannot confirm implementation exists)
  • storage.file_buckets.upload (no symbols list — cannot confirm implementation exists)
  • storage.file_buckets.upload_with_signed_url (no symbols list — cannot confirm implementation exists)
  • storage.vector_buckets.access_vector_index (no symbols list — cannot confirm implementation exists)
  • storage.vector_buckets.create_index (no symbols list — cannot confirm implementation exists)
  • storage.vector_buckets.delete_index (no symbols list — cannot confirm implementation exists)
  • storage.vector_buckets.delete_vectors (no symbols list — cannot confirm implementation exists)
  • storage.vector_buckets.get_index (no symbols list — cannot confirm implementation exists)
  • storage.vector_buckets.get_vectors (no symbols list — cannot confirm implementation exists)
  • storage.vector_buckets.list_indexes (no symbols list — cannot confirm implementation exists)
  • storage.vector_buckets.list_vectors (no symbols list — cannot confirm implementation exists)
  • storage.vector_buckets.put_vectors (no symbols list — cannot confirm implementation exists)
  • storage.vector_buckets.query_vectors (no symbols list — cannot confirm implementation exists)
  • realtime.channel.broadcast_http (no symbols list — cannot confirm implementation exists)
  • realtime.channel.send (no symbols list — cannot confirm implementation exists)
  • realtime.channel.subscribe (no symbols list — cannot confirm implementation exists)
  • realtime.channel.unsubscribe (no symbols list — cannot confirm implementation exists)
  • realtime.client.channel (no symbols list — cannot confirm implementation exists)
  • realtime.client.connect (no symbols list — cannot confirm implementation exists)
  • realtime.client.connection_state (no symbols list — cannot confirm implementation exists)
  • realtime.client.disconnect (no symbols list — cannot confirm implementation exists)
  • realtime.client.get_channels (no symbols list — cannot confirm implementation exists)
  • realtime.client.listen_heartbeats (no symbols list — cannot confirm implementation exists)
  • realtime.client.remove_all_channels (no symbols list — cannot confirm implementation exists)
  • realtime.client.remove_channel (no symbols list — cannot confirm implementation exists)
  • realtime.client.set_auth_token (no symbols list — cannot confirm implementation exists)
  • realtime.presence.presence_state (no symbols list — cannot confirm implementation exists)
  • realtime.presence.track (no symbols list — cannot confirm implementation exists)
  • realtime.presence.untrack (no symbols list — cannot confirm implementation exists)
  • realtime.subscriptions.broadcast (no symbols list — cannot confirm implementation exists)
  • realtime.subscriptions.subscribe_presence (no symbols list — cannot confirm implementation exists)
  • functions.invocation.invoke (no symbols list — cannot confirm implementation exists)
  • functions.invocation.set_auth_token (no symbols list — cannot confirm implementation exists)

These may have been renamed, removed, or never registered. Please update the capability matrix.
See: https://github.com/supabase/sdk/blob/main/docs/capability-matrix.md

@mandarini mandarini self-assigned this Jul 22, 2026
spydon
spydon previously approved these changes Jul 22, 2026
@coveralls

Copy link
Copy Markdown

Coverage Status

Coverage is 80.658%fix/override-sharp-version into master. No base build found for master.

@coveralls

coveralls commented Jul 22, 2026

Copy link
Copy Markdown

Coverage Status

Coverage is 80.658%fix/override-sharp-version into master. No base build found for master.

@mandarini
mandarini requested a review from spydon July 22, 2026 14:29
@mandarini
mandarini enabled auto-merge (squash) July 22, 2026 14:29
@mandarini
mandarini merged commit f99c989 into master Jul 22, 2026
36 checks passed
@mandarini
mandarini deleted the fix/override-sharp-version branch July 22, 2026 14:44
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.

3 participants