Skip to content

Security dependency refresh: npm audit 106 -> 57 (master) - #192

Merged
olsonanl merged 1 commit into
masterfrom
deps/security-refresh-master
Aug 17, 2026
Merged

Security dependency refresh: npm audit 106 -> 57 (master)#192
olsonanl merged 1 commit into
masterfrom
deps/security-refresh-master

Conversation

@olsonanl

Copy link
Copy Markdown
Contributor

Applies the same dependency refresh as #191 (which targets alpha) to master, so the two
lines don't diverge before the eventual alphamaster merge.

npm audit: 106 → 57 (critical 15→11, high 59→24) — identical numbers to the alpha run,
because master and alpha start from identical versions of all three bumped deps and share
the same usage sites. package.json diff is byte-identical to #191's.

What changed

Most of the win came from npm audit fix --package-lock-only (no manifest edits). Three
manifest entries moved:

dep from to why it's safe
ejs ^2.7.4 ^3.1.10 Major, but the 2→3 break is removal of old-style <% include x %>. master's views/ has zero includes; all 5 templates compile clean under 3.1.10 (verified against master's own copies).
nodemailer ^6.10.1 ^9.0.5 Major, but lib/mailer.js uses only createTransport (sendmail / SMTP / auth / tls) and callback-style sendMail. Clears a critical command-injection advisory.
nconf ^0.10.0 ^0.13.0 Major, but config.js is the sole consumer — one chained argv().env().file().defaults().

Deliberately not bumped

redis 2→4 (removes the callback API used in rpc/proteinFamily.js and
routes/dataRouter.js), forever/pm2 (ops tooling, imported by no app code),
request-promise/request (no fix exists; needs porting to axios), mocha 7→11
(dev-only). Each needs its own change with real testing.

Remaining 57

6 of the 11 criticals are nested copies inside the p3-user git dependency (being fixed
upstream now
); 11 are pm2/forever trees; 3 are vendored inside npm itself. Direct
axios is already latest (1.19.0) and clean.

Verification

  • app.js loads; config, lib/mailer, lib/indexRetry all require clean.
  • Installed tree confirmed at ejs 3.1.10 / nodemailer 9.0.5 / nconf 0.13.0.
  • All 5 views/*.ejs compile under ejs 3.1.10.
  • Note: master has no offline test suites — every suite under tests/ needs a live API
    and Solr, so there is no runnable regression gate here. The equivalent code on alpha is
    covered by Security dependency refresh + EBADENGINE cleanup: npm audit 106 -> 53 #191's 247-passing offline run, and the bumped deps and their usage sites are
    identical between the branches.

No CLAUDE.md change

master has no CLAUDE.md — it's alpha-only. The Dependency Security Maintenance section
(analysis, do-not-bump list, re-run procedure) is added in #191 and will arrive on master
via the normal alphamaster merge. Omitted here on purpose to avoid a conflict.

Stale dependabot PRs

#117, #118, #123, #124, #125, #126, #128, #129, #133 all target this branch, are all
CONFLICTING, and every package they name is already patched or superseded by this PR.
Recommend closing them once this merges.

🤖 Generated with Claude Code

Same refresh applied to alpha (branch deps/security-refresh). master and alpha
started from identical versions of all three bumped deps and share the same
usage sites, so the change is byte-identical in package.json.

Lockfile-only in-range updates (npm audit fix --package-lock-only) plus three
manifest bumps. No first-party code changes.

- ejs ^2.7.4 -> ^3.1.10   The 2->3 break is removal of old-style
                          "<% include x %>". views/ has zero includes; all 5
                          templates compile clean on 3.1.10.
- nodemailer ^6.10.1 -> ^9.0.5
                          lib/mailer.js uses only createTransport (sendmail,
                          SMTP, auth, tls) and callback-style sendMail. All
                          verified on 9.0.5. Clears a critical (command
                          injection < 6.4.16).
- nconf ^0.10.0 -> ^0.13.0
                          config.js is the sole consumer; verified the chained
                          argv().env().file().defaults() resolves identically.

Deliberately NOT bumped (breaking, need their own change): redis 2->4 removes
the callback API used in rpc/proteinFamily.js and routes/dataRouter.js;
forever/pm2 are ops tooling imported by no app code; request-promise has no
fix and needs porting to axios; mocha 7->11 is dev-only.

Most of the remaining 57 are unreachable from here: 6 criticals are nested
copies inside the p3-user git dep (being fixed upstream), 11 are pm2/forever
trees, 3 are vendored inside npm itself. Direct axios is already latest and
clean; its alert is @pm2/js-api's pinned 0.21.4.

The rationale, do-not-bump list, and re-run procedure are documented in
CLAUDE.md on the alpha branch; master has no CLAUDE.md, so that doc is
deliberately omitted here to avoid conflicting with the later alpha->master
merge.

The 9 open dependabot PRs (#117 #118 #123 #124 #125 #126 #128 #129 #133) are
obsolete: 2022-2023 vintage, all target master, all conflicting, every package
already patched or superseded here.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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