Skip to content

build(deps): fix 13 security advisories (tar, brace-expansion, js-yaml, hono, fast-uri, body-parser) - #465

Merged
RetricSu merged 1 commit into
developfrom
chore/security-deps-bump-20260723
Jul 23, 2026
Merged

build(deps): fix 13 security advisories (tar, brace-expansion, js-yaml, hono, fast-uri, body-parser)#465
RetricSu merged 1 commit into
developfrom
chore/security-deps-bump-20260723

Conversation

@humble-little-bear

Copy link
Copy Markdown
Collaborator

Summary

Security dependency bumps clearing 13 of the 15 advisories currently reported for pnpm-lock.yaml (8 open Dependabot alerts + additional ones found via pnpm audit). All changes are patch/minor-level, applied via the existing pnpm-workspace.yaml override pattern plus one direct-dependency floor bump.

Fixed

Package From → To Severity Advisory Dependabot alert
tar ^7.5.3 (7.5.16) → ^7.5.19 (7.5.21) Critical GHSA-23hp-3jrh-7fpw — Decompression/parse DoS via unlimited input #315
tar 7.5.16 → 7.5.21 High GHSA-8x88-c5mf-7j5w — Negative tar entry size causes infinite loop #314
tar 7.5.16 → 7.5.21 Moderate GHSA-w8wr-v893-vjvp — Process crash via PAX numeric path type confusion #316
tar 7.5.16 → 7.5.21 Moderate GHSA-gvwx-54wh-qm9j — Uncaught exception DoS via NUL byte in PAX records #313
brace-expansion 1.1.13 → 1.1.16 High GHSA-3jxr-9vmj-r5cp — Exponential-time expansion DoS #311
brace-expansion 5.0.6 → 5.0.7 High GHSA-3jxr-9vmj-r5cp — Exponential-time expansion DoS #310
js-yaml 4.2.0 → 4.3.0 High GHSA-52cp-r559-cp3m — YAML merge-key chains quadratic CPU #312
hono 4.12.25 → 4.12.27 Moderate (dev-only) GHSA-xgm2-5f3f-mvvc, GHSA-hvrm-45r6-mjfj, GHSA-w62v-xxxg-mg59 not yet opened
fast-uri 3.1.2 → 3.1.4 High (dev-only) GHSA-v2hh-gcrm-f6hx, GHSA-4c8g-83qw-93j6 — host confusion not yet opened
body-parser 2.2.2 → 2.3.0 Low (dev-only) GHSA-v422-hmwv-36x6 — invalid limit disables size enforcement auto-dismissed

minimumReleaseAgeExclude was extended for the freshly published versions, matching the existing convention.

Not auto-fixed

Package Advisory Reason
elliptic 6.6.1 GHSA-848j-6mx2-7j84 (Low, alert #169) No patched release published — 6.6.1 is the latest version on npm (the audit DB's >=6.6.2 fix version does not exist). Transitive via @ckb-ccc/core@joyid/ckb@nervosnetwork/ckb-sdk-utils. Needs an upstream fix.
@hono/node-server 1.19.13 GHSA-frvp-7c67-39w9 (Moderate) Fix exists only in ≥2.0.5 — a breaking major bump that violates @modelcontextprotocol/sdk@1.27.1's declared ^1.19.9 range, so forcing it via override could silently break the (dev-only, Windows-only) eslint --mcp static-serving path. Left for a deliberate upgrade.

Verification

  • pnpm install — lockfile regenerated cleanly
  • pnpm audit — 15 → 2 advisories remaining (the two listed above); 0 critical / 0 high left
  • pnpm build
  • pnpm test — 24/24 suites, 181 passed ✅
  • pnpm typecheck ✅ / pnpm lint ✅ (0 errors)

…-parser for security advisories

- tar ^7.5.3 -> ^7.5.19 (locked 7.5.21): fixes GHSA-23hp-3jrh-7fpw (critical),
  GHSA-8x88-c5mf-7j5w (high), GHSA-w8wr-v893-vjvp / GHSA-gvwx-54wh-qm9j (moderate)
- brace-expansion -> 1.1.16 / 5.0.7 via overrides: fixes GHSA-3jxr-9vmj-r5cp (high)
- js-yaml 4.x -> 4.3.0 via override: fixes GHSA-52cp-r559-cp3m (high)
- hono -> 4.12.27 via override: fixes GHSA-xgm2-5f3f-mvvc, GHSA-hvrm-45r6-mjfj,
  GHSA-w62v-xxxg-mg59 (moderate, dev-only)
- fast-uri -> 3.1.4 via override: fixes GHSA-v2hh-gcrm-f6hx, GHSA-4c8g-83qw-93j6
  (high, dev-only)
- body-parser 2.x -> 2.3.0 via override: fixes GHSA-v422-hmwv-36x6 (low, dev-only)

Not fixed: elliptic GHSA-848j-6mx2-7j84 (no patched release published) and
@hono/node-server GHSA-frvp-7c67-39w9 (fix requires breaking 1.x -> 2.x bump that
violates @modelcontextprotocol/sdk's ^1.19.9 range; dev-only, Windows-only).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Missing Changeset

Please add a changeset describing your changes:

pnpm changeset

If your changes do not need a version bump (docs, CI, refactoring),
add the skip-changeset label to this PR.

For dependency updates, use the dependencies label.

@coderabbitai

coderabbitai Bot commented Jul 23, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: f37c4018-0908-4454-88b4-1b44f2d18f71

📥 Commits

Reviewing files that changed from the base of the PR and between 1a362aa and ed05881.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (2)
  • package.json
  • pnpm-workspace.yaml

📝 Walkthrough

Summary by CodeRabbit

  • Bug Fixes
    • Applied security updates to improve protection against known vulnerabilities.
    • Updated package version safeguards to ensure supported, more secure components are used.
    • Refined release controls for improved consistency and reliability during installations and updates.

Walkthrough

Updates the tar dependency, expands workspace security overrides for several packages, and synchronizes minimum release age exclusions with the new pinned versions.

Changes

Dependency security updates

Layer / File(s) Summary
Dependency and override pins
package.json, pnpm-workspace.yaml
The direct tar dependency and workspace security overrides are updated to newer patched versions, including hono, brace-expansion, and js-yaml.
Release-age exclusion alignment
pnpm-workspace.yaml
Minimum release age exclusions are updated for the revised pins and additional packages including tar, hono, fast-uri, and body-parser.

Estimated code review effort: 2 (Simple) | ~10 minutes

Suggested labels: dependencies

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main dependency security fixes in the changeset.
Description check ✅ Passed The description matches the security dependency bumps and remaining advisory notes in the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 Checkov (3.3.8)
package.json

Traceback (most recent call last):
File "/usr/local/bin/checkov", line 2, in
from checkov.main import Checkov
ModuleNotFoundError: No module named 'checkov'

pnpm-workspace.yaml

Traceback (most recent call last):
File "/usr/local/bin/checkov", line 2, in
from checkov.main import Checkov
ModuleNotFoundError: No module named 'checkov'


Comment @coderabbitai help to get the list of available commands.

@humble-little-bear humble-little-bear added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Jul 23, 2026
@RetricSu
RetricSu merged commit b4816d4 into develop Jul 23, 2026
10 of 11 checks passed
@RetricSu
RetricSu deleted the chore/security-deps-bump-20260723 branch July 23, 2026 04:01
@coderabbitai coderabbitai Bot mentioned this pull request Jul 25, 2026
RetricSu added a commit that referenced this pull request Jul 26, 2026
* fix(status): enable Terminal RPC module and TCP streaming for devnet (#463) (#464)

* fix(status): enable Terminal RPC module and TCP streaming for devnet

ckb-tui panels were always empty on devnet because the bundled devnet
ckb.toml did not meet ckb-tui's two data requirements:

- the Terminal RPC module (provides get_overview system metrics), which
  upstream CKB now enables by default, was missing from rpc.modules, so
  the overview dashboards showed N/A
- rpc.tcp_listen_address was commented out and the status command never
  passed -t, so the mempool (new/rejected transactions) and logs
  dashboards had no subscription stream to read from

Enable both in the devnet config template and have the status command
read tcp_listen_address from the running node's ckb.toml and pass it to
ckb-tui via -t (wildcard binds are dialed as localhost). Testnet and
mainnet keep HTTP-only behavior since their proxied public RPCs expose
no TCP stream.



* chore: add patch changeset for status devnet fix

* fix(devnet): bind RPC to loopback instead of 0.0.0.0

Address CodeRabbit review on PR #463: with the Terminal module enabled,
binding the unauthenticated JSON-RPC to 0.0.0.0 exposes host system
metrics (and the rest of the RPC surface) to any host on the network.
Bind to 127.0.0.1 by default; all offckb-internal consumers (proxy,
ckb-tui, miner, forks) already talk to 127.0.0.1:8114. Users who need
remote access can edit rpc.listen_address via the config editor.

* fix(devnet): align embedded reference template with devnet ckb.toml

Add Terminal to rpc.modules and enable tcp_listen_address in the config
editor's embedded template so configurations based on it also provide the
metrics stream that offckb status needs.



---------

Co-authored-by: claude-bear <noreply@anthropic.com>

* build(deps): bump tar, brace-expansion, js-yaml, hono, fast-uri, body-parser for security advisories (#465)

- tar ^7.5.3 -> ^7.5.19 (locked 7.5.21): fixes GHSA-23hp-3jrh-7fpw (critical),
  GHSA-8x88-c5mf-7j5w (high), GHSA-w8wr-v893-vjvp / GHSA-gvwx-54wh-qm9j (moderate)
- brace-expansion -> 1.1.16 / 5.0.7 via overrides: fixes GHSA-3jxr-9vmj-r5cp (high)
- js-yaml 4.x -> 4.3.0 via override: fixes GHSA-52cp-r559-cp3m (high)
- hono -> 4.12.27 via override: fixes GHSA-xgm2-5f3f-mvvc, GHSA-hvrm-45r6-mjfj,
  GHSA-w62v-xxxg-mg59 (moderate, dev-only)
- fast-uri -> 3.1.4 via override: fixes GHSA-v2hh-gcrm-f6hx, GHSA-4c8g-83qw-93j6
  (high, dev-only)
- body-parser 2.x -> 2.3.0 via override: fixes GHSA-v422-hmwv-36x6 (low, dev-only)

Not fixed: elliptic GHSA-848j-6mx2-7j84 (no patched release published) and
@hono/node-server GHSA-frvp-7c67-39w9 (fix requires breaking 1.x -> 2.x bump that
violates @modelcontextprotocol/sdk's ^1.19.9 range; dev-only, Windows-only).

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* fix: rename mainnet-fork override flag and apply leftover 0.4.9 review fixes (#466)

* fix: rename mainnet-fork override flag and apply leftover 0.4.9 review fixes

- Rename --allow-mainnet-replay-risk to --allow-external-key-on-mainnet-fork (#460)
- Enforce the Mainnet-fork replay guard in transfer-all, udt issue/destroy,
  and deploy, threading the fork boundary into input selection (#462)
- Validate --tx-hash before it is used in debug cache paths
- Only read the fork boundary after the spawned process binds the RPC port
- Reject symlinked entries when copying fork source chain data
- Accept extended xUDT type args (owner hash + flags/extension)
- Per-kind UDT scan budgets, deep-cloned settings fallbacks, accurate
  config-set errors, preserved devnet-config error, execFile process lookup,
  aligned ckb-tui download timeouts, EXDEV-safe install, README TOC entry

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix: address PR #466 review comments

- Keep --allow-mainnet-replay-risk as a hidden deprecated alias folded into
  --allow-external-key-on-mainnet-fork (with a deprecation warning) so 0.4.9
  scripts keep working under a patch release
- Treat lsof probe failures with stderr output as indeterminate (null)
  instead of "not listening"; only an empty-stderr exit is a genuine
  no-match, so permission errors fall back to the weaker genesis signal
- Reject a symlinked data root before enumerating source chain data
- Stage cross-device ckb-tui installs inside binDir and publish with an
  atomic rename, so concurrent installs never see a truncated binary

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix: bound the lsof port probe with a timeout

A hung lsof would block execFileSync (and with it daemon startup)
indefinitely, and its empty-stderr timeout error would be misread as a
genuine no-match. Cap the probe at 5s and classify ETIMEDOUT as
indeterminate (null) so the genesis fallback proceeds.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* test: make lsof probe tests platform-independent

isProcessListeningOnPort short-circuits to null on win32, so the lsof
outcome-mapping tests failed on the Windows CI runner (mock never
called). Force a unix platform for the lsof-probing cases, cover the
win32 short-circuit explicitly, and pin the probe timeout to exactly
5000 ms per review feedback.

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* Merge pull request #468 from ckb-devrel/agent/claude-bear/6b0ed58e

fix(devnet): offer Terminal module in config editor and migrate legacy ckb.toml

* chore: version packages for 0.4.10 release (#469)

* fix: default devnet log filter to info,ckb-script=debug (#471)

A healthy devnet emits almost no warn-level logs, so with the previous
default filter (warn,ckb-script=debug) the `offckb status` Logs panel
stayed permanently empty and looked broken. Switch the devnet ckb.toml
and ckb-miner.toml templates (and the config editor's embedded reference
templates) to info,ckb-script=debug so the per-block log stream is
visible while script debug output is preserved.

Existing chains keep their current filter; edit [logger] filter in the
devnet ckb.toml to opt in.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* chore: add new change log (#472)

---------

Co-authored-by: humble-little-bear <retric@ckba.build>
Co-authored-by: claude-bear <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants