[codex] Harden verifier and tooling security#52
Draft
adamkrellenstein wants to merge 1 commit into
Draft
Conversation
Merging this PR will not alter performance
Comparing Footnotes
|
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.
Summary
Addresses the Codex Security scan findings on top of PR #50.
Root Cause
Several verifier and tooling paths trusted caller-controlled or environment-controlled inputs too early. In the verifier, oversized challenge batches and inflated proof depth could reach expensive code before cheap bounds checks. In tooling, mutable Docker image selection and broad writable mounts made local/CI Picus execution less reproducible than intended.
Impact
The verifier now rejects malformed or oversized inputs before expensive work, ledger roots carry enough depth policy to validate accepted historical roots, parsing helpers return errors instead of panicking, and developer tooling has safer defaults.
Validation
cargo check --workspacecargo test -p kontor-crypto-corecargo test -p kontor-crypto --test verifier_edge_cases -- --nocapturecargo test -p kontor-crypto --test stateless_verify -- --nocapturecargo test -p kontor-crypto ledger --lib -- --nocapturecargo metadata --manifest-path fuzz/Cargo.toml --locked --offline --format-version=1cargo check --manifest-path fuzz/Cargo.toml --locked --offline --testscargo fmt --all -- --checkcargo clippy --all-targets --all-features --workspace -- -D warningscargo test --all-features --workspacecargo nextest runwith 314 passed / 5 skipped, andcargo auditwith existing allowed RustSec warnings