Skip to content

resolve open security advisories - #1953

Merged
efstajas merged 3 commits into
mainfrom
chore/security-advisories
Aug 17, 2026
Merged

resolve open security advisories#1953
efstajas merged 3 commits into
mainfrom
chore/security-advisories

Conversation

@efstajas

@efstajas efstajas commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Clears 124 of the 125 open dependabot alerts (none of which actually exposed any critical vulns). Mostly bumps and overrides, but two things needed real code changes.

jimp 0.22 β†’ 1.6 β€” v1 renamed most of the API (named exports, cover({w,h}), getBuffer(JimpMime.x), image.mime), so the five image routes needed updating. Worth doing rather than dismissing, since the file-type infinite-loop bug is reachable from /api/custom-avatars/upload, which takes user-supplied bytes.

dropped @pinata/sdk for a small $lib/utils/pinata.ts. The SDK is a webpack bundle with axios 0.21 inlined into its dist β€” it never requires the external copy, so an npm override does nothing and the vulnerable code genuinely ships. We only used two calls and both are plain REST. Request shape is identical to what the SDK sent.

Also removed the chromium pin in Dockerfile.dev while I was in there. 147 has been dropped from the debian repos entirely, so that line couldn't install at all anymore and any fresh dev/e2e image build would've failed on it. The 150 crash it guarded against is gone too β€” bookworm is on 150.0.7871.100 now, security on 151.

The rest is bumps: lodash, puppeteer 23β†’25, otel 0.208β†’0.221, faro 1.18β†’2.9, graphql-codegen 5β†’7, svelte-fast-marquee, plus overrides for adm-zip/crypto-es/esbuild/joi/undici and a @web3-onboard/core > svelte override that drops the nested EOL svelte 3 that was carrying 6 alerts on its own.

Verified: svelte-check is identical to main's baseline, unit tests pass, full build + telemetry build pass, and 58 blog images prerender at the right dimensions through the new jimp path. web3-onboard's client chunk keeps the same content-hash filename, so the svelte override provably changed nothing in the output. Also smoke-tested the new pinata client against a stubbed fetch, and puppeteer 25 against real chromium 151 on both arm64 and amd64.

One alert stays open: elliptic (GHSA-848j-6mx2-7j84, low). No patched version exists at any release, and every path into it is hardhat via eas-contracts or the rsksmart e2e mock β€” neither ends up in the build. Planning to dismiss that one as not-in-execution-path.

Worth a staging pass on the metadata write flows and avatar upload, since those are what hit the new pinata code.

Codegen v7 changed two things about its output: unmapped scalars default to
`unknown` instead of `any`, and nullable fields on operation types are now
required-but-nullable instead of optional.

The scalar default is configurable, so codegen.ts pins it back to `any`. The
optionality change isn't (in v6 `avoidOptionals` only covers input and variable
values), so the remaining call sites are fixed directly.

Two of those turned out to be a real bug: the linked identities card and the
splits component both hand-copy ORCID fields and never selected `owner`, but
orcid-tooltip renders it, so that row silently never showed up on either path.
@efstajas
efstajas merged commit 6ac32ec into main Aug 17, 2026
6 of 8 checks passed
@efstajas
efstajas deleted the chore/security-advisories branch August 17, 2026 19:03
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