Skip to content

fix(deps): remove @umpirsky/country-list malware; harden provision-keep-client#3905

Open
piotr-roslaniec wants to merge 4 commits into
mainfrom
eng-630/security-fixes
Open

fix(deps): remove @umpirsky/country-list malware; harden provision-keep-client#3905
piotr-roslaniec wants to merge 4 commits into
mainfrom
eng-630/security-fixes

Conversation

@piotr-roslaniec
Copy link
Copy Markdown
Collaborator

@piotr-roslaniec piotr-roslaniec commented Mar 16, 2026

Summary

Two unique-value security fixes that main does not currently have:

  1. Removes @umpirsky/country-list malware from solidity-v1 by upgrading @celo/contractkit 1.0.1 → 10.0.3. Main still ships this package (7 references in solidity-v1/package-lock.json on main as of this PR).
  2. First-time security overrides for the provision-keep-client init container. Main has zero overrides on this file; this PR adds 34, covering elliptic, @babel/traverse, axios, async, ws, tar, body-parser, cookie, qs, send, path-to-regexp, serialize-javascript, etc.

Also adds defense-in-depth overrides to solidity-v1 beyond the two (http-cache-semantics, get-func-name) already on main from #61a58d777.

Context

  • solidity-v1/ is marked legacy and preserved-for-reference (per its README, updated 2026-05-06), but the malware path still resolves in its lockfile and the upgrade is the cleanest fix.
  • provision-keep-client is a Kubernetes init container last touched 2023-02 but presumably still deployed; it had no security override coverage at all.

Changes

File Change
solidity-v1/package.json @celo/contractkit 1.0.1 → 10.0.3; add 31 npm overrides; add eslint-plugin-no-only-tests (required for the lint pass); pin js-yaml to ^3.14.0 for eslint 6.x compat
solidity-v1/package-lock.json Regenerated; @umpirsky/country-list no longer resolved
provision-keep-client/package.json Add 34 npm overrides (no prior coverage)
provision-keep-client/package-lock.json Regenerated with overrides

Verification

Check Status
@umpirsky/country-list references in solidity-v1/package-lock.json 0 (was 7 on main)
elliptic 6.6.1
@babel/traverse 7.29.0
async 2.6.4
CI on rebased branch 14 SUCCESS / 15 SKIPPED / 0 FAILED

Notes

  • Remaining npm audit warnings come from legacy tooling (truffle, ganache, web3.js v1.x) where no upstream fix exists without a major modernization effort. Follow-up tracked separately.
  • The @celo/contractkit v1→v10 jump touches the alfajores deployment path in solidity-v1/truffle-config.js, which is not exercised in CI. The Celo testnet deployment is not part of regular workflows; flagging here so whoever next runs it knows to verify.

Closes: ENG-630

@linear
Copy link
Copy Markdown

linear Bot commented Mar 16, 2026

- Upgrade @celo/contractkit 1.0.1 → 10.0.3 (removes @umpirsky/country-list malware)
- Add npm overrides for elliptic >=6.5.7 (GHSA-vjh7-7g9h-fjfh)
- Add npm overrides for @babel/traverse >=7.23.2 (GHSA-8hfj-j24r-ancp)
- Add npm overrides for async >=2.6.4 (CVE-2021-43138)
- Add npm overrides for 30+ other vulnerable transitive dependencies
- Create .npmrc with audit-level=moderate
- Document all fixes in SECURITY-FIXES.md

Verified: elliptic 6.6.1, @babel/traverse 7.29.0, async 2.6.4 installed
Tests: 74 core tests passing, contracts compile successfully

Closes: ENG-630
- Add eslint-plugin-no-only-tests to devDependencies
- Change js-yaml override from ^4.1.0 to ^3.14.0 for eslint 6.x compatibility
- Update package-lock files

This achieves 0 critical/high vulnerabilities per npm audit.
@piotr-roslaniec piotr-roslaniec force-pushed the eng-630/security-fixes branch from ee302e3 to 6c8cd6b Compare May 23, 2026 13:05
The audit-level=moderate setting did not behave as the comment claimed
(it does not suppress critical/high) and the file referenced the
removed SECURITY-FIXES.md. Drop it entirely.
@piotr-roslaniec piotr-roslaniec force-pushed the eng-630/security-fixes branch from 6c8cd6b to 0219b74 Compare May 23, 2026 13:14
@piotr-roslaniec piotr-roslaniec changed the title fix(deps): remediate critical npm security vulnerabilities fix(deps): remove @umpirsky/country-list malware; harden provision-keep-client May 23, 2026
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