Skip to content

Add slither job to Security Scan workflow; use latest Node LTS in CI - #462

Merged
OBrezhniev merged 4 commits into
masterfrom
ci/slither-scan
Oct 9, 2026
Merged

OBrezhniev merged 4 commits into
masterfrom
ci/slither-scan

Conversation

@OBrezhniev

@OBrezhniev OBrezhniev commented Sep 29, 2026 •

Copy link
Copy Markdown
Member

Summary

Adds a slither job to .github/workflows/security-ci.yml, alongside solhint and coverage.

  • Installs Node 24.12.0 + npm ci, then slither-analyzer==0.11.6 via pip.
  • Runs slither . --sarif results.sarif --fail-none using the repo's existing slither.config.json.
  • Uploads the SARIF to GitHub Code Scanning (category slither). Permissions: contents: read, security-events: write.

Why it doesn't fail on findings

Slither currently reports 54 High results on master (51 incorrect-return in the snarkjs-generated Groth16 verifiers, 2 arbitrary-send-eth in the payment _withdraw functions, 1 encode-packed-collision in VerifierLib). All of them have been triaged. Gating the job on them would make it red from the start. With SARIF upload, each false positive is dismissed once in Code Scanning and only new alerts need attention. Once that backlog is cleared, we can switch the job to fail on High findings (--fail-high).

Before merging

Code Scanning must be enabled for this repo (Settings → Code security). Otherwise the upload step fails.

Testing

Ran the same command locally on master: exit 0, valid SARIF 2.1.0 with 971 results. This PR's CI run is the first time the workflow runs on GitHub.

Node version

All workflows (Tests, Security Scan, npm publish) now use node-version: "lts/*" instead of pinning 24.12.0, so CI always runs on the latest Node LTS. Note: this includes the npm publish job, and it will move to the next LTS line automatically when one is released.

package-lock.json

The current LTS (Node 24.21 / npm 11.19) makes npm ci fail with Missing: bufferutil@4.1.0 from lock file. bufferutil is an optional peer dependency of ws. This PR adds only that lock entry: no other package versions change, and npm 11.6 (Node 24.12) still accepts the lock.

🤖 Generated with Claude Code

@github-advanced-security

Copy link
Copy Markdown

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

@OBrezhniev
OBrezhniev changed the base branch from master to ci/bump-actions September 29, 2026 16:44
Base automatically changed from ci/bump-actions to master September 30, 2026 11:14
Runs slither 0.11.6 with the repo slither.config.json and uploads the
results to GitHub Code Scanning as SARIF. The job does not fail on
findings: current High results are triaged false positives and are
meant to be dismissed in Code Scanning.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Replace pinned Node 24.12.0 / 24 with lts/* in all workflows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@OBrezhniev OBrezhniev changed the title Add slither job to Security Scan workflow Add slither job to Security Scan workflow; use latest Node LTS in CI Sep 30, 2026
OBrezhniev and others added 2 commits September 30, 2026 13:06
npm 11.19 (Node 24.21, current lts/*) makes `npm ci` fail with
"Missing: bufferutil@4.1.0 from lock file". bufferutil is an optional
peer dependency of ws. Add only its lock entry; no other package
versions change, and npm 11.6 (Node 24.12) still accepts the lock.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
npm audit: 47 (1 critical, 10 high, 19 moderate, 17 low) -> 22 low.

- npm audit fix for transitive packages (tar, adm-zip, brace-expansion,
  fast-uri, form-data, ip-address, js-yaml, esbuild, ...)
- overrides:
  - axios 1.16.1 -> 1.20.0 (kept as an exact pin)
  - ws ^8 -> ^8.21.0 (ethers, @ethersproject/providers)
  - ajv ^8 -> ^8.18.0
  - jayson -> ^5.0.0 (drops vulnerable uuid 8 and stream-json 1)
  - @0xpolygonid/js-sdk > uuid -> ^13.0.2
  - @digitalbazaar/http-client > undici -> ^6.28.1

Remaining 22 low findings are all GHSA-848j-6mx2-7j84 in elliptic
(<=6.6.1, no patched release), pulled in via @ethersproject/*.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@OBrezhniev
OBrezhniev requested a review from daveroga October 8, 2026 17:08
@OBrezhniev
OBrezhniev merged commit 0b9aa2c into master Oct 9, 2026
7 checks passed
@OBrezhniev
OBrezhniev deleted the ci/slither-scan branch October 9, 2026 21:35
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