Prop AMM Teardown
The wall#4 other closed program

PancakeSwap

HpNfyc2Saw7RKkQd8nEL4khUcuPhQ7WwY1B2qjx8jxFqSolscan
0.00
USDC in the pot
0
backers
0
attempts
est. 2,832,787
transactions in 24 h
Chip in

USDC goes to this target's escrow with the Memo teardown:chip:HpNf…jxFq. You can take your share back any time before a PASS.

The wallet opens only when you click. Minimum 5 USDC.

Escrow GZ6uCg…cDgD44 · USDC account GjLK76…iMRKpS

print of ELF sha256 9ce4a4342cc1bf1d…, lock at 0.00% match

Snapshot.
Read from mainnet and frozen for this deploy slot.

Loader
Upgradeable loader (v3)
Program data
Upgrade authority
Last deploy slot
432,564,695
ELF sha256
9ce4a4342cc1bf1dbc7f94da433811593ebd8bcb3ae47487c74421726c0d1978
ELF size
1,292,056 bytes (1.23 MB)
Snapshot taken
2026-11-02 15:19 UTC
OtterSec verify
no verified build
Corpus
built by the judge machine: up to 1,000 recent mainnet instructions and 10,000 fuzzed variants; the real N is printed once it exists

Teardown kit.
Computed from the ELF and recent transactions, no AI. Hunters start here.

141,018
sBPF instructions in .text
824
functions reached by internal calls
7,111
internal call sites
15
syscalls used

Sections

.text1,186,320
.rodata27,759
.data.rel.ro13,688
.dynamic176
.dynsym456
.dynstr281
.rel.dyn62,432
.shstrtab72

Syscalls

abortsol_create_program_addresssol_get_clock_sysvarsol_get_rent_sysvarsol_get_return_datasol_invoke_signed_rustsol_log_sol_log_datasol_log_pubkeysol_memcmp_sol_memcpy_sol_memmove_sol_memset_sol_sha256sol_try_find_program_address

sBPF flags 0, names read from .dynsym

Largest functions

Offset in .textBytes
0x345f820,672
0x8b66016,832
0xd66d016,696
0x8000815,144
0x964b014,696
0x3cbe813,712
0x7741013,312
0x73a0012,280
0x4460012,160
0xaaf7812,144
0x1cd6811,984
0x396b811,192

Strings in .rodata (38)

FNotFoundTimedOut<
+o,amount:Fo
filename%\
(bytes
Deadlockdeadlockposition
jcalled `Result::unwrap()` on an `Err` valuesrc/accounts/account_loader.rs
The given account is not mutablecore/src/unicode/unicode_data.rsInstruction: DecreaseLiquidityV2
Yindex out of bounds: the len is
AccountNotAssociatedTokenAccount
Invalid first tick array accountInstruction: TransferRewardOwner
)Fpool_tick_array_bitmap_extensionliquidity must be greater than 0A signer constraint was violatedtick % tick_spacing must be zero
Square root price limit overflowAn owner constraint was violatedInstruction: IncreaseLiquidityV2ProgramError caused by account: src/lib.rssrc/extension/mod.rsmid > lensrc/de/mod.rsfailed to fill whole buffer()a Display i…
fromkind
baseSome
lineNone
MaxSeedLengthExceededInvalidSeedsIllegalOwnererror_nameerror_code_numbererror_msgerror_origincompared_valuesAccountNameTryFromIntErrorValuesPubkeysUnexpected variant index: CustomInvalidArgumentInvalidInstructionDataInva…
ConstraintHasOneConstraintSigneralloc/src/fmt.rsconnection reset) when slicing `metadata_programinput_vault_mintentity not foundhost unreachableinvalid filenamerange end index input_token_minttick_array_lower. Error Numb…
AccountNotSignerPermissionDeniedtick_array_upperno storage spaceAddrNotAvailablemetadata_account0123456789abcdefdivision by zeroInvalidProgramIdprograms/amm/src/states/config.rsprograms/amm/src/states/operation_account.r…
pancake-clmm
project_url
https://pancakeswap.finance
contacts
link:https://immunefi.com/bug-bounty/pancakeswap/information
policy
source_code
https://github.com/pancakeswap/pancake-clmm
preferred_languages
auditors
programs/amm/src/lib.rsInstruction: IdlCreateAccountanchor:idlInstruction: IdlResizeAccountdata_len should always be >= the current account spaceInstruction: IdlCloseAccountInstruction: IdlCreateBufferInstruction: IdlWri…
src/ser/mod.rs/home/runner/work/platform-tools/platform-tools/out/rust/library/alloc/src/raw_vec.rscalled `Result::unwrap()` on an `Err` valuesrc/generated/instructions/create_metadata_account_v3.rssrc/instruction.rs/hom…
src/state.rs/home/runner/work/platform-tools/platform-tools/out/rust/library/alloc/src/raw_vec.rssrc/instruction.rssrc/state.rsfailed to write whole buffer/home/runner/work/platform-tools/platform-tools/out/rust/library/…
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyzUnsupported PubkeyErrorsrc/lib.rsProgramDerivedAddressUnable to find a viable program address bump seed/home/runner/work/platform-tools/platform-tools/out/rust/li…
but the index is : { , {
,core/src/fmt/num.rs0x000102030405060708091011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798…
)14:EFIJNOde
INOWY^_
attempt to divide by zeroattempt to calculate the remainder with a divisor of zeronumber not in the range 0..=
range start index out of range for slice of length slice index starts at but ends at

This program embeds a security.txt; its contacts are the place to report anything found while reading it.

Instruction sample

18 instructions to this program in 18 recent transactions (15 reached by CPI), grouped by their first 8 bytes. A preview; the judge's corpus is the full set.

First 8 bytesCountAccountsData length
f8c69e91e17587c8912×2 13×4 15×2 16×141B×9
2b04ed0b1ac91e62917×941B×9

Full kit from the judge

Disassembly, discriminator map over the full corpus, writable and signer patterns, account sizes and owners, CPI targets: computed by the judge machine for this snapshot and published here.

Pot.
Every transfer in and out of the escrow, read from Solana.

0 USDC, no backers yet. The first chip-in opens this pot.

Attempts.
Match percentages and hashes. The source stays encrypted until the verdict.

No attempts yet. Submit a rebuild.

Upgrade history.
One snapshot per deploy slot. A submission is judged against the snapshot it targeted.

Deploy slotELF sha256SizeTaken
432,564,6959ce4a4342cc1bf1dbc7f94da433811593ebd8bcb3ae47487c74421726c0d19781.23 MB2026-11-02 15:19 UTC