JELLEO Autonomous Solana audit
Cycle complete · no confirmed Critical/High
Audit report · cycle 20260507-004922-5059332

Hunt cycle · percolator-bounty3-wincondition.

Auditor
Kirill Sakharuk · kirill@jelleo.com
Customer
percolator-bounty3-wincondition
Window
cycle 20260507-004922-5059332
Cycle
20260507-004922-5059332
Engine SHA
5059332
Wrapper SHA
04b854e571
Generated
2026-05-08T22:33:22+00:00
0
Critical
0
High
0
Medium
0
Low
0
Info
confirmed · disclosed · fixed · verified
5Rejected (false positive)
Signed · Ed25519
MCowBQYDK2VwAyEAvCFSLBecPuNClei48PWjHuelHlBX9uYZo4wELbQ7b+k=
verify with audit-pipeline sign verify <file> <file>.sig --pubkey jelleo.ed25519.pub
public key at https://jelleo.com/keys/jelleo.ed25519.pub
Platform · v0.1
JELLEO · The underwriting layer for Solana DeFi.

percolator-bounty3-wincondition · hunt cycle

20260507-004922-5059332 · started 2026-05-07T00:49:22+00:00 · engine 5059332 · wrapper 04b854e571

01 — Cycle summary

Critical
4
High
1
Medium
0
Confirmed
0
Total verdicts
5
Critical 4 High 1 Medium 0 Low 0 Info 0

02 — Findings

SeverityHypothesisTitle VerdictStatusPoC
Critical W1-public-api-reaches-absorb-protocol-loss The helper absorb_protocol_loss at percolator.rs:4845 debits insurance without correspondingly debiting vault (V1 confir UNKNOWN / UNKNOWN rejected
Critical W2-resolve-flat-negative-via-touch-public resolve_flat_negative_with_context at percolator.rs:7123 calls absorb_protocol_loss(loss) when an account has position_b UNKNOWN / UNKNOWN rejected
Critical W3-resolved-mode-reconciliation-insurance-drain In Resolved-mode reconciliation, force_close_resolved_with_fee_not_atomic and reconcile_resolved_not_atomic eventually c UNKNOWN / UNKNOWN rejected
Critical W6-conservation-postcondition-coverage assert_public_postconditions is called at the end of every public mutating function. Verify whether this postcondition i UNKNOWN / UNKNOWN rejected
High W5-set-pnl-with-reserve-after-absorb resolve_flat_negative_with_context at line 7148 calls set_pnl_with_reserve(idx, 0, NoPositiveIncreaseAllowed, None) AFTE UNKNOWN / UNKNOWN rejected

A — Severity rubric

TierDefinition
CriticalDirect loss of user funds or full protocol takeover with no meaningful preconditions. Reachable from a permissionless instruction by any signer. Must be patched immediately.
HighSignificant loss of user funds or protocol invariant violation under realistic preconditions (specific market state, signer with limited but obtainable role). Patch should ship in next release.
MediumHardening issue, partial loss possible, or invariant violation requiring privileged signer or improbable state. Worth fixing in normal cadence.
LowMinor issue with no plausible path to fund loss. Code-quality or defense-in-depth concern.
InfoInformational. No security impact. Documentation or style suggestion.

B — Methodology

This cycle was produced by Jelleo's continuous, hypothesis-driven Solana audit loop. Every finding originates as a falsifiable invariant claim from a per-protocol hypothesis library, dispatched to multi-agent recon (Layer 1), promoted on contested verdicts via adversarial debate (Layer 1.5), and confirmed empirically via a cargo test proof-of-concept (Layer 2) before transitioning to confirmed. Confirmed findings auto-fire structural sibling derivation and cross-protocol propagation hooks, then move through a restricted lifecycle (new → triaged → confirmed → disclosed → fixed → verified). Every cycle is signed Ed25519 against the platform key — see the cover-page receipt.

Full spec: docs/methodology/ (eleven sections, §01–§10) · Live reference: jelleo.com/methodology.html · Inaugural disclosure: aeyakovenko/percolator-prog#39 (F7, 2026-04)