$ taskset -c 0-3 <pack>/install/released/node_modules/.bin/nightshade <pack>/findings/ledger-bound-preimage-publication/vulnerable.compact --config <pack>/findings/ledger-bound-preimage-publication/config.json --compiler <compact-toolchains>/0.34.0/compactc

MEDIUM — Ledger-bound private preimage is published [ledger-bound-preimage-publication]
<pack>/findings/ledger-bound-preimage-publication/vulnerable.compact:12:3
  12 |   published = disclose(secret);
     |   ^
Private value from ownerSecret reaches ledger-write published without a hiding transformation. A hash of this value is asserted equal to ledger ownerHash on the same potential successful path. Ledger operation data is public. If an untrusted observer obtains a reusable authentication secret through this boundary, secrecy is lost. An intentional reveal protocol may permit this flow.
Source: <pack>/findings/ledger-bound-preimage-publication/vulnerable.compact:10:18
Constraint: <pack>/findings/ledger-bound-preimage-publication/vulnerable.compact:11:3
Call path: update
Remediation: Keep reusable authentication preimages private; publish a suitable commitment or non-secret result. If this is intentional reveal, confirm that the revealed value grants no remaining authority and document that policy.

Semantic profile: compact-0.34.0-zkir2.
Baseline analysis: complete; selected rules: complete.
Rule coverage: 1 selected rule(s); 0 with incomplete entries.
1 finding(s), 0 suppressed, 0 baseline; 2/2 entrypoint(s) completed; analysis complete. Compiler validation passed.
