Merged
Conversation
Adds `zellic-audit-feb-2026` to the push and pull_request branch triggers in `seismic.yml` so the full CI suite runs on PRs into this branch.
…path (#31) ## Summary - `verify_proof`'s empty-root fast path hardcoded `expected_private: true` in the `ValueMismatch` error instead of using the caller-provided `expected_is_private` - One-line fix: `expected_private: true` → `expected_private: expected_is_private` Addresses [SeismicSystems/internal#209](SeismicSystems/internal#209).
## Summary - Empty proofs (or proofs starting with `EMPTY_STRING_CODE`) were accepted even with trailing junk nodes - Added `TrailingProofNodes` error variant; after accepting the empty node, verify no remaining elements exist Addresses [SeismicSystems/internal#207](SeismicSystems/internal#207)
## Summary - Proof nodes were decoded without size or count limits, allowing memory/CPU exhaustion via malicious proofs - Added `MAX_PROOF_NODE_SIZE` (1024 bytes) and `MAX_PROOF_NODES` (65) with upfront/per-iteration checks - Added `ProofNodeTooLarge` and `TooManyProofNodes` error variants Addresses [SeismicSystems/internal#206](SeismicSystems/internal#206).
## Summary - `process_branch` used `unreachable!` when an inline extension node's child decoded as a Leaf/Extension/EmptyRoot, allowing a malicious proof to trigger a panic (DoS) - Replaced with `ProofVerificationError::UnexpectedNodeChild` error return Addresses [SeismicSystems/internal#205](SeismicSystems/internal#205).
## Summary Cherry-pick of [PR #19](#19) onto `zellic-audit-feb-2026`. `process_branch` did not update `last_decoded_node_is_private` when decoding in-place leaf nodes, causing stale privacy flags in proof verification. Addresses [SeismicSystems/internal#208](SeismicSystems/internal#208). ## Test plan - Includes `private_inplace_leaf_proof_verification` regression test - All existing tests pass Co-authored-by: Samuel Laferriere <9342524+samlaf@users.noreply.github.com>
Contributor
|
This is good to merge |
Backmerge seismic (with veridise audit fixes) into zellic-audit-feb-2026 to prepare for PR merge into seismic. Resolves conflicts: - CI workflow: reset branches to [seismic] - Deduplicated tests present on both branches (cherry-picks)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.