Skip to content

[FINDING] lint_fv (b) BreaksHash eliminator bypass + (e) paren/arrow True-conclusion evasion #675

Description

@Nicola-Ceornea

Surface: fv · Severity: low (latent gate holes; no such shape in-tree today, grep-verified) · Evidence: PoC (regex replay + elaborated attack file, coordinator-reproduced) · Target: f91aa82

Defect (b): the BreaksHash firewall regex (lint_fv_invariants.sh:282) matches only ¬ BreaksHash / Not BreaksHash / BreaksHash → False. axiom breakElim {C : Prop} : BreaksHash → C passes all lints, and from it an UNCONDITIONAL sphincsDigest preimage-equality theorem elaborates — closure [breakElim, propext, Quot.sound, sha256_collision_resistance] — the exact shape the ∨-BreaksHash discipline exists to prevent. Ledger C3 only iterates the 18 pinned closures keys, so a new axiom consumed only by a new unpinned theorem escapes every gate. Live because the tree is routinely edited by LLM agents (the repo's own #14576 note).

Defect (e): the True-typed axiom matcher misses axiom x : (True), : ((True)), and : True → True (paren-wrapping and arrow-to-True conclusions — both provable vacuities wearing an axiom's name).

Fix: extend (b) to any BreaksHash → target and binder forms (h : BreaksHash) in axiom/theorem signatures; in (e), strip parens and take the arrow-chain conclusion before comparing to True; consider an env-wide axiom census (every axiom must be ledger-documented, not only those in pinned closures). Found 2026-08-20 FV red-team.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    findingAdversarial-review finding; evidence in docs/security/adversarial-review/findings/priority:lowNice to have / infrastructuresurface:fvAttack surface / subsystem: fv

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions