Skip to content

Upstream guardian contract#296

Open
zeljkoX wants to merge 37 commits into
mainfrom
upstream-guardian-contract
Open

Upstream guardian contract#296
zeljkoX wants to merge 37 commits into
mainfrom
upstream-guardian-contract

Conversation

@zeljkoX

@zeljkoX zeljkoX commented Jun 22, 2026

Copy link
Copy Markdown
Collaborator

Summary

Replaces Guardian's locally-drafted multisig + guardian MASM contracts with the audited upstream AuthGuardedMultisig component from miden-standards 0.15.3. Guardian no longer ships or compiles any custody MASM of its own (−~3,900 lines of MASM plus its builders and generated TS embeddings).

What changed

Layer Change
crates/contracts All local MASM + masm_builder.rs deleted. MultisigGuardianBuilder is now a thin facade over upstream AuthGuardedMultisigConfig / AuthGuardedMultisig; the crate keeps the MockChain behavior test suite.
Rust SDK (crates/miden-multisig-client) Tx scripts link StandardsLib / AuthGuardedMultisig::code(); procedure roots regenerated from the upstream component; guardian rotation ported to upstream stack-arg semantics.
TS SDK (packages/miden-multisig-client) Builds the auth component by compiling the vendored upstream component shell against the miden::standards::auth::* libraries embedded in @miden-sdk/miden-sdk 0.15.2; the 1,512-line generated local MASM module is gone.
Server Storage-slot names sourced from AuthGuardedMultisig::*_slot() accessors (cannot drift); guardian selector logic removed; replay-protection adjustment gated on the structural threshold_config slot.
Fixtures Regenerated for the upstream component's commitments.

Custody-semantics changes (deliberate, need sign-off)

  • No guardian enable/disable selector — the upstream component has no selector; a guarded multisig always carries a guardian key. guardian_enabled is removed from both SDK APIs.
  • Guardian rotation (update_guardian_public_key): requires only the multisig threshold signatures — no current-guardian co-signature — matching docs/CONCEPTS.md cold-key recovery. The old fork required guardian participation. See §4 of the security review.

Determinism & parity gates

Cross-SDK byte-equality (TS-built account == Rust-built account) is enforced by exact pins — Rust miden-standards = "=0.15.3", npm @miden-sdk/miden-sdk 0.15.2 (embeds standards 0.15.3) — and guarded by:

  • procedure_roots_match_upstream_component (Rust, pins hardcoded roots against the live library)
  • tests/procedure-roots.test.ts (TS roots vs the Rust procedure_roots example output)
  • tests/browser/determinism.spec.ts (Playwright: full account id + commitment byte-equality, storage layout, override-target procedure presence)
  • tests/masm.test.ts (vendored component shell in sync with its generated constant)

All of these now run in CI (contract-behavior and ts-sdk jobs added in this PR).

Version-pin policy (documented in docs/MULTISIG_SDK.md → "Contract version pinning", with an SDK ↔ contract support table): deployed accounts are immutable, so a pin bump that changes procedure roots is a breaking release that operates new accounts only until a contract-version registry (keyed by auth-procedure root) lands as a follow-up.

Runtime contract-version guard: both SDKs reject accounts built from a different contract version before any procedure-root-keyed storage read, instead of silently reporting wrong thresholds — Rust MultisigError::UnsupportedContractVersion (via MultisigAccount::procedure_threshold, with is_pinned_contract_version() exposed), TS an unsupported contract version error from AccountInspector.fromAccount. Negative-tested on both sides.

Migration

One-time, irreversible cutover documented in docs/PRODUCTION.md → "Upgrading to Miden 0.15": the first 0.15 deploy truncates pre-0.15 states/deltas/delta_proposals/account_metadata (v0→v1 account-ID derivation + new component make them non-deserializable); the admin_actions audit table is preserved. Existing accounts are recreated, not migrated.

Security review

docs/security/2026-06-15-upstream-guarded-multisig-security-review.md — direct review of the upstream MASM custody enforcement plus adversarial review of the Guardian-side wiring. No Critical/High findings; the cross-SDK determinism blocker it recorded is resolved (status note in the doc). Open item: external sign-off on the rotation-model change above.

Breaking API changes

  • TS: guardianEnabled removed from MultisigConfig / DetectedMultisigConfig; all PROCEDURE_ROOTS values changed; updateGuardian/updateSigners builders take the signature scheme.
  • Rust: MultisigGuardianConfig::with_guardian_enabled removed; ProcedureName::VerifyGuardian removed (guardian verification is internal to auth_tx_guarded_multisig); root constants changed.

Follow-ups (tracked, not in this PR)

  • Contract-version registry so one SDK can operate accounts from multiple contract versions (the runtime guard above is v0: detect + loud error; the registry generalizes its call sites).
  • Remove the miden-sdk-compat.mjs shims in examples/{web,smoke-web} once the Para adapter tree ships a 0.15-compatible release.
  • Next release from main must bump minor (0.16.0) — breaking changes above; the compat table already carries the 0.16.x row.

Decided: miden-confidential-contracts stays a separate slim crate — it is the shared account-construction layer between server tooling (e2e, loadgen, benchmarks) and the SDK; folding it into the SDK would drag guardian-client + miden-client into the server's test/bench dependency tree.

Summary by CodeRabbit

  • Breaking Changes

    • Multisig configuration no longer uses guardianEnabled; Guardian status is represented through the Guardian commitment.
    • Procedure roots and contract behavior now follow the updated Miden Standards implementation.
    • Accounts built with unsupported contract versions are rejected with a clear error.
  • Improvements

    • Signature-scheme metadata is handled consistently for signer updates and Guardian changes.
    • Added browser-based determinism checks to verify Rust and TypeScript account parity.
  • Documentation

    • Updated SDK and production upgrade guidance for the new contract version and migration requirements.

zeljkoX and others added 28 commits June 11, 2026 13:47
…291)

The wallet-embedded 0.15 SDK exposes Word.toFelts() but not toU64s() on
storage-read Words (a published-0.15 .d.ts/glue gap), which crashed
AccountInspector.fromAccount during MultisigClient.load with
'word.toU64s is not a function'. Prefer toU64s when present, else toFelts
(same element order, so indices are unchanged).
* feat(server): generate OpenAPI spec with utoipa (#241)

Integrate utoipa to auto-generate an OpenAPI 3.1 spec from the HTTP
handlers and wire models, so API docs stay in sync with the code.

- Annotate every HTTP handler (client, dashboard, and feature-gated
  EVM surfaces) with `#[utoipa::path]` and derive `ToSchema` /
  `IntoParams` on the request/response/query/model types.
- Add `openapi::openapi()` which assembles the document and merges the
  EVM routes only when the `evm` feature is compiled in.
- Serve the spec at `GET /api-docs/openapi.json` (unauthenticated,
  read-only) and add a `gen-openapi` binary to write it to a file.
- Commit the generated `docs/openapi.json` (built with `evm`) and
  document it in `docs/OPENAPI.md`.

36 operations / 82 schemas. Purely additive: no wire-shape changes, so
the Rust/TS clients need no updates.

* feat(server): address OpenAPI review — auth, errors, granular specs, CI drift

Addresses review feedback on #271:

- Document auth: add OpenAPI security schemes for the signed client
  headers (x-pubkey/x-signature/x-timestamp) and the operator/EVM session
  cookies, and apply `security(...)` per operation. Challenge/verify/pubkey
  stay public.
- Fill missing error responses: cross-cutting 429/413 injected into every
  operation via a Modify addon; dashboard 404/503 gaps (detail/snapshot),
  unpause 400, EVM 403 signer-authorization, lookup 400/500.
- Generate granular specs alongside the combined one: openapi-client.json,
  openapi-dashboard.json, openapi-evm.json (map to the TS client packages,
  scope SDK generation). gen-openapi now emits all four and gained a
  `--check` drift mode.
- CI: new "OpenAPI Spec Drift" job fails when committed specs are stale.
- Reduce duplication: replace the per-endpoint shape catalog in spec/api.md
  with an endpoint index + behavioral notes pointing at the OpenAPI specs
  as the source of truth (804 -> 479 lines).
- Contributor guidance: AGENTS.md contract-change workflow + server layer
  guidance now require updating utoipa annotations and regenerating specs.

* docs(server): fix configure handler doc to name the real auth headers

The doc comment (and the OpenAPI description generated from it) said
`X-Guardian-*`, but the headers parsed by `AuthHeader` are `x-pubkey`,
`x-signature`, and `x-timestamp`.

---------

(cherry picked from commit 61260a0)
* feat(server): add native Prometheus metrics endpoint

* feat(server): address PR review — RPC/pool/lifecycle metrics, bounded gRPC labels, label enums

* feat(server): instrument the metadata DB pool too, via a pool label

(cherry picked from commit 89e7f3a)
Keep the upstream guarded-multisig contract throughout; discard every
local-contract reintroduction the merge tried to bring back.

Conflict resolution policy:
- Removed reintroduced local contracts: crates/contracts/masm/**,
  packages/miden-multisig-client/masm/auth/*.masm and src/account/masm/auth.ts.
- Kept ours (upstream) for contract-identity/coupled files: multisig_guardian.rs,
  contracts auth tests, procedures.rs/ts (procedure roots), transaction/mod.rs,
  updateSigners.ts, network/miden/mod.rs (replay-protection), account_inspector.rs,
  docs/PRODUCTION.md (0.15 cutover section).
- Took the non-contract improvements: canonicalization orphan-on-discard fix,
  smoke-web vite config, and the auto-merged TS client utilities.
- Regenerated Cargo.lock.

Verified: cargo build --workspace clean; TS build clean; 303/304 TS tests pass.
The single failure (procedure-roots auth_tx) is pre-existing SDK drift on this
branch, unrelated to the merge.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The auth_tx procedure root was stale against the installed miden-sdk 0.15.0
compiled AuthGuardedMultisig component (the five custom/wallet roots already
matched). Recomputed via `cargo run --example procedure_roots -- --json` and
updated the canonical (typescript_hex) value in both the Rust and TS clients:

  auth_tx: 0xd7b760e2… -> 0x08f59357487cebf34c4557dd9fc32cecb82d9f7b3d3bba213a68a9729e463260

Verified: Rust procedure_roots_match_upstream_component passes; TS 304/304 pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 22, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: bf1e3e60-f78c-46a3-bedb-8a0d89cba7b7

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Walkthrough

The PR migrates guarded multisig accounts from custom OpenZeppelin MASM to Miden Standards, removes guardian selector state, updates Rust and TypeScript SDK transaction flows, adds contract-version pinning, refreshes server fixtures, and introduces browser-based cross-SDK determinism checks.

Changes

Guarded multisig contract migration

Layer / File(s) Summary
Standards-based account builder
crates/contracts/*, crates/shared/src/lib.rs, crates/contracts/tests/auth/*
Account construction now uses AuthGuardedMultisig and BasicWallet; guardian configuration is always present, signature schemes map to upstream auth schemes, and tests use Miden Standards storage and procedures.
Rust SDK contract identity
crates/miden-multisig-client/src/account.rs, src/procedures.rs, src/transaction/*
Storage slots and procedure roots are derived from upstream components, unsupported contract versions produce an explicit error, and transaction call sites match updated builder interfaces.
Server integration
crates/server/src/network/miden/*, crates/server/src/testing/*
Server inspection, delta application, replay protection, guardian validation, tests, and fixtures use the new standards-based storage layout.

TypeScript SDK migration

Layer / File(s) Summary
Guarded account component
packages/miden-multisig-client/src/account/*, packages/miden-multisig-client/masm/*
Scheme-specific MASM variants are replaced by one guarded-multisig component, guardian selector storage is removed, and account inspection exposes guardian commitments instead of enablement state.
Transaction builders
packages/miden-multisig-client/src/transaction/*
Signer, guardian, and procedure-threshold transactions call Miden Standards procedures; signer advice includes scheme IDs and guardian arguments are pushed directly by scripts.
Browser determinism gate
packages/miden-multisig-client/tests/browser/*, playwright.config.ts, package.json
Playwright and Vite harnesses build a deterministic browser account and compare IDs, commitments, storage, and procedure roots with Rust results.

Documentation and examples

Layer / File(s) Summary
API and operational documentation
docs/MULTISIG_SDK.md, docs/PRODUCTION.md
Documentation removes guardianEnabled, documents guardian commitments and contract-version pinning, and describes the Miden 0.15 migration.
Example compatibility updates
examples/*
Examples use the revised SDK packages, standards-based scripts, guardian commitments, and compatibility shims for NoteAttachmentKind.

Estimated code review effort: 5 (Critical) | ~120 minutes

Possibly related PRs

Suggested labels: enhancement

Suggested reviewers: mcarlomagno, haseebrabbani

Poem

A rabbit hops through guarded code,
Where standards light the winding road.
Old selectors fade from view,
New roots prove the paths are true.
Browser, Rust, and scripts align—
Fresh carrots for the pipeline! 🐇

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title is related to the PR’s main shift toward upstream guardian/guarded-multisig contracts, though it’s broader than the full changeset.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
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.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch upstream-guardian-contract

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

@github-actions

github-actions Bot commented Jun 26, 2026

Copy link
Copy Markdown

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@@ -12128,36 +12226,148 @@
}
},
"node_modules/axios": {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Medium severity vulnerability introduced by a package you're using:
Line 12228 lists a dependency (axios) with a known Medium severity vulnerability. Fixing requires upgrading or replacing the dependency.

ℹ️ Why this matters

Affected versions of axios are vulnerable to Improper Neutralization of CRLF Sequences in HTTP Headers ('HTTP Request/Response Splitting') / Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling') / Server-Side Request Forgery (SSRF). Axios can be used as a gadget for header injection: if another dependency enables prototype pollution, polluted properties can be merged into Axios request headers and written without CRLF sanitization, allowing request smuggling/SSRF that can reach internal services such as AWS IMDSv2 and potentially lead to credential theft or broader compromise.

References: GHSA, CVE

To resolve this comment:
Upgrade this dependency to at least version 1.15.0 at examples/smoke-web/package-lock.json.

💬 Ignore this finding

To ignore this, reply with:

  • /fp <comment> for false positive
  • /ar <comment> for acceptable risk
  • /other <comment> for all other reasons

You can view more details on this finding in the Semgrep AppSec Platform here.

@@ -14174,38 +14871,169 @@
}
},
"node_modules/axios": {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Medium severity vulnerability introduced by a package you're using:
Line 14873 lists a dependency (axios) with a known Medium severity vulnerability. Fixing requires upgrading or replacing the dependency.

ℹ️ Why this matters

Affected versions of axios are vulnerable to Improper Neutralization of CRLF Sequences in HTTP Headers ('HTTP Request/Response Splitting') / Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling') / Server-Side Request Forgery (SSRF). Axios can be used as a gadget for header injection: if another dependency enables prototype pollution, polluted properties can be merged into Axios request headers and written without CRLF sanitization, allowing request smuggling/SSRF that can reach internal services such as AWS IMDSv2 and potentially lead to credential theft or broader compromise.

References: GHSA, CVE

To resolve this comment:
Upgrade this dependency to at least version 1.15.0 at examples/web/package-lock.json.

💬 Ignore this finding

To ignore this, reply with:

  • /fp <comment> for false positive
  • /ar <comment> for acceptable risk
  • /other <comment> for all other reasons

You can view more details on this finding in the Semgrep AppSec Platform here.

@@ -12128,36 +12226,148 @@
}
},
"node_modules/axios": {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Medium severity vulnerability may affect your project—review required:
Line 12228 lists a dependency (axios) with a known Medium severity vulnerability.

ℹ️ Why this matters

Affected versions of axios are vulnerable to Server-Side Request Forgery (SSRF) / Unintended Proxy or Intermediary ('Confused Deputy'). Axios does not normalize hostnames before applying NO_PROXY, so requests to loopback or internal hosts such as localhost. or [::1] can be sent through a configured proxy instead of bypassing it. If an attacker can influence request URLs, they may force local/internal Axios traffic through an attacker-controlled proxy, undermining SSRF protections and exposing sensitive responses.

References: GHSA, CVE

To resolve this comment:
Check if you have NO_PROXY configured in your environment.

💬 Ignore this finding

To ignore this, reply with:

  • /fp <comment> for false positive
  • /ar <comment> for acceptable risk
  • /other <comment> for all other reasons

You can view more details on this finding in the Semgrep AppSec Platform here.

@@ -14174,38 +14871,169 @@
}
},
"node_modules/axios": {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Medium severity vulnerability may affect your project—review required:
Line 14873 lists a dependency (axios) with a known Medium severity vulnerability.

ℹ️ Why this matters

Affected versions of axios are vulnerable to Server-Side Request Forgery (SSRF) / Unintended Proxy or Intermediary ('Confused Deputy'). Axios does not normalize hostnames before applying NO_PROXY, so requests to loopback or internal hosts such as localhost. or [::1] can be sent through a configured proxy instead of bypassing it. If an attacker can influence request URLs, they may force local/internal Axios traffic through an attacker-controlled proxy, undermining SSRF protections and exposing sensitive responses.

References: GHSA, CVE

To resolve this comment:
Check if you have NO_PROXY configured in your environment.

  • If you're affected, upgrade this dependency to at least version 1.15.0 at examples/web/package-lock.json.
  • If you're not affected, comment /fp we don't use this [condition]
💬 Ignore this finding

To ignore this, reply with:

  • /fp <comment> for false positive
  • /ar <comment> for acceptable risk
  • /other <comment> for all other reasons

You can view more details on this finding in the Semgrep AppSec Platform here.

@@ -12128,36 +12226,148 @@
}
},
"node_modules/axios": {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

High severity vulnerability may affect your project—review required:
Line 12228 lists a dependency (axios) with a known High severity vulnerability.

ℹ️ Why this matters

Affected versions of axios are vulnerable to Inefficient Regular Expression Complexity / Uncontrolled Resource Consumption. axios is vulnerable to a regular expression denial of service (ReDoS). The internal cookies.read() helper in lib/helpers/cookies.js builds a regular expression by concatenating the cookie name directly into the pattern without escaping regex metacharacters. When the cookie name flowing into the XSRF cookie read (e.g. via xsrfCookieName) contains a catastrophic-backtracking payload, evaluating the regex against document.cookie can freeze the JavaScript event loop, causing a denial of service in the browser tab or in Node.js/SSR applications. The affected code path is reached during ordinary axios request processing, so any importer of an affected version is exposed. Upgrade to a patched version (0.32.0 or 1.16.0), or set xsrfCookieName: null to disable XSRF cookie reading.

References: GHSA

To resolve this comment:
Check if you are using axios in browser with untrusted xsrfCookieName value.

💬 Ignore this finding

To ignore this, reply with:

  • /fp <comment> for false positive
  • /ar <comment> for acceptable risk
  • /other <comment> for all other reasons

You can view more details on this finding in the Semgrep AppSec Platform here.

@@ -14174,38 +14871,169 @@
}
},
"node_modules/axios": {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

High severity vulnerability may affect your project—review required:
Line 14873 lists a dependency (axios) with a known High severity vulnerability.

ℹ️ Why this matters

Affected versions of axios are vulnerable to Inefficient Regular Expression Complexity / Uncontrolled Resource Consumption. axios is vulnerable to a regular expression denial of service (ReDoS). The internal cookies.read() helper in lib/helpers/cookies.js builds a regular expression by concatenating the cookie name directly into the pattern without escaping regex metacharacters. When the cookie name flowing into the XSRF cookie read (e.g. via xsrfCookieName) contains a catastrophic-backtracking payload, evaluating the regex against document.cookie can freeze the JavaScript event loop, causing a denial of service in the browser tab or in Node.js/SSR applications. The affected code path is reached during ordinary axios request processing, so any importer of an affected version is exposed. Upgrade to a patched version (0.32.0 or 1.16.0), or set xsrfCookieName: null to disable XSRF cookie reading.

References: GHSA

To resolve this comment:
Check if you are using axios in browser with untrusted xsrfCookieName value.

  • If you're affected, upgrade this dependency to at least version 1.16.0 at examples/web/package-lock.json.
  • If you're not affected, comment /fp we don't use this [condition]
💬 Ignore this finding

To ignore this, reply with:

  • /fp <comment> for false positive
  • /ar <comment> for acceptable risk
  • /other <comment> for all other reasons

You can view more details on this finding in the Semgrep AppSec Platform here.

@@ -12128,36 +12226,148 @@
}
},
"node_modules/axios": {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

High severity vulnerability may affect your project—review required:
Line 12228 lists a dependency (axios) with a known High severity vulnerability.

ℹ️ Why this matters

Affected versions of axios are vulnerable to Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution') / Unintended Proxy or Intermediary ('Confused Deputy'). axios reads config.proxy via prototype-chain property access, so any Object.prototype pollution elsewhere in the dependency tree silently routes all HTTP requests through an attacker-controlled proxy, yielding a full man-in-the-middle. The vulnerability fires on ordinary axios usage with no specific API call or configuration required; upgrade to axios 1.16.0 or later.

References: GHSA, GHSA, CVE

To resolve this comment:
Check if you use axios to make HTTP requests.

💬 Ignore this finding

To ignore this, reply with:

  • /fp <comment> for false positive
  • /ar <comment> for acceptable risk
  • /other <comment> for all other reasons

You can view more details on this finding in the Semgrep AppSec Platform here.

@@ -14174,38 +14871,169 @@
}
},
"node_modules/axios": {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

High severity vulnerability may affect your project—review required:
Line 14873 lists a dependency (axios) with a known High severity vulnerability.

ℹ️ Why this matters

Affected versions of axios are vulnerable to Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution') / Unintended Proxy or Intermediary ('Confused Deputy'). axios reads config.proxy via prototype-chain property access, so any Object.prototype pollution elsewhere in the dependency tree silently routes all HTTP requests through an attacker-controlled proxy, yielding a full man-in-the-middle. The vulnerability fires on ordinary axios usage with no specific API call or configuration required; upgrade to axios 1.16.0 or later.

References: GHSA, GHSA, CVE

To resolve this comment:
Check if you use axios to make HTTP requests.

  • If you're affected, upgrade this dependency to at least version 1.16.0 at examples/web/package-lock.json.
  • If you're not affected, comment /fp we don't use this [condition]
💬 Ignore this finding

To ignore this, reply with:

  • /fp <comment> for false positive
  • /ar <comment> for acceptable risk
  • /other <comment> for all other reasons

You can view more details on this finding in the Semgrep AppSec Platform here.

@codecov-commenter

codecov-commenter commented Jul 13, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 68.42105% with 54 lines in your changes missing coverage. Please review.
✅ Project coverage is 77.63%. Comparing base (8222510) to head (d08bca4).
⚠️ Report is 2 commits behind head on main.

❌ Your patch status has failed because the patch coverage (68.42%) is below the target coverage (90.00%). You can increase the patch coverage or adjust the target coverage.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #296      +/-   ##
==========================================
+ Coverage   77.56%   77.63%   +0.06%     
==========================================
  Files         162      162              
  Lines       29603    29528      -75     
==========================================
- Hits        22963    22923      -40     
+ Misses       6640     6605      -35     

Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8222510...d08bca4. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@boostsecurity-io boostsecurity-io Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀 2 New Security Fixes

You just committed 2 security fixes. 😎 Keep up the great work!

🎯 Take a look at what findings you fixed.
Findings
Dependency: npm / protobufjs@ 6.11.6

SUMMARY

Direct Dependency: protobufjs
Location : package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-41242 Critical 9.8 0.74% 7.5.5
no no Arbitrary code execution in protobufjs
CVE-2026-44288 Warning 5.3 0.30% 7.5.6
no no protobufjs has overlong UTF-8 decoding
CVE-2026-44289 Critical 7.5 0.58% 7.5.6
no no protobuf.js: Denial of service through unbounded protobuf recursion
CVE-2026-44290 Critical 7.5 0.37% 7.5.6
no no protobuf.js: Process-wide denial of service through unsafe option paths
CVE-2026-44291 Critical 8.1 0.50% 7.5.6
no no protobuf.js: Code generation gadget after prototype pollution
CVE-2026-44292 Warning 5.3 0.26% 7.5.6
no no protobuf.js: Prototype injection in generated message constructors
CVE-2026-44293 Critical 8.8 0.39% 7.5.6
no no protobuf.js: Code injection through bytes field defaults in generated toObject code
CVE-2026-44294 Warning 5.3 0.43% 7.5.6
no no protobuf.js: Denial of service from crafted field names in generated code
CVE-2026-45740 Warning 5.3 0.26% 7.5.8
no no protobufjs: Denial of Service via unbounded recursive JSON descriptor expansion
CVE-2026-48712 Critical 7.5 0.32% 7.6.1
no no protobufjs: Denial of service through unbounded Any expansion during JSON conversion
CVE-2026-54269 Warning 5.3 0.24% 7.6.3
no no protobufjs : Schema-derived names can shadow runtime-significant properties
Remediation :
  • Please consider upgrading protobufjs to version 7.6.3 or higher to try to resolve this issue.
Dependency: npm / ws@ 8.20.1

SUMMARY

Direct Dependency: ws
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-48779 Critical 7.5 0.78% 8.21.0
no no ws: Memory exhaustion DoS from tiny fragments and data chunks
Remediation :
  • Please consider upgrading ws to version 8.21.0 or higher to try to resolve this issue.

⚠️  27 New Security Findings

The latest commit contains 27 new security findings.

Findings
Dependency: npm / axios@ 1.13.6

SUMMARY

Direct Dependency: axios
Location : package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2025-62718 Warning 4.8 1.16% 1.15.0
no no Axios has a NO_PROXY Hostname Normalization Bypass that Leads to SSRF
CVE-2026-40175 Warning 4.8 1.81% 1.15.0
no no Axios has Unrestricted Cloud Metadata Exfiltration via Header Injection Chain
CVE-2026-42033 Critical 7.4 0.81% 1.15.1
no no Axios: Prototype Pollution Gadgets - Response Tampering, Data Exfiltration, and Request Hijacking
CVE-2026-42034 Warning 5.3 0.33% 1.15.1
no no Axios' HTTP adapter-streamed uploads bypass maxBodyLength when maxRedirects: 0
CVE-2026-42035 Critical 7.4 0.39% 1.15.1
no no Axios: Header Injection via Prototype Pollution
CVE-2026-42036 Warning 5.3 0.42% 1.15.1
no no Axios: HTTP adapter streamed responses bypass maxContentLength
CVE-2026-42037 Warning 5.3 0.24% 1.15.1
no no Axios: CRLF Injection in multipart/form-data body via unsanitized blob.type in formDataToStream
CVE-2026-42038 Warning 6.8 0.30% 1.15.1
no no Axios: no_proxy bypass via IP alias allows SSRF
CVE-2026-42039 Warning 7.5 0.72% 1.15.1
no no Axios: unbounded recursion in toFormData causes DoS via deeply nested request data
CVE-2026-42040 Minor 3.7 0.22% 1.15.1
no no Axios: Null Byte Injection via Reverse-Encoding in AxiosURLSearchParams
CVE-2026-42041 Warning 4.8 0.61% 1.15.1
no no Axios: Authentication Bypass via Prototype Pollution Gadget in validateStatus Merge Strategy
CVE-2026-42042 Warning 5.4 0.23% 1.15.1
no no Axios: XSRF Token Cross-Origin Leakage via Prototype Pollution Gadget in withXSRFToken Boolean Coercion
CVE-2026-42043 Critical 7.2 0.66% 1.15.1
no no Axios: Incomplete Fix for CVE-2025-62718 — NO_PROXY Protection Bypassed via RFC 1122 Loopback Subnet (127.0.0.0/8) in Axios 1.15.0
CVE-2026-42044 Warning 6.5 0.59% 1.15.2
no no Axios: Invisible JSON Response Tampering via Prototype Pollution Gadget in parseReviver
CVE-2026-42264 Critical 7.4 0.71% 1.15.2
no no Axios has prototype pollution read-side gadgets in HTTP adapter that allow credential injection and request hijacking
CVE-2026-44486 Critical 7.5 0.53% 1.16.0
no no Axios: Proxy-Authorization header leaks to redirect target when proxy is re-evaluated to direct connection
CVE-2026-44487 Critical 7.5 0.66% 1.16.0
no no Axios: Proxy-Authorization Credential Leak to Origin Server Across HTTP-to-HTTPS Redirect in Axios Node.js HTTP Adapter
CVE-2026-44488 Critical 7.5 0.63% 1.16.0
no no Allocation of Resources Without Limits or Throttling in Axios
CVE-2026-44490 Warning 4.8 0.29% 1.16.0
no no axios has DoS & Header Injection via Prototype Pollution Read-Side Gadgets in axios merge functions
CVE-2026-44494 Critical 8.7 1.04% 1.16.0
no no axios Vulnerable to Full Man-in-the-Middle via Prototype Pollution Gadget in config.proxy
CVE-2026-44495 Critical 7.0 0.50% 1.15.2
no no axios Vulnerable to Credential Theft and Response Hijacking via Prototype Pollution Gadget in Config Merge
CVE-2026-44496 Critical 7.5 0.62% 1.16.0
no no Axios: Regular Expression Denial of Service (ReDoS) via Cookie Name Injection
Remediation :
  • Please consider upgrading axios to version 1.16.0 or higher to try to resolve this issue.
Dependency: npm / axios@ 1.13.6

SUMMARY

Direct Dependency: axios
Location : package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2025-62718 Warning 4.8 1.16% 1.15.0
no no Axios has a NO_PROXY Hostname Normalization Bypass that Leads to SSRF
CVE-2026-40175 Warning 4.8 1.81% 1.15.0
no no Axios has Unrestricted Cloud Metadata Exfiltration via Header Injection Chain
CVE-2026-42033 Critical 7.4 0.81% 1.15.1
no no Axios: Prototype Pollution Gadgets - Response Tampering, Data Exfiltration, and Request Hijacking
CVE-2026-42034 Warning 5.3 0.33% 1.15.1
no no Axios' HTTP adapter-streamed uploads bypass maxBodyLength when maxRedirects: 0
CVE-2026-42035 Critical 7.4 0.39% 1.15.1
no no Axios: Header Injection via Prototype Pollution
CVE-2026-42036 Warning 5.3 0.42% 1.15.1
no no Axios: HTTP adapter streamed responses bypass maxContentLength
CVE-2026-42037 Warning 5.3 0.24% 1.15.1
no no Axios: CRLF Injection in multipart/form-data body via unsanitized blob.type in formDataToStream
CVE-2026-42038 Warning 6.8 0.30% 1.15.1
no no Axios: no_proxy bypass via IP alias allows SSRF
CVE-2026-42039 Warning 7.5 0.72% 1.15.1
no no Axios: unbounded recursion in toFormData causes DoS via deeply nested request data
CVE-2026-42040 Minor 3.7 0.22% 1.15.1
no no Axios: Null Byte Injection via Reverse-Encoding in AxiosURLSearchParams
CVE-2026-42041 Warning 4.8 0.61% 1.15.1
no no Axios: Authentication Bypass via Prototype Pollution Gadget in validateStatus Merge Strategy
CVE-2026-42042 Warning 5.4 0.23% 1.15.1
no no Axios: XSRF Token Cross-Origin Leakage via Prototype Pollution Gadget in withXSRFToken Boolean Coercion
CVE-2026-42043 Critical 7.2 0.66% 1.15.1
no no Axios: Incomplete Fix for CVE-2025-62718 — NO_PROXY Protection Bypassed via RFC 1122 Loopback Subnet (127.0.0.0/8) in Axios 1.15.0
CVE-2026-42044 Warning 6.5 0.59% 1.15.2
no no Axios: Invisible JSON Response Tampering via Prototype Pollution Gadget in parseReviver
CVE-2026-42264 Critical 7.4 0.71% 1.15.2
no no Axios has prototype pollution read-side gadgets in HTTP adapter that allow credential injection and request hijacking
CVE-2026-44486 Critical 7.5 0.53% 1.16.0
no no Axios: Proxy-Authorization header leaks to redirect target when proxy is re-evaluated to direct connection
CVE-2026-44487 Critical 7.5 0.66% 1.16.0
no no Axios: Proxy-Authorization Credential Leak to Origin Server Across HTTP-to-HTTPS Redirect in Axios Node.js HTTP Adapter
CVE-2026-44488 Critical 7.5 0.63% 1.16.0
no no Allocation of Resources Without Limits or Throttling in Axios
CVE-2026-44490 Warning 4.8 0.29% 1.16.0
no no axios has DoS & Header Injection via Prototype Pollution Read-Side Gadgets in axios merge functions
CVE-2026-44494 Critical 8.7 1.04% 1.16.0
no no axios Vulnerable to Full Man-in-the-Middle via Prototype Pollution Gadget in config.proxy
CVE-2026-44495 Critical 7.0 0.50% 1.15.2
no no axios Vulnerable to Credential Theft and Response Hijacking via Prototype Pollution Gadget in Config Merge
CVE-2026-44496 Critical 7.5 0.62% 1.16.0
no no Axios: Regular Expression Denial of Service (ReDoS) via Cookie Name Injection
Remediation :
  • Please consider upgrading axios to version 1.16.0 or higher to try to resolve this issue.
Dependency: npm / brace-expansion@ 1.1.12

SUMMARY

Direct Dependency: brace-expansion
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-33750 Warning 6.5 0.43% 1.1.13
no no brace-expansion: Zero-step sequence causes process hang and memory exhaustion
Remediation :
  • Please consider upgrading brace-expansion to version 1.1.13 or higher to try to resolve this issue.
Dependency: npm / brace-expansion@ 1.1.12

SUMMARY

Direct Dependency: brace-expansion
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-33750 Warning 6.5 0.43% 1.1.13
no no brace-expansion: Zero-step sequence causes process hang and memory exhaustion
Remediation :
  • Please consider upgrading brace-expansion to version 1.1.13 or higher to try to resolve this issue.
Dependency: npm / follow-redirects@ 1.15.11

SUMMARY

Direct Dependency: follow-redirects
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-40895 Warning -1.0 0.49% 1.16.0
no no follow-redirects leaks Custom Authentication Headers to Cross-Domain Redirect Targets
Remediation :
  • Please consider upgrading follow-redirects to version 1.16.0 or higher to try to resolve this issue.
Dependency: npm / follow-redirects@ 1.15.11

SUMMARY

Direct Dependency: follow-redirects
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-40895 Warning -1.0 0.49% 1.16.0
no no follow-redirects leaks Custom Authentication Headers to Cross-Domain Redirect Targets
Remediation :
  • Please consider upgrading follow-redirects to version 1.16.0 or higher to try to resolve this issue.
Dependency: npm / form-data@ 2.5.5

SUMMARY

Direct Dependency: form-data
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-12143 Critical 7.5 0.41% 2.5.6
no no form-data: CRLF injection in form-data via unescaped multipart field names and filenames
Remediation :
  • Please consider upgrading form-data to version 2.5.6 or higher to try to resolve this issue.
Dependency: npm / form-data@ 2.5.5

SUMMARY

Direct Dependency: form-data
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-12143 Critical 7.5 0.41% 2.5.6
no no form-data: CRLF injection in form-data via unescaped multipart field names and filenames
Remediation :
  • Please consider upgrading form-data to version 2.5.6 or higher to try to resolve this issue.
Dependency: npm / hono@ 4.12.8

SUMMARY

Direct Dependency: hono
Location : package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-39407 Warning 5.3 0.46% 4.12.12
no no Hono: Middleware bypass via repeated slashes in serveStatic
CVE-2026-39408 Warning 7.5 0.53% 4.12.12
no no Hono: Path traversal in toSSG() allows writing files outside the output directory
CVE-2026-39409 Warning 5.3 0.34% 4.12.12
no no Hono has incorrect IP matching in ipRestriction() for IPv4-mapped IPv6 addresses
CVE-2026-39410 Warning 4.8 0.28% 4.12.12
no no Hono: Non-breaking space prefix bypass in cookie name handling in getCookie()
CVE-2026-44455 Warning 4.7 0.14% 4.12.16
no no hono/jsx has Unvalidated JSX Tag Names that May Allow HTML Injection
CVE-2026-44456 Warning 6.5 0.22% 4.12.16
no no Hono: bodyLimit() can be bypassed for chunked / unknown-length requests
CVE-2026-44457 Warning 5.3 0.20% 4.12.18
no no Hono's Cache Middleware ignores Vary: Authorization / Vary: Cookie leading to cross-user cache leakage
CVE-2026-44458 Warning 4.3 0.20% 4.12.18
no no Hono has CSS Declaration Injection via Style Object Values in JSX SSR
CVE-2026-44459 Minor 3.8 0.22% 4.12.18
no no Hono has improper validation of NumericDate claims (exp, nbf, iat) in JWT verify()
CVE-2026-47673 Warning 4.8 0.20% 4.12.21
no no Hono: JWT middleware accepts any Authorization scheme, not only Bearer
CVE-2026-47674 Warning 5.3 0.24% 4.12.21
no no Hono: IP Restriction bypasses static deny rules for non-canonical IPv6
CVE-2026-47675 Warning 4.3 0.22% 4.12.21
no no Hono: Cookie helper does not sanitize sameSite and priority, allowing Set-Cookie injection
CVE-2026-47676 Warning 5.3 0.26% 4.12.21
no no Hono: app.mount() strips mount prefix using undecoded path, causing incorrect routing for percent-encoded paths
CVE-2026-54286 Warning 5.9 0.29% 4.12.25
no no hono: Path traversal in serve-static on Windows via encoded backslash (%5C)
CVE-2026-54287 Warning 5.3 0.19% 4.12.25
no no hono: AWS Lambda adapter merges multiple Set-Cookie headers into one value, dropping cookies on ALB single-header and Lattice
CVE-2026-54288 Warning 6.5 0.10% 4.12.25
no no hono: Body Limit Middleware can be bypassed on AWS Lambda by understating Content-Length
CVE-2026-54289 Warning 4.8 0.11% 4.12.25
no no hono: Lambda@Edge adapter keeps only the last value of a repeated request header, dropping the rest
CVE-2026-54290 Critical 7.1 0.25% 4.12.25
no no hono: CORS Middleware reflects any Origin with credentials when origin defaults to the wildcard
CVE-2026-56761 Warning 4.3 0.17% 4.12.14
no no hono Improperly Handles JSX Attribute Names Allows HTML Injection in hono/jsx SSR
CVE-2026-56762 Warning 5.3 0.25% 4.12.12
no no Hono missing validation of cookie name on write path in setCookie()
Remediation :
  • Please consider upgrading hono to version 4.12.25 or higher to try to resolve this issue.
Dependency: npm / hono@ 4.12.8

SUMMARY

Direct Dependency: hono
Location : package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-39407 Warning 5.3 0.46% 4.12.12
no no Hono: Middleware bypass via repeated slashes in serveStatic
CVE-2026-39408 Warning 7.5 0.53% 4.12.12
no no Hono: Path traversal in toSSG() allows writing files outside the output directory
CVE-2026-39409 Warning 5.3 0.34% 4.12.12
no no Hono has incorrect IP matching in ipRestriction() for IPv4-mapped IPv6 addresses
CVE-2026-39410 Warning 4.8 0.28% 4.12.12
no no Hono: Non-breaking space prefix bypass in cookie name handling in getCookie()
CVE-2026-44455 Warning 4.7 0.14% 4.12.16
no no hono/jsx has Unvalidated JSX Tag Names that May Allow HTML Injection
CVE-2026-44456 Warning 6.5 0.22% 4.12.16
no no Hono: bodyLimit() can be bypassed for chunked / unknown-length requests
CVE-2026-44457 Warning 5.3 0.20% 4.12.18
no no Hono's Cache Middleware ignores Vary: Authorization / Vary: Cookie leading to cross-user cache leakage
CVE-2026-44458 Warning 4.3 0.20% 4.12.18
no no Hono has CSS Declaration Injection via Style Object Values in JSX SSR
CVE-2026-44459 Minor 3.8 0.22% 4.12.18
no no Hono has improper validation of NumericDate claims (exp, nbf, iat) in JWT verify()
CVE-2026-47673 Warning 4.8 0.20% 4.12.21
no no Hono: JWT middleware accepts any Authorization scheme, not only Bearer
CVE-2026-47674 Warning 5.3 0.24% 4.12.21
no no Hono: IP Restriction bypasses static deny rules for non-canonical IPv6
CVE-2026-47675 Warning 4.3 0.22% 4.12.21
no no Hono: Cookie helper does not sanitize sameSite and priority, allowing Set-Cookie injection
CVE-2026-47676 Warning 5.3 0.26% 4.12.21
no no Hono: app.mount() strips mount prefix using undecoded path, causing incorrect routing for percent-encoded paths
CVE-2026-54286 Warning 5.9 0.29% 4.12.25
no no hono: Path traversal in serve-static on Windows via encoded backslash (%5C)
CVE-2026-54287 Warning 5.3 0.19% 4.12.25
no no hono: AWS Lambda adapter merges multiple Set-Cookie headers into one value, dropping cookies on ALB single-header and Lattice
CVE-2026-54288 Warning 6.5 0.10% 4.12.25
no no hono: Body Limit Middleware can be bypassed on AWS Lambda by understating Content-Length
CVE-2026-54289 Warning 4.8 0.11% 4.12.25
no no hono: Lambda@Edge adapter keeps only the last value of a repeated request header, dropping the rest
CVE-2026-54290 Critical 7.1 0.25% 4.12.25
no no hono: CORS Middleware reflects any Origin with credentials when origin defaults to the wildcard
CVE-2026-56761 Warning 4.3 0.17% 4.12.14
no no hono Improperly Handles JSX Attribute Names Allows HTML Injection in hono/jsx SSR
CVE-2026-56762 Warning 5.3 0.25% 4.12.12
no no Hono missing validation of cookie name on write path in setCookie()
Remediation :
  • Please consider upgrading hono to version 4.12.25 or higher to try to resolve this issue.
Dependency: npm / js-yaml@ 3.14.2

SUMMARY

Direct Dependency: js-yaml
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-53550 Warning 5.3 0.26% 4.2.0
no no JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases
Remediation :
  • Please consider upgrading js-yaml to version 4.2.0 or higher to try to resolve this issue.
Dependency: npm / js-yaml@ 3.14.2

SUMMARY

Direct Dependency: js-yaml
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-53550 Warning 5.3 0.26% 4.2.0
no no JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases
Remediation :
  • Please consider upgrading js-yaml to version 4.2.0 or higher to try to resolve this issue.
Dependency: npm / lodash@ 4.17.23

SUMMARY

Direct Dependency: lodash
Location : package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2021-23337 Critical 8.1 22.41% 4.18.0
no no lodash vulnerable to Code Injection via _.template imports key names
CVE-2025-13465 Warning 6.5 1.54% 4.18.0
no no lodash vulnerable to Prototype Pollution via array path bypass in _.unset and _.omit
Remediation :
  • Please consider upgrading lodash to version 4.18.0 or higher to try to resolve this issue.
Dependency: npm / picomatch@ 2.3.1

SUMMARY

Direct Dependency: picomatch
Location : package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-33671 Critical 7.5 0.41% 2.3.2
no no Picomatch has a ReDoS vulnerability via extglob quantifiers
CVE-2026-33672 Warning 5.3 0.41% 2.3.2
no no Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching
Remediation :
  • Please consider upgrading picomatch to version 2.3.2 or higher to try to resolve this issue.
Dependency: npm / picomatch@ 4.0.3

SUMMARY

Direct Dependency: picomatch
Location : package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-33671 Critical 7.5 0.41% 4.0.4
no no Picomatch has a ReDoS vulnerability via extglob quantifiers
CVE-2026-33672 Warning 5.3 0.41% 4.0.4
no no Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching
Remediation :
  • Please consider upgrading picomatch to version 4.0.4 or higher to try to resolve this issue.
Dependency: npm / picomatch@ 2.3.1

SUMMARY

Direct Dependency: picomatch
Location : package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-33671 Critical 7.5 0.41% 2.3.2
no no Picomatch has a ReDoS vulnerability via extglob quantifiers
CVE-2026-33672 Warning 5.3 0.41% 2.3.2
no no Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching
Remediation :
  • Please consider upgrading picomatch to version 2.3.2 or higher to try to resolve this issue.
Dependency: npm / picomatch@ 4.0.3

SUMMARY

Direct Dependency: picomatch
Location : package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-33671 Critical 7.5 0.41% 4.0.4
no no Picomatch has a ReDoS vulnerability via extglob quantifiers
CVE-2026-33672 Warning 5.3 0.41% 4.0.4
no no Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching
Remediation :
  • Please consider upgrading picomatch to version 4.0.4 or higher to try to resolve this issue.
Dependency: npm / shell-quote@ 1.8.3

SUMMARY

Direct Dependency: shell-quote
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-9277 Critical 8.1 0.85% 1.8.4
no no shell-quote quote() does not escape newlines in object .op values
Remediation :
  • Please consider upgrading shell-quote to version 1.8.4 or higher to try to resolve this issue.
Dependency: npm / shell-quote@ 1.8.3

SUMMARY

Direct Dependency: shell-quote
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-9277 Critical 8.1 0.85% 1.8.4
no no shell-quote quote() does not escape newlines in object .op values
Remediation :
  • Please consider upgrading shell-quote to version 1.8.4 or higher to try to resolve this issue.
Dependency: npm / ua-parser-js@ 2.0.9

SUMMARY

Direct Dependency: ua-parser-js
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-48125 Warning 5.3 2.0.10
no no UAParser.js: Unbounded Sec-CH-UA-Model parsing can trigger ReDoS in withClientHints()
Remediation :
  • Please consider upgrading ua-parser-js to version 2.0.10 or higher to try to resolve this issue.
Dependency: npm / ua-parser-js@ 2.0.9

SUMMARY

Direct Dependency: ua-parser-js
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-48125 Warning 5.3 2.0.10
no no UAParser.js: Unbounded Sec-CH-UA-Model parsing can trigger ReDoS in withClientHints()
Remediation :
  • Please consider upgrading ua-parser-js to version 2.0.10 or higher to try to resolve this issue.
Dependency: npm / uuid@ 11.1.0

SUMMARY

Direct Dependency: uuid
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-41907 Warning 7.5 0.34% 11.1.1
no no uuid: Missing buffer bounds check in v3/v5/v6 when buf is provided
Remediation :
  • Please consider upgrading uuid to version 11.1.1 or higher to try to resolve this issue.
Dependency: npm / uuid@ 11.1.0

SUMMARY

Direct Dependency: uuid
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-41907 Warning 7.5 0.34% 11.1.1
no no uuid: Missing buffer bounds check in v3/v5/v6 when buf is provided
Remediation :
  • Please consider upgrading uuid to version 11.1.1 or higher to try to resolve this issue.
Dependency: npm / ws@ 8.19.0

SUMMARY

Direct Dependency: ws
Location : package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-45736 Warning 4.4 0.74% 8.20.1
no no ws: Uninitialized memory disclosure
CVE-2026-48779 Critical 7.5 0.78% 8.21.0
no no ws: Memory exhaustion DoS from tiny fragments and data chunks
Remediation :
  • Please consider upgrading ws to version 8.21.0 or higher to try to resolve this issue.
Dependency: npm / ws@ 8.19.0

SUMMARY

Direct Dependency: ws
Location : package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-45736 Warning 4.4 0.74% 8.20.1
no no ws: Uninitialized memory disclosure
CVE-2026-48779 Critical 7.5 0.78% 8.21.0
no no ws: Memory exhaustion DoS from tiny fragments and data chunks
Remediation :
  • Please consider upgrading ws to version 8.21.0 or higher to try to resolve this issue.
Dependency: npm / yaml@ 2.8.2

SUMMARY

Direct Dependency: yaml
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-33532 Warning 4.3 0.47% 2.8.3
no no yaml is vulnerable to Stack Overflow via deeply nested YAML collections
Remediation :
  • Please consider upgrading yaml to version 2.8.3 or higher to try to resolve this issue.
Dependency: npm / yaml@ 2.8.2

SUMMARY

Direct Dependency: yaml
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-33532 Warning 4.3 0.47% 2.8.3
no no yaml is vulnerable to Stack Overflow via deeply nested YAML collections
Remediation :
  • Please consider upgrading yaml to version 2.8.3 or higher to try to resolve this issue.

Scanner: boostsecurity - Trivy (Filesystem scanning)

@boostsecurity-io boostsecurity-io Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀 4 New Security Fixes

You just committed 4 security fixes. 😎 Keep up the great work!

🎯 Take a look at what findings you fixed.
Findings
Dependency: npm / node-forge@ 1.3.1

SUMMARY

Dependency: node-forge
Transitive through:
  • @getpara/cosmos-wallet-connectors @ 2.17.0

Location : examples/_shared/multisig-browser/package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2025-12816 Critical 8.7 1.3.2
no no node-forge: node-forge: Interpretation conflict vulnerability allows bypassing cryptographic verifications
CVE-2025-66031 Critical 8.7 0.37% 1.3.2
no no node-forge has ASN.1 Unbounded Recursion
CVE-2026-33891 Critical 7.5 0.60% 1.4.0
no no Forge has Denial of Service via Infinite Loop in BigInteger.modInverse() with Zero Input
CVE-2026-33894 Critical 7.5 0.34% 1.4.0
no no Forge has signature forgery in RSA-PKCS due to ASN.1 extra field
CVE-2026-33895 Critical 7.5 0.35% 1.4.0
no no Forge has signature forgery in Ed25519 due to missing S > L check
CVE-2026-33896 Critical 7.4 0.35% 1.4.0
no no Forge has a basicConstraints bypass in its certificate chain verification (RFC 5280 violation)
GHSA-5gfm-wpxj-wjgq Critical 8.7 1.3.2
no no node-forge has an Interpretation Conflict vulnerability via its ASN.1 Validator Desynchronization
Remediation :
  • Please consider upgrading @getpara/cosmos-wallet-connectors to versions that require the transitive dependency node-forge @ 1.4.0 or higher.
Dependency: npm / protobufjs@ 6.11.6

SUMMARY

Dependency: protobufjs
Transitive through:
  • @getpara/cosmos-wallet-connectors @ 2.17.0

Location : examples/_shared/multisig-browser/package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-41242 Critical 9.4 0.74% 7.5.5
no no Arbitrary code execution in protobufjs
CVE-2026-44289 Critical 7.5 0.58% 7.5.6
no no protobuf.js: Denial of service through unbounded protobuf recursion
CVE-2026-44290 Critical 7.5 0.37% 7.5.6
no no protobuf.js: Process-wide denial of service through unsafe option paths
CVE-2026-44291 Critical 8.1 0.50% 7.5.6
no no protobuf.js: Code generation gadget after prototype pollution
CVE-2026-44293 Critical 7.7 0.39% 7.5.6
no no protobuf.js: Code injection through bytes field defaults in generated toObject code
CVE-2026-48712 Critical 7.5 0.32% 7.6.1
no no protobufjs: Denial of service through unbounded Any expansion during JSON conversion
Remediation :
  • Please consider upgrading @getpara/cosmos-wallet-connectors to versions that require the transitive dependency protobufjs @ 7.6.1 or higher.
Dependency: npm / underscore@ 1.12.1

SUMMARY

Dependency: underscore
Transitive through:
  • @getpara/cosmos-wallet-connectors @ 2.17.0

Location : examples/_shared/multisig-browser/package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-27601 Critical 8.2 0.61% 1.13.8
no no Underscore has unlimited recursion in _.flatten and _.isEqual, potential for DoS attack
Remediation :
  • Please consider upgrading @getpara/cosmos-wallet-connectors to versions that require the transitive dependency underscore @ 1.13.8 or higher.
Dependency: npm / ws@ 8.20.1

SUMMARY

Dependency: ws
Transitive through:
  • @getpara/evm-wallet-connectors @ 2.17.0
  • @getpara/react-sdk-lite @ 2.17.0
  • @miden-sdk/use-miden-para-react @ 0.14.0

Location : examples/_shared/multisig-browser/package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-48779 Critical 7.5 0.78% 8.21.0
no no ws: Memory exhaustion DoS from tiny fragments and data chunks
Remediation :
  • Please consider upgrading @getpara/evm-wallet-connectors, @getpara/react-sdk-lite, @miden-sdk/use-miden-para-react to versions that require the transitive dependency ws @ 8.21.0 or higher.

⚠️  27 New Security Findings

The latest commit contains 27 new security findings.

Findings
Dependency: npm / axios@ 1.13.6

SUMMARY

Dependency: axios
Transitive through:
  • @getpara/cosmos-wallet-connectors @ 2.17.0
  • @getpara/evm-wallet-connectors @ 2.17.0
  • @getpara/react-sdk-lite @ 2.17.0
  • @getpara/solana-wallet-connectors @ 2.17.0
  • @miden-sdk/miden-para @ 0.14.0
  • @miden-sdk/use-miden-para-react @ 0.14.0

Location : examples/web/package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-42033 Critical 7.4 0.81% 1.15.1
no no Axios: Prototype Pollution Gadgets - Response Tampering, Data Exfiltration, and Request Hijacking
CVE-2026-42035 Critical 7.4 0.39% 1.15.1
no no Axios: Header Injection via Prototype Pollution
CVE-2026-42039 Critical 6.9 0.72% 1.15.1
no no Axios: unbounded recursion in toFormData causes DoS via deeply nested request data
CVE-2026-42043 Critical 7.2 0.66% 1.15.1
no no Axios: Incomplete Fix for CVE-2025-62718 — NO_PROXY Protection Bypassed via RFC 1122 Loopback Subnet (127.0.0.0/8) in Axios 1.15.0
CVE-2026-42264 Critical 7.4 0.71% 1.15.2
no no Axios has prototype pollution read-side gadgets in HTTP adapter that allow credential injection and request hijacking
CVE-2026-44486 Critical 7.5 0.53% 1.16.0
no no Axios: Proxy-Authorization header leaks to redirect target when proxy is re-evaluated to direct connection
CVE-2026-44487 Critical 8.2 0.66% 1.16.0
no no Axios: Proxy-Authorization Credential Leak to Origin Server Across HTTP-to-HTTPS Redirect in Axios Node.js HTTP Adapter
CVE-2026-44488 Critical 7.5 0.63% 1.16.0
no no Allocation of Resources Without Limits or Throttling in Axios
CVE-2026-44494 Critical 8.7 1.04% 1.16.0
no no axios Vulnerable to Full Man-in-the-Middle via Prototype Pollution Gadget in config.proxy
CVE-2026-44495 Critical 7.0 0.50% 1.15.2
no no axios Vulnerable to Credential Theft and Response Hijacking via Prototype Pollution Gadget in Config Merge
CVE-2026-44496 Critical 7.5 0.62% 1.16.0
no no Axios: Regular Expression Denial of Service (ReDoS) via Cookie Name Injection
Remediation :
  • Please consider upgrading @getpara/cosmos-wallet-connectors, @getpara/evm-wallet-connectors, @getpara/react-sdk-lite, @getpara/solana-wallet-connectors, @miden-sdk/miden-para, @miden-sdk/use-miden-para-react to versions that require the transitive dependency axios @ 1.16.0 or higher.
Dependency: npm / axios@ 1.13.6

SUMMARY

Dependency: axios
Transitive through:
  • @getpara/cosmos-wallet-connectors @ 2.17.0
  • @getpara/evm-wallet-connectors @ 2.17.0
  • @getpara/react-sdk-lite @ 2.17.0
  • @getpara/solana-wallet-connectors @ 2.17.0
  • @miden-sdk/miden-para @ 0.14.0
  • @miden-sdk/use-miden-para-react @ 0.14.0

Location : examples/smoke-web/package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-42033 Critical 7.4 0.81% 1.15.1
no no Axios: Prototype Pollution Gadgets - Response Tampering, Data Exfiltration, and Request Hijacking
CVE-2026-42035 Critical 7.4 0.39% 1.15.1
no no Axios: Header Injection via Prototype Pollution
CVE-2026-42039 Critical 6.9 0.72% 1.15.1
no no Axios: unbounded recursion in toFormData causes DoS via deeply nested request data
CVE-2026-42043 Critical 7.2 0.66% 1.15.1
no no Axios: Incomplete Fix for CVE-2025-62718 — NO_PROXY Protection Bypassed via RFC 1122 Loopback Subnet (127.0.0.0/8) in Axios 1.15.0
CVE-2026-42264 Critical 7.4 0.71% 1.15.2
no no Axios has prototype pollution read-side gadgets in HTTP adapter that allow credential injection and request hijacking
CVE-2026-44486 Critical 7.5 0.53% 1.16.0
no no Axios: Proxy-Authorization header leaks to redirect target when proxy is re-evaluated to direct connection
CVE-2026-44487 Critical 8.2 0.66% 1.16.0
no no Axios: Proxy-Authorization Credential Leak to Origin Server Across HTTP-to-HTTPS Redirect in Axios Node.js HTTP Adapter
CVE-2026-44488 Critical 7.5 0.63% 1.16.0
no no Allocation of Resources Without Limits or Throttling in Axios
CVE-2026-44494 Critical 8.7 1.04% 1.16.0
no no axios Vulnerable to Full Man-in-the-Middle via Prototype Pollution Gadget in config.proxy
CVE-2026-44495 Critical 7.0 0.50% 1.15.2
no no axios Vulnerable to Credential Theft and Response Hijacking via Prototype Pollution Gadget in Config Merge
CVE-2026-44496 Critical 7.5 0.62% 1.16.0
no no Axios: Regular Expression Denial of Service (ReDoS) via Cookie Name Injection
Remediation :
  • Please consider upgrading @getpara/cosmos-wallet-connectors, @getpara/evm-wallet-connectors, @getpara/react-sdk-lite, @getpara/solana-wallet-connectors, @miden-sdk/miden-para, @miden-sdk/use-miden-para-react to versions that require the transitive dependency axios @ 1.16.0 or higher.
Dependency: npm / form-data@ 2.5.5

SUMMARY

Dependency: form-data
Transitive through:
  • @getpara/cosmos-wallet-connectors @ 2.17.0

Location : examples/smoke-web/package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-12143 Critical 8.7 0.41% 2.5.6
no no form-data: CRLF injection in form-data via unescaped multipart field names and filenames
Remediation :
  • Please consider upgrading @getpara/cosmos-wallet-connectors to versions that require the transitive dependency form-data @ 2.5.6 or higher.
Dependency: npm / form-data@ 2.5.5

SUMMARY

Dependency: form-data
Transitive through:
  • @getpara/cosmos-wallet-connectors @ 2.17.0

Location : examples/web/package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-12143 Critical 8.7 0.41% 2.5.6
no no form-data: CRLF injection in form-data via unescaped multipart field names and filenames
Remediation :
  • Please consider upgrading @getpara/cosmos-wallet-connectors to versions that require the transitive dependency form-data @ 2.5.6 or higher.
Dependency: npm / hono@ 4.12.8

SUMMARY

Dependency: hono
Transitive through:
  • @getpara/evm-wallet-connectors @ 2.17.0

Location : examples/web/package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-54290 Critical 7.1 0.25% 4.12.25
no no hono: CORS Middleware reflects any Origin with credentials when origin defaults to the wildcard
Remediation :
  • Please consider upgrading @getpara/evm-wallet-connectors to versions that require the transitive dependency hono @ 4.12.25 or higher.
Dependency: npm / hono@ 4.12.8

SUMMARY

Dependency: hono
Transitive through:
  • @getpara/evm-wallet-connectors @ 2.17.0

Location : examples/smoke-web/package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-54290 Critical 7.1 0.25% 4.12.25
no no hono: CORS Middleware reflects any Origin with credentials when origin defaults to the wildcard
Remediation :
  • Please consider upgrading @getpara/evm-wallet-connectors to versions that require the transitive dependency hono @ 4.12.25 or higher.
Dependency: npm / lodash@ 4.17.23

SUMMARY

Dependency: lodash
Transitive through:
  • @getpara/evm-wallet-connectors @ 2.17.0

Location : examples/smoke-web/package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2021-23337 Critical 7.2 22.41% 4.18.0
no no lodash vulnerable to Code Injection via _.template imports key names
CVE-2021-23337 Critical 8.1 22.41% 4.18.0
no no lodash vulnerable to Code Injection via _.template imports key names
Remediation :
  • Please consider upgrading @getpara/evm-wallet-connectors to versions that require the transitive dependency lodash @ 4.18.0 or higher.
Dependency: npm / lodash@ 4.17.21

SUMMARY

Dependency: lodash
Transitive through:
  • @getpara/evm-wallet-connectors @ 2.17.0
  • @getpara/solana-wallet-connectors @ 2.17.0

Location : examples/web/package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2021-23337 Critical 7.2 22.41% 4.18.0
no no lodash vulnerable to Code Injection via _.template imports key names
CVE-2021-23337 Critical 8.1 22.41% 4.18.0
no no lodash vulnerable to Code Injection via _.template imports key names
Remediation :
  • Please consider upgrading @getpara/evm-wallet-connectors, @getpara/solana-wallet-connectors to versions that require the transitive dependency lodash @ 4.18.0 or higher.
Dependency: npm / lodash@ 4.17.21

SUMMARY

Dependency: lodash
Transitive through:
  • @getpara/solana-wallet-connectors @ 2.17.0

Location : examples/smoke-web/package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2021-23337 Critical 7.2 22.41% 4.18.0
no no lodash vulnerable to Code Injection via _.template imports key names
CVE-2021-23337 Critical 8.1 22.41% 4.18.0
no no lodash vulnerable to Code Injection via _.template imports key names
Remediation :
  • Please consider upgrading @getpara/solana-wallet-connectors to versions that require the transitive dependency lodash @ 4.18.0 or higher.
Dependency: npm / picomatch@ 2.3.1

SUMMARY

Dependency: picomatch
Transitive through:
  • @getpara/cosmos-wallet-connectors @ 2.17.0
  • @getpara/evm-wallet-connectors @ 2.17.0
  • @getpara/solana-wallet-connectors @ 2.17.0

Location : examples/smoke-web/package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-33671 Critical 7.5 0.41% 2.3.2
no no Picomatch has a ReDoS vulnerability via extglob quantifiers
Remediation :
  • Please consider upgrading @getpara/cosmos-wallet-connectors, @getpara/evm-wallet-connectors, @getpara/solana-wallet-connectors to versions that require the transitive dependency picomatch @ 2.3.2 or higher.
Dependency: npm / picomatch@ 4.0.3

SUMMARY

Dependency: picomatch
Transitive through:
  • @getpara/cosmos-wallet-connectors @ 2.17.0
  • @getpara/evm-wallet-connectors @ 2.17.0
  • @getpara/solana-wallet-connectors @ 2.17.0

Location : examples/smoke-web/package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-33671 Critical 7.5 0.41% 4.0.4
no no Picomatch has a ReDoS vulnerability via extglob quantifiers
Remediation :
  • Please consider upgrading @getpara/cosmos-wallet-connectors, @getpara/evm-wallet-connectors, @getpara/solana-wallet-connectors to versions that require the transitive dependency picomatch @ 4.0.4 or higher.
Dependency: npm / picomatch@ 2.3.1

SUMMARY

Dependency: picomatch
Transitive through:
  • @getpara/cosmos-wallet-connectors @ 2.17.0
  • @getpara/evm-wallet-connectors @ 2.17.0
  • @getpara/solana-wallet-connectors @ 2.17.0

Location : examples/web/package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-33671 Critical 7.5 0.41% 2.3.2
no no Picomatch has a ReDoS vulnerability via extglob quantifiers
Remediation :
  • Please consider upgrading @getpara/cosmos-wallet-connectors, @getpara/evm-wallet-connectors, @getpara/solana-wallet-connectors to versions that require the transitive dependency picomatch @ 2.3.2 or higher.
Dependency: npm / picomatch@ 4.0.3

SUMMARY

Dependency: picomatch
Transitive through:
  • @getpara/cosmos-wallet-connectors @ 2.17.0
  • @getpara/evm-wallet-connectors @ 2.17.0
  • @getpara/solana-wallet-connectors @ 2.17.0

Location : examples/web/package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-33671 Critical 7.5 0.41% 4.0.4
no no Picomatch has a ReDoS vulnerability via extglob quantifiers
Remediation :
  • Please consider upgrading @getpara/cosmos-wallet-connectors, @getpara/evm-wallet-connectors, @getpara/solana-wallet-connectors to versions that require the transitive dependency picomatch @ 4.0.4 or higher.
Dependency: npm / ses@ 0.18.4

SUMMARY

Dependency: ses
Transitive through:
  • @getpara/cosmos-wallet-connectors @ 2.17.0

Location : examples/smoke-web/package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2023-39532 Critical 9.8 1.23% 0.18.7
no no SES's dynamic import and spread operator provides possible path to arbitrary exfiltration and execution
CVE-2025-32792 Critical 8.7 0.50% 1.12.0
no no ses's global contour bindings leak into Compartment lexical scope
Remediation :
  • Please consider upgrading @getpara/cosmos-wallet-connectors to versions that require the transitive dependency ses @ 1.12.0 or higher.
Dependency: npm / ses@ 0.18.4

SUMMARY

Dependency: ses
Transitive through:
  • @getpara/cosmos-wallet-connectors @ 2.17.0

Location : examples/web/package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2023-39532 Critical 9.8 1.23% 0.18.7
no no SES's dynamic import and spread operator provides possible path to arbitrary exfiltration and execution
CVE-2025-32792 Critical 8.7 0.50% 1.12.0
no no ses's global contour bindings leak into Compartment lexical scope
Remediation :
  • Please consider upgrading @getpara/cosmos-wallet-connectors to versions that require the transitive dependency ses @ 1.12.0 or higher.
Dependency: npm / shell-quote@ 1.8.3

SUMMARY

Dependency: shell-quote
Transitive through:
  • @getpara/cosmos-wallet-connectors @ 2.17.0
  • @getpara/evm-wallet-connectors @ 2.17.0
  • @getpara/solana-wallet-connectors @ 2.17.0

Location : examples/smoke-web/package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-9277 Critical 9.2 0.85% 1.8.4
no no shell-quote quote() does not escape newlines in object .op values
Remediation :
  • Please consider upgrading @getpara/cosmos-wallet-connectors, @getpara/evm-wallet-connectors, @getpara/solana-wallet-connectors to versions that require the transitive dependency shell-quote @ 1.8.4 or higher.
Dependency: npm / shell-quote@ 1.8.3

SUMMARY

Dependency: shell-quote
Transitive through:
  • @getpara/cosmos-wallet-connectors @ 2.17.0
  • @getpara/evm-wallet-connectors @ 2.17.0
  • @getpara/solana-wallet-connectors @ 2.17.0

Location : examples/web/package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-9277 Critical 9.2 0.85% 1.8.4
no no shell-quote quote() does not escape newlines in object .op values
Remediation :
  • Please consider upgrading @getpara/cosmos-wallet-connectors, @getpara/evm-wallet-connectors, @getpara/solana-wallet-connectors to versions that require the transitive dependency shell-quote @ 1.8.4 or higher.
Dependency: npm / uuid@ 11.1.0

SUMMARY

Dependency: uuid
Transitive through:
  • @getpara/cosmos-wallet-connectors @ 2.17.0
  • @getpara/evm-wallet-connectors @ 2.17.0
  • @getpara/react-sdk-lite @ 2.17.0
  • @getpara/solana-wallet-connectors @ 2.17.0
  • @miden-sdk/miden-para @ 0.14.0
  • @miden-sdk/use-miden-para-react @ 0.14.0

Location : examples/web/package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-41907 Critical 6.3 0.34% 11.1.1
no no uuid: Missing buffer bounds check in v3/v5/v6 when buf is provided
Remediation :
  • Please consider upgrading @getpara/cosmos-wallet-connectors, @getpara/evm-wallet-connectors, @getpara/react-sdk-lite, @getpara/solana-wallet-connectors, @miden-sdk/miden-para, @miden-sdk/use-miden-para-react to versions that require the transitive dependency uuid @ 11.1.1 or higher.
Dependency: npm / uuid@ 8.3.2

SUMMARY

Dependency: uuid
Transitive through:
  • @getpara/evm-wallet-connectors @ 2.17.0
  • @getpara/solana-wallet-connectors @ 2.17.0

Location : examples/web/package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-41907 Critical 6.3 0.34% 11.1.1
no no uuid: Missing buffer bounds check in v3/v5/v6 when buf is provided
Remediation :
  • Please consider upgrading @getpara/evm-wallet-connectors, @getpara/solana-wallet-connectors to versions that require the transitive dependency uuid @ 11.1.1 or higher.
Dependency: npm / uuid@ 11.1.0

SUMMARY

Dependency: uuid
Transitive through:
  • @getpara/cosmos-wallet-connectors @ 2.17.0
  • @getpara/evm-wallet-connectors @ 2.17.0
  • @getpara/react-sdk-lite @ 2.17.0
  • @getpara/solana-wallet-connectors @ 2.17.0
  • @miden-sdk/miden-para @ 0.14.0
  • @miden-sdk/use-miden-para-react @ 0.14.0

Location : examples/smoke-web/package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-41907 Critical 6.3 0.34% 11.1.1
no no uuid: Missing buffer bounds check in v3/v5/v6 when buf is provided
Remediation :
  • Please consider upgrading @getpara/cosmos-wallet-connectors, @getpara/evm-wallet-connectors, @getpara/react-sdk-lite, @getpara/solana-wallet-connectors, @miden-sdk/miden-para, @miden-sdk/use-miden-para-react to versions that require the transitive dependency uuid @ 11.1.1 or higher.
Dependency: npm / uuid@ 9.0.1

SUMMARY

Dependency: uuid
Transitive through:
  • @coinbase/wallet-sdk @ 3.9.3
  • @getpara/cosmos-wallet-connectors @ 2.17.0
  • @getpara/evm-wallet-connectors @ 2.17.0

Location : examples/smoke-web/package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-41907 Critical 6.3 0.34% 11.1.1
no no uuid: Missing buffer bounds check in v3/v5/v6 when buf is provided
Remediation :
  • Please consider upgrading @coinbase/wallet-sdk, @getpara/cosmos-wallet-connectors, @getpara/evm-wallet-connectors to versions that require the transitive dependency uuid @ 11.1.1 or higher.
Dependency: npm / uuid@ 9.0.1

SUMMARY

Dependency: uuid
Transitive through:
  • @coinbase/wallet-sdk @ 3.9.3
  • @getpara/cosmos-wallet-connectors @ 2.17.0
  • @getpara/evm-wallet-connectors @ 2.17.0

Location : examples/web/package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-41907 Critical 6.3 0.34% 11.1.1
no no uuid: Missing buffer bounds check in v3/v5/v6 when buf is provided
Remediation :
  • Please consider upgrading @coinbase/wallet-sdk, @getpara/cosmos-wallet-connectors, @getpara/evm-wallet-connectors to versions that require the transitive dependency uuid @ 11.1.1 or higher.
Dependency: npm / uuid@ 8.3.2

SUMMARY

Dependency: uuid
Transitive through:
  • @getpara/evm-wallet-connectors @ 2.17.0
  • @getpara/solana-wallet-connectors @ 2.17.0

Location : examples/smoke-web/package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-41907 Critical 6.3 0.34% 11.1.1
no no uuid: Missing buffer bounds check in v3/v5/v6 when buf is provided
Remediation :
  • Please consider upgrading @getpara/evm-wallet-connectors, @getpara/solana-wallet-connectors to versions that require the transitive dependency uuid @ 11.1.1 or higher.
Dependency: npm / ws@ 8.19.0

SUMMARY

Dependency: ws
Transitive through:
  • @getpara/evm-wallet-connectors @ 2.17.0
  • @getpara/solana-wallet-connectors @ 2.17.0

Location : examples/web/package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-48779 Critical 7.5 0.78% 8.21.0
no no ws: Memory exhaustion DoS from tiny fragments and data chunks
Remediation :
  • Please consider upgrading @getpara/evm-wallet-connectors, @getpara/solana-wallet-connectors to versions that require the transitive dependency ws @ 8.21.0 or higher.
Dependency: npm / ws@ 8.19.0

SUMMARY

Dependency: ws
Transitive through:
  • @getpara/evm-wallet-connectors @ 2.17.0
  • @getpara/solana-wallet-connectors @ 2.17.0

Location : examples/smoke-web/package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-48779 Critical 7.5 0.78% 8.21.0
no no ws: Memory exhaustion DoS from tiny fragments and data chunks
Remediation :
  • Please consider upgrading @getpara/evm-wallet-connectors, @getpara/solana-wallet-connectors to versions that require the transitive dependency ws @ 8.21.0 or higher.
Dependency: npm / ws@ 8.18.0

SUMMARY

Dependency: ws
Transitive through:
  • @getpara/cosmos-wallet-connectors @ 2.17.0
  • @getpara/evm-wallet-connectors @ 2.17.0
  • @getpara/solana-wallet-connectors @ 2.17.0

Location : examples/web/package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-48779 Critical 7.5 0.78% 8.21.0
no no ws: Memory exhaustion DoS from tiny fragments and data chunks
Remediation :
  • Please consider upgrading @getpara/cosmos-wallet-connectors, @getpara/evm-wallet-connectors, @getpara/solana-wallet-connectors to versions that require the transitive dependency ws @ 8.21.0 or higher.
Dependency: npm / ws@ 8.18.0

SUMMARY

Dependency: ws
Transitive through:
  • @getpara/cosmos-wallet-connectors @ 2.17.0
  • @getpara/evm-wallet-connectors @ 2.17.0
  • @getpara/solana-wallet-connectors @ 2.17.0

Location : examples/smoke-web/package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-48779 Critical 7.5 0.78% 8.21.0
no no ws: Memory exhaustion DoS from tiny fragments and data chunks
Remediation :
  • Please consider upgrading @getpara/cosmos-wallet-connectors, @getpara/evm-wallet-connectors, @getpara/solana-wallet-connectors to versions that require the transitive dependency ws @ 8.21.0 or higher.

Scanner: boostsecurity - BoostSecurity SCA

@boostsecurity-io boostsecurity-io Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀 2 New Security Fixes

You just committed 2 security fixes. 😎 Keep up the great work!

🎯 Take a look at what findings you fixed.
Findings
Dependency: npm / protobufjs@ 6.11.6

SUMMARY

Direct Dependency: protobufjs
Location : package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-41242 Critical 9.8 0.74% 7.5.5
no no Arbitrary code execution in protobufjs
CVE-2026-44288 Warning 5.3 0.30% 7.5.6
no no protobufjs has overlong UTF-8 decoding
CVE-2026-44289 Critical 7.5 0.58% 7.5.6
no no protobuf.js: Denial of service through unbounded protobuf recursion
CVE-2026-44290 Critical 7.5 0.37% 7.5.6
no no protobuf.js: Process-wide denial of service through unsafe option paths
CVE-2026-44291 Critical 8.1 0.50% 7.5.6
no no protobuf.js: Code generation gadget after prototype pollution
CVE-2026-44292 Warning 5.3 0.26% 7.5.6
no no protobuf.js: Prototype injection in generated message constructors
CVE-2026-44293 Critical 7.7 0.39% 7.5.6
no no protobuf.js: Code injection through bytes field defaults in generated toObject code
CVE-2026-44294 Warning 5.3 0.43% 7.5.6
no no protobuf.js: Denial of service from crafted field names in generated code
CVE-2026-45740 Warning 5.3 0.26% 7.5.8
no no protobufjs: Denial of Service via unbounded recursive JSON descriptor expansion
CVE-2026-48712 Critical 7.5 0.32% 7.6.1
no no protobufjs: Denial of service through unbounded Any expansion during JSON conversion
CVE-2026-54269 Warning 5.3 0.24% 7.6.3
no no protobufjs : Schema-derived names can shadow runtime-significant properties
Remediation :
  • Please consider upgrading protobufjs to version 7.6.3 or higher to try to resolve this issue.
Dependency: npm / ws@ 8.20.1

SUMMARY

Direct Dependency: ws
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-48779 Critical 7.5 0.78% 8.21.0
no no ws: Memory exhaustion DoS from tiny fragments and data chunks
Remediation :
  • Please consider upgrading ws to version 8.21.0 or higher to try to resolve this issue.

⚠️  27 New Security Findings

The latest commit contains 27 new security findings.

Findings
Dependency: npm / axios@ 1.13.6

SUMMARY

Direct Dependency: axios
Location : package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2018-16487 Warning 4.8 0.29% 1.16.0
no no axios has DoS & Header Injection via Prototype Pollution Read-Side Gadgets in axios merge functions
CVE-2025-62718 Warning 4.8 1.16% 1.15.0
no no Axios has a NO_PROXY Hostname Normalization Bypass that Leads to SSRF
CVE-2026-40175 Warning 4.8 1.81% 1.15.0
no no Axios has Unrestricted Cloud Metadata Exfiltration via Header Injection Chain
CVE-2026-42033 Critical 7.4 0.81% 1.15.1
no no Axios: Prototype Pollution Gadgets - Response Tampering, Data Exfiltration, and Request Hijacking
CVE-2026-42034 Warning 5.3 0.33% 1.15.1
no no Axios' HTTP adapter-streamed uploads bypass maxBodyLength when maxRedirects: 0
CVE-2026-42035 Critical 7.4 0.39% 1.15.1
no no Axios: Header Injection via Prototype Pollution
CVE-2026-42036 Warning 5.3 0.42% 1.15.1
no no Axios: HTTP adapter streamed responses bypass maxContentLength
CVE-2026-42037 Warning 5.3 0.24% 1.15.1
no no Axios: CRLF Injection in multipart/form-data body via unsanitized blob.type in formDataToStream
CVE-2026-42038 Warning 6.8 0.30% 1.15.1
no no Axios: no_proxy bypass via IP alias allows SSRF
CVE-2026-42039 Critical 7.5 0.72% 1.15.1
no no Axios: unbounded recursion in toFormData causes DoS via deeply nested request data
CVE-2026-42041 Warning 4.8 0.61% 1.15.1
no no Axios: Authentication Bypass via Prototype Pollution Gadget in validateStatus Merge Strategy
CVE-2026-42042 Warning 5.4 0.23% 1.15.1
no no Axios: XSRF Token Cross-Origin Leakage via Prototype Pollution Gadget in withXSRFToken Boolean Coercion
CVE-2026-42043 Critical 7.2 0.66% 1.15.1
no no Axios: Incomplete Fix for CVE-2025-62718 — NO_PROXY Protection Bypassed via RFC 1122 Loopback Subnet (127.0.0.0/8) in Axios 1.15.0
CVE-2026-42044 Warning 6.5 0.59% 1.15.2
no no Axios: Invisible JSON Response Tampering via Prototype Pollution Gadget in parseReviver
CVE-2026-42264 Critical 7.4 0.71% 1.15.2
no no Axios has prototype pollution read-side gadgets in HTTP adapter that allow credential injection and request hijacking
CVE-2026-44486 Critical 7.5 0.53% 1.16.0
no no Axios: Proxy-Authorization header leaks to redirect target when proxy is re-evaluated to direct connection
CVE-2026-44487 Critical 8.2 0.66% 1.16.0
no no Axios: Proxy-Authorization Credential Leak to Origin Server Across HTTP-to-HTTPS Redirect in Axios Node.js HTTP Adapter
CVE-2026-44488 Critical 7.5 0.63% 1.16.0
no no Allocation of Resources Without Limits or Throttling in Axios
CVE-2026-44494 Critical 8.7 1.04% 1.16.0
no no axios Vulnerable to Full Man-in-the-Middle via Prototype Pollution Gadget in config.proxy
CVE-2026-44495 Critical 7.0 0.50% 1.15.2
no no axios Vulnerable to Credential Theft and Response Hijacking via Prototype Pollution Gadget in Config Merge
CVE-2026-44496 Critical 7.5 0.62% 1.16.0
no no Axios: Regular Expression Denial of Service (ReDoS) via Cookie Name Injection
Remediation :
  • Please consider upgrading axios to version 1.16.0 or higher to try to resolve this issue.
Dependency: npm / axios@ 1.13.6

SUMMARY

Direct Dependency: axios
Location : package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2018-16487 Warning 4.8 0.29% 1.16.0
no no axios has DoS & Header Injection via Prototype Pollution Read-Side Gadgets in axios merge functions
CVE-2025-62718 Warning 4.8 1.16% 1.15.0
no no Axios has a NO_PROXY Hostname Normalization Bypass that Leads to SSRF
CVE-2026-40175 Warning 4.8 1.81% 1.15.0
no no Axios has Unrestricted Cloud Metadata Exfiltration via Header Injection Chain
CVE-2026-42033 Critical 7.4 0.81% 1.15.1
no no Axios: Prototype Pollution Gadgets - Response Tampering, Data Exfiltration, and Request Hijacking
CVE-2026-42034 Warning 5.3 0.33% 1.15.1
no no Axios' HTTP adapter-streamed uploads bypass maxBodyLength when maxRedirects: 0
CVE-2026-42035 Critical 7.4 0.39% 1.15.1
no no Axios: Header Injection via Prototype Pollution
CVE-2026-42036 Warning 5.3 0.42% 1.15.1
no no Axios: HTTP adapter streamed responses bypass maxContentLength
CVE-2026-42037 Warning 5.3 0.24% 1.15.1
no no Axios: CRLF Injection in multipart/form-data body via unsanitized blob.type in formDataToStream
CVE-2026-42038 Warning 6.8 0.30% 1.15.1
no no Axios: no_proxy bypass via IP alias allows SSRF
CVE-2026-42039 Critical 7.5 0.72% 1.15.1
no no Axios: unbounded recursion in toFormData causes DoS via deeply nested request data
CVE-2026-42041 Warning 4.8 0.61% 1.15.1
no no Axios: Authentication Bypass via Prototype Pollution Gadget in validateStatus Merge Strategy
CVE-2026-42042 Warning 5.4 0.23% 1.15.1
no no Axios: XSRF Token Cross-Origin Leakage via Prototype Pollution Gadget in withXSRFToken Boolean Coercion
CVE-2026-42043 Critical 7.2 0.66% 1.15.1
no no Axios: Incomplete Fix for CVE-2025-62718 — NO_PROXY Protection Bypassed via RFC 1122 Loopback Subnet (127.0.0.0/8) in Axios 1.15.0
CVE-2026-42044 Warning 6.5 0.59% 1.15.2
no no Axios: Invisible JSON Response Tampering via Prototype Pollution Gadget in parseReviver
CVE-2026-42264 Critical 7.4 0.71% 1.15.2
no no Axios has prototype pollution read-side gadgets in HTTP adapter that allow credential injection and request hijacking
CVE-2026-44486 Critical 7.5 0.53% 1.16.0
no no Axios: Proxy-Authorization header leaks to redirect target when proxy is re-evaluated to direct connection
CVE-2026-44487 Critical 8.2 0.66% 1.16.0
no no Axios: Proxy-Authorization Credential Leak to Origin Server Across HTTP-to-HTTPS Redirect in Axios Node.js HTTP Adapter
CVE-2026-44488 Critical 7.5 0.63% 1.16.0
no no Allocation of Resources Without Limits or Throttling in Axios
CVE-2026-44494 Critical 8.7 1.04% 1.16.0
no no axios Vulnerable to Full Man-in-the-Middle via Prototype Pollution Gadget in config.proxy
CVE-2026-44495 Critical 7.0 0.50% 1.15.2
no no axios Vulnerable to Credential Theft and Response Hijacking via Prototype Pollution Gadget in Config Merge
CVE-2026-44496 Critical 7.5 0.62% 1.16.0
no no Axios: Regular Expression Denial of Service (ReDoS) via Cookie Name Injection
Remediation :
  • Please consider upgrading axios to version 1.16.0 or higher to try to resolve this issue.
Dependency: npm / brace-expansion@ 1.1.12

SUMMARY

Direct Dependency: brace-expansion
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-33750 Warning 6.5 0.43% 1.1.13
no no brace-expansion: Zero-step sequence causes process hang and memory exhaustion
Remediation :
  • Please consider upgrading brace-expansion to version 1.1.13 or higher to try to resolve this issue.
Dependency: npm / brace-expansion@ 1.1.12

SUMMARY

Direct Dependency: brace-expansion
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-33750 Warning 6.5 0.43% 1.1.13
no no brace-expansion: Zero-step sequence causes process hang and memory exhaustion
Remediation :
  • Please consider upgrading brace-expansion to version 1.1.13 or higher to try to resolve this issue.
Dependency: npm / follow-redirects@ 1.15.11

SUMMARY

Direct Dependency: follow-redirects
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-40895 Warning 6.9 0.49% 1.16.0
no no follow-redirects leaks Custom Authentication Headers to Cross-Domain Redirect Targets
Remediation :
  • Please consider upgrading follow-redirects to version 1.16.0 or higher to try to resolve this issue.
Dependency: npm / follow-redirects@ 1.15.11

SUMMARY

Direct Dependency: follow-redirects
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-40895 Warning 6.9 0.49% 1.16.0
no no follow-redirects leaks Custom Authentication Headers to Cross-Domain Redirect Targets
Remediation :
  • Please consider upgrading follow-redirects to version 1.16.0 or higher to try to resolve this issue.
Dependency: npm / form-data@ 2.5.5

SUMMARY

Direct Dependency: form-data
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-12143 Critical 7.5 0.41% 2.5.6
no no form-data: CRLF injection in form-data via unescaped multipart field names and filenames
Remediation :
  • Please consider upgrading form-data to version 2.5.6 or higher to try to resolve this issue.
Dependency: npm / form-data@ 2.5.5

SUMMARY

Direct Dependency: form-data
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-12143 Critical 7.5 0.41% 2.5.6
no no form-data: CRLF injection in form-data via unescaped multipart field names and filenames
Remediation :
  • Please consider upgrading form-data to version 2.5.6 or higher to try to resolve this issue.
Dependency: npm / hono@ 4.12.8

SUMMARY

Direct Dependency: hono
Location : package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-39407 Warning 5.3 0.46% 4.12.12
no no Hono: Middleware bypass via repeated slashes in serveStatic
CVE-2026-39408 Warning 5.9 0.53% 4.12.12
no no Hono: Path traversal in toSSG() allows writing files outside the output directory
CVE-2026-39409 Warning 5.3 0.34% 4.12.12
no no Hono has incorrect IP matching in ipRestriction() for IPv4-mapped IPv6 addresses
CVE-2026-39410 Warning 4.8 0.28% 4.12.12
no no Hono: Non-breaking space prefix bypass in cookie name handling in getCookie()
CVE-2026-44455 Warning 4.7 0.14% 4.12.16
no no hono/jsx has Unvalidated JSX Tag Names that May Allow HTML Injection
CVE-2026-44456 Warning 6.5 0.22% 4.12.16
no no Hono: bodyLimit() can be bypassed for chunked / unknown-length requests
CVE-2026-44457 Warning 5.3 0.20% 4.12.18
no no Hono's Cache Middleware ignores Vary: Authorization / Vary: Cookie leading to cross-user cache leakage
CVE-2026-44458 Warning 4.3 0.20% 4.12.18
no no Hono has CSS Declaration Injection via Style Object Values in JSX SSR
CVE-2026-47673 Warning 4.8 0.20% 4.12.21
no no Hono: JWT middleware accepts any Authorization scheme, not only Bearer
CVE-2026-47674 Warning 5.3 0.24% 4.12.21
no no Hono: IP Restriction bypasses static deny rules for non-canonical IPv6
CVE-2026-47675 Warning 4.3 0.22% 4.12.21
no no Hono: Cookie helper does not sanitize sameSite and priority, allowing Set-Cookie injection
CVE-2026-47676 Warning 5.3 0.26% 4.12.21
no no Hono: app.mount() strips mount prefix using undecoded path, causing incorrect routing for percent-encoded paths
CVE-2026-54286 Warning 5.9 0.29% 4.12.25
no no hono: Path traversal in serve-static on Windows via encoded backslash (%5C)
CVE-2026-54287 Warning 5.3 0.19% 4.12.25
no no hono: AWS Lambda adapter merges multiple Set-Cookie headers into one value, dropping cookies on ALB single-header and Lattice
CVE-2026-54288 Warning 6.5 0.10% 4.12.25
no no hono: Body Limit Middleware can be bypassed on AWS Lambda by understating Content-Length
CVE-2026-54289 Warning 4.8 0.11% 4.12.25
no no hono: Lambda@Edge adapter keeps only the last value of a repeated request header, dropping the rest
CVE-2026-54290 Critical 7.1 0.25% 4.12.25
no no hono: CORS Middleware reflects any Origin with credentials when origin defaults to the wildcard
CVE-2026-56761 Warning 4.3 0.17% 4.12.14
no no hono Improperly Handles JSX Attribute Names Allows HTML Injection in hono/jsx SSR
CVE-2026-56762 Warning 5.3 0.25% 4.12.12
no no Hono missing validation of cookie name on write path in setCookie()
Remediation :
  • Please consider upgrading hono to version 4.12.25 or higher to try to resolve this issue.
Dependency: npm / hono@ 4.12.8

SUMMARY

Direct Dependency: hono
Location : package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-39407 Warning 5.3 0.46% 4.12.12
no no Hono: Middleware bypass via repeated slashes in serveStatic
CVE-2026-39408 Warning 5.9 0.53% 4.12.12
no no Hono: Path traversal in toSSG() allows writing files outside the output directory
CVE-2026-39409 Warning 5.3 0.34% 4.12.12
no no Hono has incorrect IP matching in ipRestriction() for IPv4-mapped IPv6 addresses
CVE-2026-39410 Warning 4.8 0.28% 4.12.12
no no Hono: Non-breaking space prefix bypass in cookie name handling in getCookie()
CVE-2026-44455 Warning 4.7 0.14% 4.12.16
no no hono/jsx has Unvalidated JSX Tag Names that May Allow HTML Injection
CVE-2026-44456 Warning 6.5 0.22% 4.12.16
no no Hono: bodyLimit() can be bypassed for chunked / unknown-length requests
CVE-2026-44457 Warning 5.3 0.20% 4.12.18
no no Hono's Cache Middleware ignores Vary: Authorization / Vary: Cookie leading to cross-user cache leakage
CVE-2026-44458 Warning 4.3 0.20% 4.12.18
no no Hono has CSS Declaration Injection via Style Object Values in JSX SSR
CVE-2026-47673 Warning 4.8 0.20% 4.12.21
no no Hono: JWT middleware accepts any Authorization scheme, not only Bearer
CVE-2026-47674 Warning 5.3 0.24% 4.12.21
no no Hono: IP Restriction bypasses static deny rules for non-canonical IPv6
CVE-2026-47675 Warning 4.3 0.22% 4.12.21
no no Hono: Cookie helper does not sanitize sameSite and priority, allowing Set-Cookie injection
CVE-2026-47676 Warning 5.3 0.26% 4.12.21
no no Hono: app.mount() strips mount prefix using undecoded path, causing incorrect routing for percent-encoded paths
CVE-2026-54286 Warning 5.9 0.29% 4.12.25
no no hono: Path traversal in serve-static on Windows via encoded backslash (%5C)
CVE-2026-54287 Warning 5.3 0.19% 4.12.25
no no hono: AWS Lambda adapter merges multiple Set-Cookie headers into one value, dropping cookies on ALB single-header and Lattice
CVE-2026-54288 Warning 6.5 0.10% 4.12.25
no no hono: Body Limit Middleware can be bypassed on AWS Lambda by understating Content-Length
CVE-2026-54289 Warning 4.8 0.11% 4.12.25
no no hono: Lambda@Edge adapter keeps only the last value of a repeated request header, dropping the rest
CVE-2026-54290 Critical 7.1 0.25% 4.12.25
no no hono: CORS Middleware reflects any Origin with credentials when origin defaults to the wildcard
CVE-2026-56761 Warning 4.3 0.17% 4.12.14
no no hono Improperly Handles JSX Attribute Names Allows HTML Injection in hono/jsx SSR
CVE-2026-56762 Warning 5.3 0.25% 4.12.12
no no Hono missing validation of cookie name on write path in setCookie()
Remediation :
  • Please consider upgrading hono to version 4.12.25 or higher to try to resolve this issue.
Dependency: npm / js-yaml@ 3.14.2

SUMMARY

Direct Dependency: js-yaml
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-53550 Warning 5.3 0.26% 4.2.0
no no JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases
Remediation :
  • Please consider upgrading js-yaml to version 4.2.0 or higher to try to resolve this issue.
Dependency: npm / js-yaml@ 3.14.2

SUMMARY

Direct Dependency: js-yaml
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-53550 Warning 5.3 0.26% 4.2.0
no no JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases
Remediation :
  • Please consider upgrading js-yaml to version 4.2.0 or higher to try to resolve this issue.
Dependency: npm / lodash@ 4.17.23

SUMMARY

Direct Dependency: lodash
Location : package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2021-23337 Critical 8.1 22.41% 4.18.0
no no lodash vulnerable to Code Injection via _.template imports key names
CVE-2025-13465 Warning 6.5 1.54% 4.18.0
no no lodash vulnerable to Prototype Pollution via array path bypass in _.unset and _.omit
Remediation :
  • Please consider upgrading lodash to version 4.18.0 or higher to try to resolve this issue.
Dependency: npm / picomatch@ 2.3.1

SUMMARY

Direct Dependency: picomatch
Location : package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-33671 Critical 7.5 0.41% 2.3.2
no no Picomatch has a ReDoS vulnerability via extglob quantifiers
CVE-2026-33672 Warning 5.3 0.41% 2.3.2
no no Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching
Remediation :
  • Please consider upgrading picomatch to version 2.3.2 or higher to try to resolve this issue.
Dependency: npm / picomatch@ 4.0.3

SUMMARY

Direct Dependency: picomatch
Location : package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-33671 Critical 7.5 0.41% 4.0.4
no no Picomatch has a ReDoS vulnerability via extglob quantifiers
CVE-2026-33672 Warning 5.3 0.41% 4.0.4
no no Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching
Remediation :
  • Please consider upgrading picomatch to version 4.0.4 or higher to try to resolve this issue.
Dependency: npm / picomatch@ 2.3.1

SUMMARY

Direct Dependency: picomatch
Location : package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-33671 Critical 7.5 0.41% 2.3.2
no no Picomatch has a ReDoS vulnerability via extglob quantifiers
CVE-2026-33672 Warning 5.3 0.41% 2.3.2
no no Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching
Remediation :
  • Please consider upgrading picomatch to version 2.3.2 or higher to try to resolve this issue.
Dependency: npm / picomatch@ 4.0.3

SUMMARY

Direct Dependency: picomatch
Location : package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-33671 Critical 7.5 0.41% 4.0.4
no no Picomatch has a ReDoS vulnerability via extglob quantifiers
CVE-2026-33672 Warning 5.3 0.41% 4.0.4
no no Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching
Remediation :
  • Please consider upgrading picomatch to version 4.0.4 or higher to try to resolve this issue.
Dependency: npm / shell-quote@ 1.8.3

SUMMARY

Direct Dependency: shell-quote
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-9277 Critical 8.1 0.85% 1.8.4
no no shell-quote quote() does not escape newlines in object .op values
Remediation :
  • Please consider upgrading shell-quote to version 1.8.4 or higher to try to resolve this issue.
Dependency: npm / shell-quote@ 1.8.3

SUMMARY

Direct Dependency: shell-quote
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-9277 Critical 8.1 0.85% 1.8.4
no no shell-quote quote() does not escape newlines in object .op values
Remediation :
  • Please consider upgrading shell-quote to version 1.8.4 or higher to try to resolve this issue.
Dependency: npm / ua-parser-js@ 2.0.9

SUMMARY

Direct Dependency: ua-parser-js
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-48125 Warning 5.3 2.0.10
no no UAParser.js: Unbounded Sec-CH-UA-Model parsing can trigger ReDoS in withClientHints()
Remediation :
  • Please consider upgrading ua-parser-js to version 2.0.10 or higher to try to resolve this issue.
Dependency: npm / ua-parser-js@ 2.0.9

SUMMARY

Direct Dependency: ua-parser-js
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-48125 Warning 5.3 2.0.10
no no UAParser.js: Unbounded Sec-CH-UA-Model parsing can trigger ReDoS in withClientHints()
Remediation :
  • Please consider upgrading ua-parser-js to version 2.0.10 or higher to try to resolve this issue.
Dependency: npm / uuid@ 11.1.0

SUMMARY

Direct Dependency: uuid
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-41907 Critical 7.5 0.34% 11.1.1
no no uuid: Missing buffer bounds check in v3/v5/v6 when buf is provided
Remediation :
  • Please consider upgrading uuid to version 11.1.1 or higher to try to resolve this issue.
Dependency: npm / uuid@ 11.1.0

SUMMARY

Direct Dependency: uuid
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-41907 Critical 7.5 0.34% 11.1.1
no no uuid: Missing buffer bounds check in v3/v5/v6 when buf is provided
Remediation :
  • Please consider upgrading uuid to version 11.1.1 or higher to try to resolve this issue.
Dependency: npm / ws@ 8.19.0

SUMMARY

Direct Dependency: ws
Location : package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-45736 Warning 4.4 0.74% 8.20.1
no no ws: Uninitialized memory disclosure
CVE-2026-48779 Critical 7.5 0.78% 8.21.0
no no ws: Memory exhaustion DoS from tiny fragments and data chunks
Remediation :
  • Please consider upgrading ws to version 8.21.0 or higher to try to resolve this issue.
Dependency: npm / ws@ 8.19.0

SUMMARY

Direct Dependency: ws
Location : package-lock.json

OCCURRENCES

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-45736 Warning 4.4 0.74% 8.20.1
no no ws: Uninitialized memory disclosure
CVE-2026-48779 Critical 7.5 0.78% 8.21.0
no no ws: Memory exhaustion DoS from tiny fragments and data chunks
Remediation :
  • Please consider upgrading ws to version 8.21.0 or higher to try to resolve this issue.
Dependency: npm / yaml@ 2.8.2

SUMMARY

Direct Dependency: yaml
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-33532 Warning 4.3 0.47% 2.8.3
no no yaml is vulnerable to Stack Overflow via deeply nested YAML collections
Remediation :
  • Please consider upgrading yaml to version 2.8.3 or higher to try to resolve this issue.
Dependency: npm / yaml@ 2.8.2

SUMMARY

Direct Dependency: yaml
Location : package-lock.json

OCCURRENCE

Vulnerability Severity CVSS EPSS Affected
Versions
Fixed
Versions
Contains
Malware
Critical
Risk
Description
CVE-2026-33532 Warning 4.3 0.47% 2.8.3
no no yaml is vulnerable to Stack Overflow via deeply nested YAML collections
Remediation :
  • Please consider upgrading yaml to version 2.8.3 or higher to try to resolve this issue.

Scanner: boostsecurity - OSV-Scanner

@zeljkoX
zeljkoX marked this pull request as ready for review July 15, 2026 07:59
@zeljkoX
zeljkoX requested a review from haseebrabbani as a code owner July 15, 2026 07:59

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 10

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
examples/rust/src/multisig.rs (1)

105-132: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

build_multisig_config_advice silently assumes Falcon for every signer.

Every approver's scheme-id felt is hardcoded to SignatureScheme::Falcon.auth_scheme_id(), but the function takes no scheme parameter. Compare with the SDK's own build_multisig_config_advice in crates/miden-multisig-client/src/transaction/configuration/config.rs, which threads a scheme: SignatureScheme argument through per-approver. If this example is copied for a mixed-scheme (e.g. ECDSA) cosigner set, the config hash/payload will be silently wrong.

🛡️ Proposed fix
 pub fn build_multisig_config_advice(
     threshold: u64,
     signer_commitments: &[Word],
+    scheme: SignatureScheme,
 ) -> (Word, Vec<Felt>) {
     ...
     for commitment in signer_commitments.iter().rev() {
         payload.extend_from_slice(commitment.as_elements());
         payload.extend_from_slice(&[
-            Felt::new_unchecked(SignatureScheme::Falcon.auth_scheme_id()),
+            Felt::new_unchecked(scheme.auth_scheme_id()),
             Felt::new_unchecked(0),
             Felt::new_unchecked(0),
             Felt::new_unchecked(0),
         ]);
     }
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@examples/rust/src/multisig.rs` around lines 105 - 132, Update
build_multisig_config_advice to accept a SignatureScheme parameter and use that
parameter when emitting each approver’s scheme-id felt, matching the SDK’s
per-approver scheme handling. Update all callers to pass the intended scheme
instead of implicitly assuming Falcon.
🧹 Nitpick comments (9)
examples/smoke-web/miden-sdk-compat.mjs (1)

9-9: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Re-export from the package’s public specifier instead of dist/

./node_modules/@miden-sdk/miden-sdk/dist/st/eager.js reaches into the package’s internal layout. Use @miden-sdk/miden-sdk or a documented public subpath so this shim stays aligned with the package exports map and doesn’t break on a dist reshuffle.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@examples/smoke-web/miden-sdk-compat.mjs` at line 9, Update the module
re-export in miden-sdk-compat.mjs to use the public `@miden-sdk/miden-sdk` package
specifier or a documented public subpath instead of the internal
dist/st/eager.js path, while preserving the shim’s exported API.
packages/miden-multisig-client/src/inspector.ts (1)

10-10: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Remove inline // comments from implementation code.

These are new // comments added alongside the version-guard and guardian-read changes. As per coding guidelines, packages/miden-multisig-client/src/**/*.ts must not have inline comments (// ...) in implementation code in multisig SDKs.

♻️ Proposed fix
-// `AuthGuardedMultisig` storage slot names (miden::standards::auth::*).
 const MULTISIG_SLOT_NAMES = {
-    // Reject accounts built from a different contract version before any
-    // procedure-root-keyed read: against such an account the reads below would
-    // silently miss its stored overrides (its `procedure_thresholds` map is
-    // keyed by *its* roots, not this SDK's) and report wrong thresholds.
     if (!account.code().hasProcedure(Word.fromHex(getProcedureRoot('auth_tx')))) {
-    // The guarded-multisig has no enable/disable selector; the guardian is always present.
-    // Read its public key directly from the guardian pub_key slot.
     let guardianCommitment: string | null = null;

Also applies to: 72-75, 104-105

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/miden-multisig-client/src/inspector.ts` at line 10, Remove the newly
added inline `//` comments in inspector.ts, including the storage-slot,
version-guard, and guardian-read annotations at the referenced locations. Keep
the surrounding implementation and behavior unchanged.

Source: Coding guidelines

packages/miden-multisig-client/src/transaction/updateSigners.ts (1)

34-34: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Remove inline comments from implementation code.

These comments (interleave-order note at line 34, FeltArray-ownership note at lines 48-50) are disallowed for multisig SDK implementation code.

As per coding guidelines, "Do not add inline comments (// ...) in implementation code in multisig SDKs."

♻️ Proposed fix
-  // Interleave [PUB_KEY, SCHEME_ID] per approver, in reverse index order.
   for (const commitment of [...signerCommitments].reverse()) {
-  // `Poseidon2.hashElements` consumes (frees) its `FeltArray` by value, so the advice payload
-  // must be a separately built array — reusing the hashed array surfaces as "null pointer
-  // passed to rust" at the later `advice.insert`.
   const configHash = Poseidon2.hashElements(

Also applies to: 48-50

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/miden-multisig-client/src/transaction/updateSigners.ts` at line 34,
Remove the inline comments in updateSigners.ts, including the interleave-order
comment near the signer data construction and the FeltArray-ownership comment
around lines 48–50, while leaving the implementation unchanged.

Source: Coding guidelines

packages/miden-multisig-client/src/transaction/updateGuardian.ts (1)

17-19: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Remove inline comment block from implementation code.

This 3-line explanatory comment above buildUpdateGuardianScript is disallowed for multisig SDK implementation code.

As per coding guidelines, "Do not add inline comments (// ...) in implementation code in multisig SDKs."

♻️ Proposed fix
-// `update_guardian_public_key(new_guardian_scheme_id, new_guardian_public_key)` takes its
-// args on the operand stack: push the key word first, then the scheme id on top, and drop the
-// five leftover elements after the call. Rotation needs only the multisig threshold signatures.
 async function buildUpdateGuardianScript(
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/miden-multisig-client/src/transaction/updateGuardian.ts` around
lines 17 - 19, Remove the three-line inline comment immediately above
buildUpdateGuardianScript, leaving the implementation unchanged.

Source: Coding guidelines

crates/miden-multisig-client/src/transaction/configuration/config.rs (1)

21-50: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Add/confirm unit test coverage for the new payload encoding.

build_multisig_config_advice's new interleaved layout is security/correctness-sensitive (it's the advice map the account's auth logic reads to authorize signer updates) and this batch shows no accompanying test asserting the exact byte layout. Codecov reports overall patch coverage below target for this PR; this function is a good candidate for a focused unit test pinning the expected Vec<Felt> output for a small fixed input.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@crates/miden-multisig-client/src/transaction/configuration/config.rs` around
lines 21 - 50, Add focused unit-test coverage for build_multisig_config_advice
using a small fixed threshold, signer commitments, and signature scheme. Assert
the returned Vec<Felt> exactly matches the expected header and reverse-order
interleaved commitment/scheme fields, and verify the returned config hash
matches the hash of that payload.
examples/web/miden-sdk-compat.mjs (1)

9-9: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick win

Avoid hard-coding the dependency’s node_modules path.

This only works when the package exists at examples/web/node_modules/@miden-sdk/miden-sdk. Hoisted or production installs can place it elsewhere and make the browser build fail. Resolve the package through its export/alias instead.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@examples/web/miden-sdk-compat.mjs` at line 9, Update the module re-export in
miden-sdk-compat.mjs to resolve `@miden-sdk/miden-sdk` through the package’s
configured export or alias rather than a relative node_modules path, while
preserving the existing eager.js entry point.
crates/server/src/testing/generate_fixtures.rs (1)

17-20: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Stale comment: no longer matches multisig_guardian.rs.

The comment says these slot names match multisig_guardian.rs, but that file (this PR) no longer defines local slot-name constants — it now builds storage via AuthGuardedMultisigConfig/AuthGuardedMultisig directly. Hardcoding these literals here also risks drifting from the upstream-derived names with no compiler-enforced link.

Consider updating the comment to point at the actual canonical source (e.g. wherever multisig_threshold_config_slot() and friends are now defined, per crates/miden-multisig-client/src/account.rs) or importing those constants directly instead of re-declaring string literals.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@crates/server/src/testing/generate_fixtures.rs` around lines 17 - 20, Update
the slot-name constants near THRESHOLD_CONFIG_SLOT, SIGNER_PUBKEYS_SLOT, and
EXECUTED_TXS_SLOT to use the canonical definitions from the multisig client
account module, or reference that module as the source in the comment instead of
claiming they match multisig_guardian.rs. Remove the duplicated hardcoded
literals when importable canonical symbols such as
multisig_threshold_config_slot() are available.
crates/miden-multisig-client/src/account.rs (1)

9-28: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Duplicated AuthGuardedMultisig slot-name wrappers across two crates. Both files independently re-derive the same set of slot-name accessor wrappers (threshold_config, approver_public_keys, guardian_public_key) from AuthGuardedMultisig::*_slot() in this same PR. Since both crates already pull in the shared guardian_shared crate elsewhere in this diff, hoisting these thin wrappers into a shared location would remove the duplication and the risk of the two copies drifting if the slot-name derivation ever needs to change.

  • crates/miden-multisig-client/src/account.rs#L9-L28: move multisig_threshold_config_slot, multisig_approver_pubkeys_slot, multisig_procedure_thresholds_slot, guardian_public_key_slot into a shared module (e.g. guardian_shared) and import them here.
  • crates/server/src/network/miden/account_inspector.rs#L4-L18: drop the duplicate multisig_threshold_config_slot/multisig_approver_pubkeys_slot/guardian_public_key_slot_name definitions and import the shared versions instead.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@crates/miden-multisig-client/src/account.rs` around lines 9 - 28, The
slot-name accessor wrappers are duplicated across the multisig client and server
inspector. Move multisig_threshold_config_slot, multisig_approver_pubkeys_slot,
multisig_procedure_thresholds_slot, and guardian_public_key_slot from
crates/miden-multisig-client/src/account.rs:9-28 into the shared guardian_shared
module, then import and reuse them there; likewise remove the duplicate
multisig_threshold_config_slot, multisig_approver_pubkeys_slot, and
guardian_public_key_slot_name definitions from
crates/server/src/network/miden/account_inspector.rs:4-18 and use the shared
equivalents.
packages/miden-multisig-client/tests/browser/determinism.spec.ts (1)

38-66: 🚀 Performance & Scalability | 🔵 Trivial | ⚡ Quick win

Two tests independently rebuild the same account, doubling the expensive browser/WASM build.

Both tests call buildInBrowser(page) (each waiting up to 170s), reconstructing the identical account twice. Consider merging into a single test with both assertion groups, or sharing the built result via a fixture/beforeAll, to avoid doubling this test file's CI runtime.

♻️ Merge into a single test
-test('TS account reproduces the Rust storage layout and override-target procedures', async ({
-  page,
-}) => {
-  const result = await buildInBrowser(page);
-  console.log('TS account decomposition:', JSON.stringify(result, null, 2));
-
-  // Storage layout parity (slot names, order, values) — holds across SDKs.
-  expect(result?.storageCommitment).toBe(EXPECTED_STORAGE_COMMITMENT);
-  expect(result?.slotNames).toHaveLength(7);
-
-  // Every threshold-override-target procedure root resolves in the TS-built account, so
-  // per-procedure overrides set via the SDK bind to real procedures.
-  const hasProcedure = result?.hasProcedure as Record<string, boolean> | undefined;
-  for (const name of OVERRIDE_TARGET_PROCEDURES) {
-    expect(hasProcedure?.[name], `missing override-target procedure: ${name}`).toBe(true);
-  }
-});
-
-// `@miden-sdk/miden-sdk` 0.15.2 bundles `miden-standards 0.15.3`, matching the Rust pin
-// (`miden-standards = "=0.15.3"`), so `auth_tx_guarded_multisig` compiles to the same MAST and a
-// TS-built account is byte-identical to the Rust/server account.
-test(
-  'TS account id + commitment match the Rust builder',
-  async ({ page }) => {
-    const result = await buildInBrowser(page);
-    expect(result?.id).toBe(EXPECTED_ID);
-    expect(result?.commitment).toBe(EXPECTED_COMMITMENT);
-  },
-);
+test('TS account matches the Rust builder (id, commitment, storage layout, override targets)', async ({
+  page,
+}) => {
+  const result = await buildInBrowser(page);
+
+  expect(result?.id).toBe(EXPECTED_ID);
+  expect(result?.commitment).toBe(EXPECTED_COMMITMENT);
+  expect(result?.storageCommitment).toBe(EXPECTED_STORAGE_COMMITMENT);
+  expect(result?.slotNames).toHaveLength(7);
+
+  const hasProcedure = result?.hasProcedure as Record<string, boolean> | undefined;
+  for (const name of OVERRIDE_TARGET_PROCEDURES) {
+    expect(hasProcedure?.[name], `missing override-target procedure: ${name}`).toBe(true);
+  }
+});
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/miden-multisig-client/tests/browser/determinism.spec.ts` around
lines 38 - 66, Merge the two tests into one test that calls buildInBrowser(page)
only once and retains all storage-layout, procedure, ID, and commitment
assertions. Remove the duplicate build invocation while preserving the existing
OVERRIDE_TARGET_PROCEDURES checks and expected-value comparisons.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/ci.yml:
- Around line 101-102: Update both checkout steps in the contract-behavior and
ts-sdk jobs to set persist-credentials to false. Keep the existing
actions/checkout references and all subsequent build/test steps unchanged.

In `@crates/contracts/README.md`:
- Around line 20-24: Update the “Running tests” section in the README to
document the separate Playwright browser determinism check alongside the Rust
cargo test command. Include the appropriate browser-test command or explicitly
state that this determinism gate runs separately, without implying the cargo
command is the complete test flow.

In `@crates/miden-multisig-client/src/account.rs`:
- Around line 15-16: Remove the two inline comments documenting the
AuthGuardedMultisig storage slot names; do not replace them with additional
implementation comments, preserving the surrounding slot definitions unchanged.

In `@crates/miden-multisig-client/src/transaction/builder.rs`:
- Around line 564-569: Thread the destination guardian key scheme through
TransactionType::SwitchGuardian and its proposal metadata, rather than deriving
it from key_manager.scheme(). Update both
build_update_guardian_transaction_request call sites, including the proposal and
final execution branches, to pass the new guardian’s scheme so cross-scheme
rotations use the correct value.

In `@crates/server/src/services/configure_account.rs`:
- Around line 659-660: Update the mock error message in the configure-account
test fixture to replace the stale “OpenZeppelin slot” provider name with “Miden
Standards,” while preserving the existing guardian public-key path and error
text structure.

In `@docs/PRODUCTION.md`:
- Around line 105-106: Update the Miden 0.15 cutover guidance in the production
documentation to state that it preserves EVM rows, so it is not automatically a
safe encryption enablement window. Document that retained EVM plaintext rows
require separate handling before enabling encryption, since encryption must
start with an empty store and does not support mixed plaintext/ciphertext data.

In `@examples/web/package.json`:
- Around line 18-20: Align the dependency versions in the examples/web package
manifest: update the `@miden-sdk/miden-sdk` entry to a supported 0.14.x version
for the existing `@miden-sdk/miden-para` and `@miden-sdk/use-miden-para-react`
releases, or upgrade both Para packages to releases compatible with SDK 0.15.2.
Ensure all three Miden dependencies share a supported version range.

In
`@packages/miden-multisig-client/masm/account_components/auth/guarded_multisig.masm`:
- Around line 16-33: Update the docstring for auth_tx_guarded_multisig to state
that guardian verification is always performed, removing the misleading
“optional guardian verification” wording. Keep the implementation and
input/output documentation unchanged.

In `@packages/miden-multisig-client/src/account/storage.ts`:
- Around line 6-8: Remove the newly added inline comments from
MULTISIG_SLOT_NAMES and buildGuardianSlots in
packages/miden-multisig-client/src/account/storage.ts, and from
buildGuardedMultisigComponent and validateMultisigConfig in
packages/miden-multisig-client/src/account/builder.ts. Preserve the
implementation unchanged and move any rationale to documentation or the PR
description instead.

In `@packages/miden-multisig-client/src/transaction/updateProcedureThreshold.ts`:
- Around line 31-33: Remove the inline // comments in
updateProcedureThreshold.ts while leaving the surrounding implementation and
behavior unchanged.

---

Outside diff comments:
In `@examples/rust/src/multisig.rs`:
- Around line 105-132: Update build_multisig_config_advice to accept a
SignatureScheme parameter and use that parameter when emitting each approver’s
scheme-id felt, matching the SDK’s per-approver scheme handling. Update all
callers to pass the intended scheme instead of implicitly assuming Falcon.

---

Nitpick comments:
In `@crates/miden-multisig-client/src/account.rs`:
- Around line 9-28: The slot-name accessor wrappers are duplicated across the
multisig client and server inspector. Move multisig_threshold_config_slot,
multisig_approver_pubkeys_slot, multisig_procedure_thresholds_slot, and
guardian_public_key_slot from crates/miden-multisig-client/src/account.rs:9-28
into the shared guardian_shared module, then import and reuse them there;
likewise remove the duplicate multisig_threshold_config_slot,
multisig_approver_pubkeys_slot, and guardian_public_key_slot_name definitions
from crates/server/src/network/miden/account_inspector.rs:4-18 and use the
shared equivalents.

In `@crates/miden-multisig-client/src/transaction/configuration/config.rs`:
- Around line 21-50: Add focused unit-test coverage for
build_multisig_config_advice using a small fixed threshold, signer commitments,
and signature scheme. Assert the returned Vec<Felt> exactly matches the expected
header and reverse-order interleaved commitment/scheme fields, and verify the
returned config hash matches the hash of that payload.

In `@crates/server/src/testing/generate_fixtures.rs`:
- Around line 17-20: Update the slot-name constants near THRESHOLD_CONFIG_SLOT,
SIGNER_PUBKEYS_SLOT, and EXECUTED_TXS_SLOT to use the canonical definitions from
the multisig client account module, or reference that module as the source in
the comment instead of claiming they match multisig_guardian.rs. Remove the
duplicated hardcoded literals when importable canonical symbols such as
multisig_threshold_config_slot() are available.

In `@examples/smoke-web/miden-sdk-compat.mjs`:
- Line 9: Update the module re-export in miden-sdk-compat.mjs to use the public
`@miden-sdk/miden-sdk` package specifier or a documented public subpath instead of
the internal dist/st/eager.js path, while preserving the shim’s exported API.

In `@examples/web/miden-sdk-compat.mjs`:
- Line 9: Update the module re-export in miden-sdk-compat.mjs to resolve
`@miden-sdk/miden-sdk` through the package’s configured export or alias rather
than a relative node_modules path, while preserving the existing eager.js entry
point.

In `@packages/miden-multisig-client/src/inspector.ts`:
- Line 10: Remove the newly added inline `//` comments in inspector.ts,
including the storage-slot, version-guard, and guardian-read annotations at the
referenced locations. Keep the surrounding implementation and behavior
unchanged.

In `@packages/miden-multisig-client/src/transaction/updateGuardian.ts`:
- Around line 17-19: Remove the three-line inline comment immediately above
buildUpdateGuardianScript, leaving the implementation unchanged.

In `@packages/miden-multisig-client/src/transaction/updateSigners.ts`:
- Line 34: Remove the inline comments in updateSigners.ts, including the
interleave-order comment near the signer data construction and the
FeltArray-ownership comment around lines 48–50, while leaving the implementation
unchanged.

In `@packages/miden-multisig-client/tests/browser/determinism.spec.ts`:
- Around line 38-66: Merge the two tests into one test that calls
buildInBrowser(page) only once and retains all storage-layout, procedure, ID,
and commitment assertions. Remove the duplicate build invocation while
preserving the existing OVERRIDE_TARGET_PROCEDURES checks and expected-value
comparisons.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 39510513-8507-4609-8424-bbacfd002c0a

📥 Commits

Reviewing files that changed from the base of the PR and between 8222510 and 6a197c5.

⛔ Files ignored due to path filters (6)
  • Cargo.lock is excluded by !**/*.lock
  • examples/_shared/multisig-browser/package-lock.json is excluded by !**/package-lock.json
  • examples/operator-smoke-web/package-lock.json is excluded by !**/package-lock.json
  • examples/smoke-web/package-lock.json is excluded by !**/package-lock.json
  • examples/web/package-lock.json is excluded by !**/package-lock.json
  • packages/miden-multisig-client/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (96)
  • .github/workflows/ci.yml
  • Cargo.toml
  • crates/contracts/Cargo.toml
  • crates/contracts/README.md
  • crates/contracts/build.rs
  • crates/contracts/masm/account_components/auth/multisig.masm
  • crates/contracts/masm/account_components/auth/multisig_ecdsa.masm
  • crates/contracts/masm/account_components/auth/multisig_guardian.masm
  • crates/contracts/masm/account_components/auth/multisig_guardian_ecdsa.masm
  • crates/contracts/masm/auth/guardian.masm
  • crates/contracts/masm/auth/guardian_ecdsa.masm
  • crates/contracts/masm/auth/multisig.masm
  • crates/contracts/masm/auth/multisig_ecdsa.masm
  • crates/contracts/src/lib.rs
  • crates/contracts/src/main.rs
  • crates/contracts/src/masm_builder.rs
  • crates/contracts/src/multisig_guardian.rs
  • crates/contracts/tests/auth/multisig.rs
  • crates/miden-multisig-client/Cargo.toml
  • crates/miden-multisig-client/examples/procedure_roots.rs
  • crates/miden-multisig-client/src/account.rs
  • crates/miden-multisig-client/src/client/offline.rs
  • crates/miden-multisig-client/src/error.rs
  • crates/miden-multisig-client/src/execution.rs
  • crates/miden-multisig-client/src/procedures.rs
  • crates/miden-multisig-client/src/transaction/builder.rs
  • crates/miden-multisig-client/src/transaction/configuration/config.rs
  • crates/miden-multisig-client/src/transaction/guardian.rs
  • crates/miden-multisig-client/src/transaction/mod.rs
  • crates/server/Cargo.toml
  • crates/server/src/delta_summary/projection.rs
  • crates/server/src/network/miden/account_inspector.rs
  • crates/server/src/network/miden/mod.rs
  • crates/server/src/services/configure_account.rs
  • crates/server/src/testing/e2e/switch_guardian_canonicalization.rs
  • crates/server/src/testing/fixtures/account.json
  • crates/server/src/testing/fixtures/commitments.json
  • crates/server/src/testing/fixtures/delta_1.json
  • crates/server/src/testing/fixtures/delta_2.json
  • crates/server/src/testing/fixtures/delta_3.json
  • crates/server/src/testing/fixtures/keys.json
  • crates/server/src/testing/generate_fixtures.rs
  • crates/shared/src/lib.rs
  • docs/MULTISIG_SDK.md
  • docs/PRODUCTION.md
  • docs/guides/miden-dashboard/.gitignore
  • examples/_shared/multisig-browser/package.json
  • examples/_shared/multisig-browser/src/multisigApi.ts
  • examples/_shared/multisig-browser/src/types.ts
  • examples/operator-smoke-web/package.json
  • examples/rust/Cargo.toml
  • examples/rust/src/multisig.rs
  • examples/smoke-web/miden-sdk-compat.mjs
  • examples/smoke-web/package.json
  • examples/smoke-web/vite.config.ts
  • examples/web/miden-sdk-compat.mjs
  • examples/web/package.json
  • examples/web/src/components/LoadMultisigDialog.tsx
  • examples/web/src/lib/multisigApi.ts
  • examples/web/vite.config.ts
  • packages/miden-multisig-client/.gitignore
  • packages/miden-multisig-client/masm/account_components/auth/guarded_multisig.masm
  • packages/miden-multisig-client/masm/account_components/auth/multisig.masm
  • packages/miden-multisig-client/masm/account_components/auth/multisig_ecdsa.masm
  • packages/miden-multisig-client/masm/account_components/auth/multisig_guardian.masm
  • packages/miden-multisig-client/masm/account_components/auth/multisig_guardian_ecdsa.masm
  • packages/miden-multisig-client/masm/auth/guardian.masm
  • packages/miden-multisig-client/masm/auth/guardian_ecdsa.masm
  • packages/miden-multisig-client/masm/auth/multisig.masm
  • packages/miden-multisig-client/masm/auth/multisig_ecdsa.masm
  • packages/miden-multisig-client/package.json
  • packages/miden-multisig-client/playwright.config.ts
  • packages/miden-multisig-client/scripts/generate-masm.mjs
  • packages/miden-multisig-client/src/account/builder.test.ts
  • packages/miden-multisig-client/src/account/builder.ts
  • packages/miden-multisig-client/src/account/masm/account-components/auth.ts
  • packages/miden-multisig-client/src/account/masm/auth.ts
  • packages/miden-multisig-client/src/account/masm/index.ts
  • packages/miden-multisig-client/src/account/storage.ts
  • packages/miden-multisig-client/src/client.test.ts
  • packages/miden-multisig-client/src/client.ts
  • packages/miden-multisig-client/src/inspector.test.ts
  • packages/miden-multisig-client/src/inspector.ts
  • packages/miden-multisig-client/src/multisig.test.ts
  • packages/miden-multisig-client/src/procedures.ts
  • packages/miden-multisig-client/src/transaction/updateGuardian.ts
  • packages/miden-multisig-client/src/transaction/updateProcedureThreshold.ts
  • packages/miden-multisig-client/src/transaction/updateSigners.ts
  • packages/miden-multisig-client/src/types.ts
  • packages/miden-multisig-client/src/utils/signature.ts
  • packages/miden-multisig-client/tests/advice-feltarray-ownership.test.ts
  • packages/miden-multisig-client/tests/browser/determinism.spec.ts
  • packages/miden-multisig-client/tests/browser/harness.html
  • packages/miden-multisig-client/tests/browser/harness.ts
  • packages/miden-multisig-client/tests/browser/vite.config.ts
  • packages/miden-multisig-client/tests/masm.test.ts
💤 Files with no reviewable changes (28)
  • crates/contracts/build.rs
  • packages/miden-multisig-client/src/account/masm/index.ts
  • packages/miden-multisig-client/masm/account_components/auth/multisig_guardian_ecdsa.masm
  • packages/miden-multisig-client/masm/account_components/auth/multisig_ecdsa.masm
  • crates/contracts/masm/account_components/auth/multisig.masm
  • crates/contracts/masm/account_components/auth/multisig_ecdsa.masm
  • crates/contracts/masm/auth/guardian_ecdsa.masm
  • packages/miden-multisig-client/masm/auth/guardian_ecdsa.masm
  • crates/contracts/masm/account_components/auth/multisig_guardian_ecdsa.masm
  • crates/contracts/masm/auth/multisig.masm
  • crates/contracts/src/main.rs
  • examples/_shared/multisig-browser/src/types.ts
  • examples/_shared/multisig-browser/src/multisigApi.ts
  • crates/contracts/masm/account_components/auth/multisig_guardian.masm
  • packages/miden-multisig-client/masm/auth/guardian.masm
  • packages/miden-multisig-client/src/types.ts
  • packages/miden-multisig-client/masm/auth/multisig_ecdsa.masm
  • packages/miden-multisig-client/src/client.ts
  • packages/miden-multisig-client/src/account/masm/auth.ts
  • crates/contracts/masm/auth/guardian.masm
  • examples/web/src/lib/multisigApi.ts
  • packages/miden-multisig-client/src/client.test.ts
  • crates/contracts/src/lib.rs
  • packages/miden-multisig-client/masm/account_components/auth/multisig_guardian.masm
  • packages/miden-multisig-client/masm/auth/multisig.masm
  • packages/miden-multisig-client/masm/account_components/auth/multisig.masm
  • crates/contracts/src/masm_builder.rs
  • crates/contracts/masm/auth/multisig_ecdsa.masm

Comment thread .github/workflows/ci.yml
Comment thread crates/contracts/README.md
Comment thread crates/miden-multisig-client/src/account.rs Outdated
Comment on lines 564 to 569
// Build the GUARDIAN update transaction request (no signatures for proposal)
let tx_request = build_update_guardian_transaction_request(
new_guardian_pubkey,
key_manager.scheme(),
salt,
std::iter::empty(),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔒 Security & Privacy | 🟠 Major | 🏗️ Heavy lift

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo '== outline builder.rs =='
ast-grep outline crates/miden-multisig-client/src/transaction/builder.rs --view expanded || true

echo '== search relevant symbols =='
rg -n "SwitchGuardian|update_guardian_public_key|build_update_guardian_transaction_request|scheme\(" crates/miden-multisig-client/src/transaction/builder.rs crates/miden-multisig-client/src -g '*.rs' || true

echo '== lines around 520-700 =='
sed -n '520,700p' crates/miden-multisig-client/src/transaction/builder.rs

Repository: OpenZeppelin/guardian

Length of output: 14625


🏁 Script executed:

#!/bin/bash
set -euo pipefail
ast-grep outline crates/miden-multisig-client/src/transaction/builder.rs --view expanded || true
rg -n "SwitchGuardian|update_guardian_public_key|build_update_guardian_transaction_request|scheme\(" crates/miden-multisig-client/src -g '*.rs' || true
sed -n '540,700p' crates/miden-multisig-client/src/transaction/builder.rs

Repository: OpenZeppelin/guardian

Length of output: 12989


🏁 Script executed:

Inspect `crates/miden-multisig-client/src/transaction/builder.rs` around the guardian update transaction and locate any type that stores the destination guardian scheme.

Repository: OpenZeppelin/guardian

Length of output: 293


🏁 Script executed:

#!/bin/bash
set -euo pipefail
pwd
rg -n "build_update_guardian_transaction_request|update_guardian_public_key|SwitchGuardian|scheme\(" crates/miden-multisig-client/src -g '*.rs' || true
sed -n '540,700p' crates/miden-multisig-client/src/transaction/builder.rs

Repository: OpenZeppelin/guardian

Length of output: 12328


🌐 Web query:

"build_update_guardian_transaction_request new_guardian_pubkey key_manager.scheme() miden-multisig-client"

💡 Result:

In the miden-multisig-client Rust SDK, there is no direct function named build_update_guardian_transaction_request. Instead, updating a guardian is handled via the TransactionType::SwitchGuardian variant [1]. To initiate a transition to a new guardian, you typically use the following approach: 1. Create a SwitchGuardian transaction type: Use TransactionType::switch_guardian(new_endpoint, new_commitment), where new_commitment is the word representation of the new guardian's public key [1]. 2. Build the proposal: The SDK uses ProposalBuilder or MultisigClient::propose_transaction to create a proposal from the TransactionType [2][3]. Example pattern: let tx = TransactionType::switch_guardian("https://new-guardian.example.com", new_guardian_pubkey_word); let proposal = client.propose_transaction(tx).await?; 3. Key Management: The key_manager.scheme method is used to determine the signing scheme (e.g., Falcon or Ecdsa) for authentication during these workflows [4][5]. If you are working with the TypeScript SDK variant, you may encounter different builder methods such as buildUpdateSignersTransactionRequest, though the Rust SDK logic centers on the TransactionType enum for defining these operations [6][1]. If the goal is to perform an offline switch when the current guardian is unreachable, the SDK supports this via client.create_proposal_offline(tx) [7].

Citations:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo '== transaction/guardian.rs =='
sed -n '1,220p' crates/miden-multisig-client/src/transaction/guardian.rs

echo '== proposal.rs SwitchGuardian definition =='
sed -n '90,240p' crates/miden-multisig-client/src/proposal.rs

echo '== execution.rs guardian request callsite =='
sed -n '190,240p' crates/miden-multisig-client/src/execution.rs

Repository: OpenZeppelin/guardian

Length of output: 10097


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo '== execution.rs context around SwitchGuardian branch =='
sed -n '1,260p' crates/miden-multisig-client/src/execution.rs

echo '== search for any stored scheme in SwitchGuardian metadata or proposal =='
rg -n "new_guardian.*scheme|scheme.*new_guardian|guardian.*scheme|with_guardian_update_metadata|SwitchGuardian \{" crates/miden-multisig-client/src -g '*.rs'

Repository: OpenZeppelin/guardian

Length of output: 12938


Thread the destination guardian scheme through SwitchGuardian (crates/miden-multisig-client/src/transaction/builder.rs:564-569). build_update_guardian_transaction_request needs the scheme for new_guardian_pubkey, but this path and the final execution branch both pass key_manager.scheme(). Add the scheme to TransactionType::SwitchGuardian/proposal metadata and use it in both call sites, or cross-scheme guardian rotations will be built with the wrong scheme.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@crates/miden-multisig-client/src/transaction/builder.rs` around lines 564 -
569, Thread the destination guardian key scheme through
TransactionType::SwitchGuardian and its proposal metadata, rather than deriving
it from key_manager.scheme(). Update both
build_update_guardian_transaction_request call sites, including the proposal and
final execution branches, to pass the new guardian’s scheme so cross-scheme
rotations use the correct value.

Source: Coding guidelines

Comment thread crates/server/src/services/configure_account.rs Outdated
Comment thread docs/PRODUCTION.md Outdated
Comment thread examples/web/package.json Outdated
Comment thread packages/miden-multisig-client/masm/account_components/auth/guarded_multisig.masm Outdated
Comment thread packages/miden-multisig-client/src/account/storage.ts Outdated
Comment thread packages/miden-multisig-client/src/transaction/updateProcedureThreshold.ts Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Replaces Guardian’s locally-maintained multisig + guardian MASM custody contracts with the audited upstream miden-standards AuthGuardedMultisig component, and updates the Rust/TS SDKs + server wiring to match the new storage layout, procedure roots, and rotation semantics (including new determinism/parity gates).

Changes:

  • Switch custody account construction and tx-script compilation to miden::standards::auth::* (removing locally-vendored MASM and selectors).
  • Add runtime contract-version guards and cross-SDK parity tests (Vitest + Playwright) to prevent silent procedure-root drift.
  • Update server slot-name usage and fixtures to source slot identifiers from upstream accessors and regenerated commitments.

Reviewed changes

Copilot reviewed 93 out of 99 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
packages/miden-multisig-client/tests/masm.test.ts Narrows MASM constant validation to the single vendored guarded-multisig shell.
packages/miden-multisig-client/tests/browser/vite.config.ts Adds Vite config to serve built dist/ + WASM SDK for browser determinism tests.
packages/miden-multisig-client/tests/browser/harness.ts Browser harness that builds an account and exposes id/commitment/slot/procedure info for Playwright.
packages/miden-multisig-client/tests/browser/harness.html Static page to run the determinism harness.
packages/miden-multisig-client/tests/browser/determinism.spec.ts Playwright parity gate for storage layout + procedure presence + id/commitment equality.
packages/miden-multisig-client/tests/advice-feltarray-ownership.test.ts Regression test for FeltArray ownership/consumption when hashing + inserting into advice.
packages/miden-multisig-client/src/utils/signature.ts Exposes authSchemeId() for scheme-id encoding into storage/advice.
packages/miden-multisig-client/src/types.ts Removes guardianEnabled from the TS multisig config API surface.
packages/miden-multisig-client/src/transaction/updateSigners.ts Updates update-signers script/advice to use upstream multisig module + scheme-id interleaving.
packages/miden-multisig-client/src/transaction/updateProcedureThreshold.ts Switches to upstream set_procedure_threshold and stack-arg semantics.
packages/miden-multisig-client/src/transaction/updateGuardian.ts Switches guardian rotation to upstream module + stack args (no advice-map pubkey entry).
packages/miden-multisig-client/src/procedures.ts Regenerates pinned procedure roots; removes standalone guardian verify procedure root.
packages/miden-multisig-client/src/multisig.test.ts Updates tests for removed guardianEnabled and new guardian-ack semantics.
packages/miden-multisig-client/src/inspector.ts Updates slot names; adds pinned-contract-version guard before root-keyed reads; removes selector handling.
packages/miden-multisig-client/src/inspector.test.ts Updates inspector mocks/tests for new slot names and contract-version rejection.
packages/miden-multisig-client/src/client.ts Stops propagating removed guardianEnabled field from inspector results.
packages/miden-multisig-client/src/client.test.ts Updates client tests for removed guardianEnabled.
packages/miden-multisig-client/src/account/storage.ts Updates storage layout to upstream slot names; removes selector slot; adjusts guardian slots.
packages/miden-multisig-client/src/account/masm/index.ts Stops exporting deleted auth MASM module; keeps account-component export.
packages/miden-multisig-client/src/account/masm/account-components/auth.ts Generated guarded-multisig component MASM constant (new upstream shell).
packages/miden-multisig-client/src/account/builder.ts Builds guarded auth component by compiling only the vendored shell; uses buildWithoutSchemaCommitment().
packages/miden-multisig-client/src/account/builder.test.ts Updates builder tests to ensure no duplicate module re-linking; adds guardian≠signer invariant tests.
packages/miden-multisig-client/scripts/generate-masm.mjs Updates MASM generation to only vend/emit guarded-multisig account-component shell.
packages/miden-multisig-client/playwright.config.ts Adds Playwright config to run browser determinism tests via Vite + system Chrome.
packages/miden-multisig-client/package.json Pins @miden-sdk/miden-sdk to 0.15.2 and adds Playwright/Vite dev deps and browser test script.
packages/miden-multisig-client/masm/auth/guardian.masm Deletes locally-maintained guardian MASM.
packages/miden-multisig-client/masm/auth/guardian_ecdsa.masm Deletes locally-maintained guardian ECDSA MASM.
packages/miden-multisig-client/masm/account_components/auth/multisig.masm Deletes local multisig account-component shell.
packages/miden-multisig-client/masm/account_components/auth/multisig_guardian.masm Deletes local multisig+guardian account-component shell.
packages/miden-multisig-client/masm/account_components/auth/multisig_guardian_ecdsa.masm Deletes local multisig+guardian ECDSA account-component shell.
packages/miden-multisig-client/masm/account_components/auth/multisig_ecdsa.masm Deletes local multisig ECDSA account-component shell.
packages/miden-multisig-client/masm/account_components/auth/guarded_multisig.masm Adds vendored upstream guarded-multisig account-component shell.
packages/miden-multisig-client/.gitignore Ignores Playwright outputs.
examples/web/src/lib/multisigApi.ts Removes guardianEnabled from example account creation config.
examples/web/src/components/LoadMultisigDialog.tsx Updates UI to report guardian “Present/Not found” instead of enabled/disabled.
examples/web/package.json Bumps Miden SDK deps and adds dependency overrides.
examples/smoke-web/vite.config.ts Adjusts optimizeDeps exclusions (removes explicit miden-sdk exclude).
examples/smoke-web/package.json Bumps Miden SDK deps and adds dependency overrides.
examples/rust/src/multisig.rs Updates example scripts/advice layout and links upstream StandardsLib.
examples/rust/Cargo.toml Adds miden-standards dependency for upstream library linking.
examples/operator-smoke-web/package.json Bumps @miden-sdk/miden-sdk to 0.15.2.
examples/operator-smoke-web/package-lock.json Updates lockfile to reflect 0.15.2 SDK and platform packages.
examples/_shared/multisig-browser/src/types.ts Removes guardianEnabled from serialized detected-config type + serializer.
examples/_shared/multisig-browser/src/multisigApi.ts Removes guardianEnabled from shared example account creation config.
examples/_shared/multisig-browser/package.json Bumps Miden SDK deps and adds dependency overrides.
docs/PRODUCTION.md Documents irreversible Miden 0.15 cutover purge behavior and operator actions.
docs/MULTISIG_SDK.md Documents contract pinning policy, support table, and runtime mismatch behavior.
docs/guides/miden-dashboard/.gitignore Adds ignores for dashboard guide artifacts.
crates/shared/src/lib.rs Adds SignatureScheme -> AuthScheme mapping and scheme-id helper for guarded-multisig.
crates/server/src/testing/generate_fixtures.rs Updates fixture generation slot names to upstream slot identifiers.
crates/server/src/testing/fixtures/delta_3.json Regenerates fixture account_id/delta payload/commitments for upstream component.
crates/server/src/testing/fixtures/delta_2.json Regenerates fixture account_id/delta payload/commitments for upstream component.
crates/server/src/testing/fixtures/delta_1.json Regenerates fixture account_id/delta payload/commitments for upstream component.
crates/server/src/testing/fixtures/commitments.json Regenerates expected commitments for upstream component.
crates/server/src/testing/e2e/switch_guardian_canonicalization.rs Updates guardian rotation e2e to new stack-arg semantics and links upstream code.
crates/server/src/services/configure_account.rs Updates expected slot-name strings in tests to upstream guardian pub_key slot.
crates/server/src/network/miden/mod.rs Removes selector-based logic; uses upstream slot accessor for executed txs + guardian slot names.
crates/server/src/network/miden/account_inspector.rs Sources slot names from AuthGuardedMultisig::*_slot() accessors; updates detection logic.
crates/server/src/delta_summary/projection.rs Updates slot-name expectations in tests to upstream procedure_thresholds slot.
crates/server/Cargo.toml Expands e2e feature deps to include contracts testing feature.
crates/miden-multisig-client/src/transaction/mod.rs Improves kernel-drift doc comment clarity.
crates/miden-multisig-client/src/transaction/guardian.rs Updates guardian rotation tx construction for upstream stack-args + scheme id.
crates/miden-multisig-client/src/transaction/configuration/config.rs Switches scripts to StandardsLib; updates advice layout and procedure threshold call.
crates/miden-multisig-client/src/transaction/builder.rs Wires scheme into guardian rotation and updates procedure-threshold request signature.
crates/miden-multisig-client/src/procedures.rs Updates procedure roots and adds test to pin against upstream exported procedures.
crates/miden-multisig-client/src/execution.rs Wires scheme into guardian rotation final-tx requests and updates procedure threshold requests.
crates/miden-multisig-client/src/error.rs Adds UnsupportedContractVersion error for pinned-root mismatch.
crates/miden-multisig-client/src/client/offline.rs Wires scheme into offline guardian rotation export flow.
crates/miden-multisig-client/src/account.rs Uses upstream slot accessors; removes selector support; adds contract-version guard for root-keyed reads.
crates/miden-multisig-client/examples/procedure_roots.rs Updates example to source roots from upstream code exports and BasicWallet roots.
crates/miden-multisig-client/Cargo.toml Adds miden-confidential-contracts testing dev-dependency.
crates/contracts/src/multisig_guardian.rs Replaces local MASM builders with upstream AuthGuardedMultisigConfig/AuthGuardedMultisig facade.
crates/contracts/src/masm_builder.rs Removes local MASM assembler/build system (deleted).
crates/contracts/src/main.rs Removes unused binary main (deleted).
crates/contracts/src/lib.rs Removes masm_builder module export; keeps multisig_guardian.
crates/contracts/README.md Updates crate purpose/docs post-upstream adoption.
crates/contracts/masm/auth/multisig.masm Deletes local multisig MASM (deleted).
crates/contracts/masm/auth/guardian.masm Deletes local guardian MASM (deleted).
crates/contracts/masm/auth/guardian_ecdsa.masm Deletes local guardian ECDSA MASM (deleted).
crates/contracts/masm/account_components/auth/multisig.masm Deletes local account-component MASM (deleted).
crates/contracts/masm/account_components/auth/multisig_guardian.masm Deletes local account-component MASM (deleted).
crates/contracts/masm/account_components/auth/multisig_guardian_ecdsa.masm Deletes local account-component MASM (deleted).
crates/contracts/masm/account_components/auth/multisig_ecdsa.masm Deletes local account-component MASM (deleted).
crates/contracts/Cargo.toml Updates crate metadata; moves heavy deps to dev-deps and adds testing feature.
crates/contracts/build.rs Removes MASM build-script env wiring (deleted).
Cargo.toml Pins miden-standards exactly to =0.15.3 for parity.
.github/workflows/ci.yml Adds contract-behavior + TS SDK parity jobs (Vitest + Playwright determinism gate).
Files not reviewed (3)
  • examples/_shared/multisig-browser/package-lock.json: Generated file
  • examples/operator-smoke-web/package-lock.json: Generated file
  • packages/miden-multisig-client/package-lock.json: Generated file

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packages/miden-multisig-client/src/transaction/updateSigners.ts
Comment thread packages/miden-multisig-client/masm/account_components/auth/guarded_multisig.masm Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Consume multisig & guardian auth contracts from the upstream Miden standards package instead of vendoring MASM

5 participants