Skip to content

fuzz_cesr_import: panic inside cesride 0.6.4 indexer (deadly signal after ~3.75M execs) #404

Description

@bordumb

The scheduled fuzz job on main@36eb6d67 hit a genuine crash after ~3,751,844 executions of fuzz_cesr_import:

thread '<unnamed>' panicked at cesride-0.6.4/src/core/indexer/mod.rs:396:25
== ERROR: libFuzzer: deadly signal
artifact: crates/auths-keri/fuzz/artifacts/fuzz_cesr_import/crash-9e0a22d2513d2e3e80fb2809cd5d1e0b7c4555d9
  • The panic is inside the cesride dependency (Indexer construction), not in auths code — but it is reachable from fuzz_cesr_import's entry (attachment/indexed-signature import), i.e. attacker-supplied CESR bytes can panic the process instead of returning a typed decode error. The import path should catch/ward this input class before handing it to cesride (parse, don't panic), or cesride needs the upstream fix.
  • Unrelated to the witness write-path changes (PR Witness receipting write path: per-prefix KELs, client publication, KEL-anchored witness sets #403's two fuzz jobs passed on the identical Rust tree; this run's random corpus walk found the input). Reproduction: the crash artifact was written to the runner's ephemeral disk and the workflow uploads no artifacts, so re-run cargo +nightly fuzz run fuzz_cesr_import (see docs on the verifier strengthened battery for local setup) — at ~3.7M execs/coverage 1579 the input class should resurface quickly; then cargo fuzz tmin it.
  • Follow-up worth taking while there: make the fuzz workflow upload fuzz/artifacts/** on failure so findings survive the runner.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions