chore: update tier 1 npm dependencies and fix vulnerabilities#1554
Conversation
Update all semver-compatible npm dependencies and fix HIGH/MODERATE severity vulnerabilities. Key security fixes: - express-rate-limit 8.2.1->8.3.1 (rate-limit bypass via IPv6) - multer 2.0.2->2.1.1 (3 DoS vulnerabilities) - sequelize 6.37.7->6.37.8 (SQL injection via JSON column cast) - tar override 7.5.7->7.5.13 (3 path traversal vulnerabilities) - dottie, flatted, socket.io-parser, picomatch (transitive fixes) Also updates: dotenv, mysql2, log-update, babel, commitlint, eslint (patch), globals, sinon, babel-plugin-module-resolver.
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
|
Warning Review the following alerts detected in dependencies. According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.
|
…ates Add .npmrc with legacy-peer-deps=true to prevent npm from incorrectly marking direct dependencies (express, joi, winston) with "peer: true" in the lockfile. This is a known npm bug triggered when packages serve as both direct deps and peer deps of other packages. Tier 2 updates: - Remove unused @eslint/eslintrc devDependency (not imported anywhere) - Bump actions/upload-artifact v6 -> v7 (tests.yaml, build.yaml) - Bump actions/download-artifact v7 -> v8 (build.yaml) Note: joi 17->18 upgrade deferred — express-joi-validation@6.1.0 requires joi@17 as a peer dependency with no compatible update available. Moved to tier 3 alongside express-joi-validation replacement.
The "peer: true" flags in the lockfile are expected npm behavior when direct dependencies also satisfy peer deps of other packages. Our CI does not use --omit=peer, so this is not a practical risk.
70b8576 to
88ca1c6
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
65743a8 to
83716a3
Compare
The testneta-node-msp.chia.net endpoint has multiple full_node instances behind the same IP. When a TCP connection drops and the wallet reconnects, it can land on a different node with a different peer_node_id. Since trusted_peers is keyed by node_id, the new connection is treated as untrusted, causing expensive weight proof verification and potential sync failures. Keep add-trusted-peer for connectivity (populates full_node_peers) and its initial node_id trust. Add trusted_cidrs with the resolved IP at /32 as a fallback so all node instances behind the same IP are trusted regardless of their cryptographic identities.
83716a3 to
5ede4b9
Compare

Summary
^rangenpm update,npm audit fix, and tar override updateSecurity Fixes
Non-Security Updates
dotenv, mysql2, log-update, @babel/preset-env, @commitlint/cli, @commitlint/config-conventional, @eslint/eslintrc, @eslint/js, eslint (patch), globals, sinon, babel-plugin-module-resolver
Remaining Vulnerabilities (Tier 2/3 — separate PRs)
The following require major version bumps and are out of scope for this PR:
Test Plan
npm run test:v1— 112 passingnpm run test:v2— 1364 passingDependabot PRs Superseded
This PR covers the changes from: #1503, #1508, #1509, #1518, #1522, #1524, #1528, #1530, #1540, #1545, #1552
Note
Medium Risk
Primarily dependency and CI workflow updates; moderate risk due to multiple runtime library bumps (e.g.,
multer,sequelize,express-rate-limit,tar) and changes to GitHub Actions artifact tooling that could affect builds/releases.Overview
Updates tier-1 npm dependencies and lockfile to newer compatible versions, including security-related bumps (notably
express-rate-limit,multer,sequelize) and ataroverride to address reported vulnerabilities.Refreshes CI workflows by upgrading
actions/upload-artifacttov7andactions/download-artifacttov8, and adjusts test Chia wallet config to addwallet.trusted_cidrswhile disabling connections to unknown peers.Written by Cursor Bugbot for commit 5ede4b9. This will update automatically on new commits. Configure here.