TW
Tripwire
Find contracts. Test them. Review real vulns.

Analysis Run

019b3836-3609-700a-9d1e-def847612f25

complete
Chain ID
1
Address
Block Number
Created
Fri, Dec 19, 2025 8:03 PM
Review Summary

What survived the funnel

Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?

Confirmed
0
Validated
0
Source
Bytecode only
Review Backing
Not yet
Best current signal
Authorization based on tx.origin
crit 0 high 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
3515 artifact.fetch complete 1 / 3 3 months ago
3516 tool.cast_disasm complete 1 / 3 3 months ago
46404 analysis.bundle complete 1 / 3 2 weeks ago
46405 capability.graph complete 1 / 3 2 weeks ago
46406 detector.run complete 1 / 3 2 weeks ago
46407 validation.fork complete 1 / 3 2 weeks ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no
Implementation:
Verified Source: no

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate

No codex job recorded yet.

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
1
CREATE2
0
CALL-family (heavy)
1
EXT*/BALANCE
1
Total opcodes
1305
Flags
selfdestruct_present
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLDATASIZE
00000006: ISZERO
00000007: PUSH2 0x005e
0000000a: JUMPI
0000000b: PUSH1 0x00
0000000d: CALLDATALOAD
0000000e: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0000002c: SWAP1
0000002d: DIV
0000002e: DUP1
0000002f: PUSH4 0x41c0e1b5
00000034: EQ
00000035: PUSH2 0x00bc
00000038: JUMPI
00000039: DUP1
0000003a: PUSH4 0xa53a1adf
0000003f: EQ
00000040: PUSH2 0x00cb
00000043: JUMPI
00000044: DUP1
00000045: PUSH4 0xb69ef8a8
0000004a: EQ
0000004b: PUSH2 0x00e3
0000004e: JUMPI
0000004f: DUP1
00000050: PUSH4 0xfc82dcb9
00000055: EQ
00000056: PUSH2 0x0106
00000059: JUMPI
0000005a: PUSH2 0x005e
0000005d: JUMP
0000005e: JUMPDEST
0000005f: PUSH2 0x00ba
00000062: JUMPDEST
00000063: PUSH32 0x88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874
00000084: ORIGIN
00000085: CALLVALUE
00000086: PUSH1 0x40
00000088: MLOAD
00000089: DUP1
0000008a: DUP4
0000008b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000000a0: AND
000000a1: DUP2
000000a2: MSTORE
000000a3: PUSH1 0x20
000000a5: ADD
000000a6: DUP3
000000a7: DUP2
000000a8: MSTORE
000000a9: PUSH1 0x20
000000ab: ADD
000000ac: SWAP3
000000ad: POP
000000ae: POP
000000af: POP
000000b0: PUSH1 0x40
000000b2: MLOAD
000000b3: DUP1
000000b4: SWAP2
000000b5: SUB
000000b6: SWAP1
000000b7: LOG1
000000b8: JUMPDEST
000000b9: JUMP
000000ba: JUMPDEST
000000bb: STOP
000000bc: JUMPDEST
000000bd: PUSH2 0x00c9
000000c0: PUSH1 0x04
000000c2: DUP1
000000c3: POP
000000c4: POP
000000c5: PUSH2 0x067e
000000c8: JUMP
000000c9: JUMPDEST
000000ca: STOP
000000cb: JUMPDEST
000000cc: PUSH2 0x00e1
000000cf: PUSH1 0x04
000000d1: DUP1
000000d2: DUP1
000000d3: CALLDATALOAD
000000d4: SWAP1
000000d5: PUSH1 0x20
000000d7: ADD
000000d8: SWAP1
000000d9: SWAP2
000000da: SWAP1
000000db: POP
000000dc: POP
000000dd: PUSH2 0x04f2
000000e0: JUMP
000000e1: JUMPDEST
000000e2: STOP
000000e3: JUMPDEST
000000e4: PUSH2 0x00f0
000000e7: PUSH1 0x04
000000e9: DUP1
000000ea: POP
000000eb: POP
000000ec: PUSH2 0x06f5
000000ef: JUMP
000000f0: JUMPDEST
000000f1: PUSH1 0x40
000000f3: MLOAD
000000f4: DUP1
000000f5: DUP3
000000f6: DUP2
000000f7: MSTORE
000000f8: PUSH1 0x20
000000fa: ADD
000000fb: SWAP2
000000fc: POP
000000fd: POP
000000fe: PUSH1 0x40
00000100: MLOAD
00000101: DUP1
00000102: SWAP2
00000103: SUB
00000104: SWAP1
00000105: RETURN
00000106: JUMPDEST
00000107: PUSH2 0x0142
0000010a: PUSH1 0x04
0000010c: DUP1
0000010d: DUP1
0000010e: CALLDATALOAD
0000010f: SWAP1
00000110: PUSH1 0x20
00000112: ADD
00000113: SWAP1
00000114: SWAP2
00000115: SWAP1
00000116: DUP1
00000117: CALLDATALOAD
00000118: SWAP1
00000119: PUSH1 0x20
0000011b: ADD
0000011c: SWAP1
0000011d: SWAP2
0000011e: SWAP1
0000011f: DUP1
00000120: CALLDATALOAD
00000121: SWAP1
00000122: PUSH1 0x20
00000124: ADD
00000125: SWAP1
00000126: DUP3
00000127: ADD
00000128: DUP1
00000129: CALLDATALOAD
0000012a: SWAP1
0000012b: PUSH1 0x20
0000012d: ADD
0000012e: SWAP2
0000012f: SWAP1
00000130: SWAP2
00000131: SWAP3
00000132: SWAP1
00000133: DUP1
00000134: CALLDATALOAD
00000135: SWAP1
00000136: PUSH1 0x20
00000138: ADD
00000139: SWAP1
0000013a: SWAP2
0000013b: SWAP1
0000013c: POP
0000013d: POP
0000013e: PUSH2 0x0144
00000141: JUMP
00000142: JUMPDEST
00000143: STOP
00000144: JUMPDEST
00000145: PUSH1 0x00
00000147: PUSH1 0x00
00000149: PUSH1 0x00
0000014b: PUSH2 0x0153
0000014e: ORIGIN
0000014f: PUSH2 0x0929
00000152: JUMP
00000153: JUMPDEST
00000154: EQ
00000155: ISZERO
00000156: PUSH2 0x015e
00000159: JUMPI
0000015a: PUSH2 0x04e9
0000015d: JUMP
0000015e: JUMPDEST
0000015f: ORIGIN
00000160: DUP8
00000161: DUP8
00000162: DUP8
00000163: DUP8
00000164: NUMBER
00000165: DUP9
00000166: PUSH1 0x40
00000168: MLOAD
00000169: DUP1
0000016a: DUP9
0000016b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000180: AND
00000181: PUSH13 0x01000000000000000000000000
0000018f: MUL
00000190: DUP2
00000191: MSTORE
00000192: PUSH1 0x14
00000194: ADD
00000195: DUP8
00000196: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001ab: AND
000001ac: PUSH13 0x01000000000000000000000000
000001ba: MUL
000001bb: DUP2
000001bc: MSTORE
000001bd: PUSH1 0x14
000001bf: ADD
000001c0: DUP7
000001c1: DUP2
000001c2: MSTORE
000001c3: PUSH1 0x20
000001c5: ADD
000001c6: DUP6
000001c7: DUP6
000001c8: DUP1
000001c9: DUP3
000001ca: DUP5
000001cb: CALLDATACOPY
000001cc: DUP3
000001cd: ADD
000001ce: SWAP2
000001cf: POP
000001d0: POP
000001d1: DUP4
000001d2: DUP2
000001d3: MSTORE
000001d4: PUSH1 0x20
000001d6: ADD
000001d7: DUP3
000001d8: DUP2
000001d9: MSTORE
000001da: PUSH1 0x20
000001dc: ADD
000001dd: SWAP8
000001de: POP
000001df: POP
000001e0: POP
000001e1: POP
000001e2: POP
000001e3: POP
000001e4: POP
000001e5: POP
000001e6: PUSH1 0x40
000001e8: MLOAD
000001e9: DUP1
000001ea: SWAP2
000001eb: SUB
000001ec: SWAP1
000001ed: KECCAK256
000001ee: SWAP2
000001ef: POP
000001f0: PUSH1 0x80
000001f2: PUSH1 0x40
000001f4: MLOAD
000001f5: SWAP1
000001f6: DUP2
000001f7: ADD
000001f8: PUSH1 0x40
000001fa: MSTORE
000001fb: DUP1
000001fc: DUP9
000001fd: DUP2
000001fe: MSTORE
000001ff: PUSH1 0x20
00000201: ADD
00000202: DUP8
00000203: DUP2
00000204: MSTORE
00000205: PUSH1 0x20
00000207: ADD
00000208: DUP7
00000209: DUP7
0000020a: DUP1
0000020b: DUP1
0000020c: PUSH1 0x1f
0000020e: ADD
0000020f: PUSH1 0x20
00000211: DUP1
00000212: SWAP2
00000213: DIV
00000214: MUL
00000215: PUSH1 0x20
00000217: ADD
00000218: PUSH1 0x40
0000021a: MLOAD
0000021b: SWAP1
0000021c: DUP2
0000021d: ADD
0000021e: PUSH1 0x40
00000220: MSTORE
00000221: DUP1
00000222: SWAP4
00000223: SWAP3
00000224: SWAP2
00000225: SWAP1
00000226: DUP2
00000227: DUP2
00000228: MSTORE
00000229: PUSH1 0x20
0000022b: ADD
0000022c: DUP4
0000022d: DUP4
0000022e: DUP1
0000022f: DUP3
00000230: DUP5
00000231: CALLDATACOPY
00000232: DUP3
00000233: ADD
00000234: SWAP2
00000235: POP
00000236: POP
00000237: POP
00000238: POP
00000239: POP
0000023a: POP
0000023b: DUP2
0000023c: MSTORE
0000023d: PUSH1 0x20
0000023f: ADD
00000240: PUSH1 0x01
00000242: PUSH1 0x00
00000244: POP
00000245: SLOAD
00000246: DUP2
00000247: MSTORE
00000248: PUSH1 0x20
0000024a: ADD
0000024b: POP
0000024c: PUSH1 0x00
0000024e: PUSH1 0x00
00000250: POP
00000251: PUSH1 0x00
00000253: DUP5
00000254: DUP2
00000255: MSTORE
00000256: PUSH1 0x20
00000258: ADD
00000259: SWAP1
0000025a: DUP2
0000025b: MSTORE
0000025c: PUSH1 0x20
0000025e: ADD
0000025f: PUSH1 0x00
00000261: KECCAK256
00000262: PUSH1 0x00
00000264: POP
00000265: PUSH1 0x00
00000267: DUP3
00000268: ADD
00000269: MLOAD
0000026a: DUP2
0000026b: PUSH1 0x00
0000026d: ADD
0000026e: PUSH1 0x00
00000270: PUSH2 0x0100
00000273: EXP
00000274: DUP2
00000275: SLOAD
00000276: DUP2
00000277: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000028c: MUL
0000028d: NOT
0000028e: AND
0000028f: SWAP1
00000290: DUP4
00000291: MUL
00000292: OR
00000293: SWAP1
00000294: SSTORE
00000295: POP
00000296: PUSH1 0x20
00000298: DUP3
00000299: ADD
0000029a: MLOAD
0000029b: DUP2
0000029c: PUSH1 0x01
0000029e: ADD
0000029f: PUSH1 0x00
000002a1: POP
000002a2: SSTORE
000002a3: PUSH1 0x40
000002a5: DUP3
000002a6: ADD
000002a7: MLOAD
000002a8: DUP2
000002a9: PUSH1 0x02
000002ab: ADD
000002ac: PUSH1 0x00
000002ae: POP
000002af: SWAP1
000002b0: DUP1
000002b1: MLOAD
000002b2: SWAP1
000002b3: PUSH1 0x20
000002b5: ADD
000002b6: SWAP1
000002b7: DUP3
000002b8: DUP1
000002b9: SLOAD
000002ba: PUSH1 0x01
000002bc: DUP2
000002bd: PUSH1 0x01
000002bf: AND
000002c0: ISZERO
000002c1: PUSH2 0x0100
000002c4: MUL
000002c5: SUB
000002c6: AND
000002c7: PUSH1 0x02
000002c9: SWAP1
000002ca: DIV
000002cb: SWAP1
000002cc: PUSH1 0x00
000002ce: MSTORE
000002cf: PUSH1 0x20
000002d1: PUSH1 0x00
000002d3: KECCAK256
000002d4: SWAP1
000002d5: PUSH1 0x1f
000002d7: ADD
000002d8: PUSH1 0x20
000002da: SWAP1
000002db: DIV
000002dc: DUP2
000002dd: ADD
000002de: SWAP3
000002df: DUP3
000002e0: PUSH1 0x1f
000002e2: LT
000002e3: PUSH2 0x02f7
000002e6: JUMPI
000002e7: DUP1
000002e8: MLOAD
000002e9: PUSH1 0xff
000002eb: NOT
000002ec: AND
000002ed: DUP4
000002ee: DUP1
000002ef: ADD
000002f0: OR
000002f1: DUP6
000002f2: SSTORE
000002f3: PUSH2 0x0328
000002f6: JUMP
000002f7: JUMPDEST
000002f8: DUP3
000002f9: DUP1
000002fa: ADD
000002fb: PUSH1 0x01
000002fd: ADD
000002fe: DUP6
000002ff: SSTORE
00000300: DUP3
00000301: ISZERO
00000302: PUSH2 0x0328
00000305: JUMPI
00000306: SWAP2
00000307: DUP3
00000308: ADD
00000309: JUMPDEST
0000030a: DUP3
0000030b: DUP2
0000030c: GT
0000030d: ISZERO
0000030e: PUSH2 0x0327
00000311: JUMPI
00000312: DUP3
00000313: MLOAD
00000314: DUP3
00000315: PUSH1 0x00
00000317: POP
00000318: SSTORE
00000319: SWAP2
0000031a: PUSH1 0x20
0000031c: ADD
0000031d: SWAP2
0000031e: SWAP1
0000031f: PUSH1 0x01
00000321: ADD
00000322: SWAP1
00000323: PUSH2 0x0309
00000326: JUMP
00000327: JUMPDEST
00000328: JUMPDEST
00000329: POP
0000032a: SWAP1
0000032b: POP
0000032c: PUSH2 0x0353
0000032f: SWAP2
00000330: SWAP1
00000331: PUSH2 0x0335
00000334: JUMP
00000335: JUMPDEST
00000336: DUP1
00000337: DUP3
00000338: GT
00000339: ISZERO
0000033a: PUSH2 0x034f
0000033d: JUMPI
0000033e: PUSH1 0x00
00000340: DUP2
00000341: DUP2
00000342: POP
00000343: PUSH1 0x00
00000345: SWAP1
00000346: SSTORE
00000347: POP
00000348: PUSH1 0x01
0000034a: ADD
0000034b: PUSH2 0x0335
0000034e: JUMP
0000034f: JUMPDEST
00000350: POP
00000351: SWAP1
00000352: JUMP
00000353: JUMPDEST
00000354: POP
00000355: POP
00000356: PUSH1 0x60
00000358: DUP3
00000359: ADD
0000035a: MLOAD
0000035b: DUP2
0000035c: PUSH1 0x04
0000035e: ADD
0000035f: PUSH1 0x00
00000361: POP
00000362: SSTORE
00000363: SWAP1
00000364: POP
00000365: POP
00000366: PUSH1 0x00
00000368: SWAP1
00000369: POP
0000036a: PUSH2 0x0373
0000036d: DUP3
0000036e: DUP3
0000036f: PUSH2 0x0719
00000372: JUMP
00000373: JUMPDEST
00000374: ISZERO
00000375: PUSH2 0x0435
00000378: JUMPI
00000379: PUSH32 0x517b8b71a5c8eca0f08cf9bd556c970c22861321bf15915330aadb1ccf23fccb
0000039a: DUP3
0000039b: PUSH1 0x00
0000039d: PUSH1 0x00
0000039f: POP
000003a0: PUSH1 0x00
000003a2: DUP6
000003a3: DUP2
000003a4: MSTORE
000003a5: PUSH1 0x20
000003a7: ADD
000003a8: SWAP1
000003a9: DUP2
000003aa: MSTORE
000003ab: PUSH1 0x20
000003ad: ADD
000003ae: PUSH1 0x00
000003b0: KECCAK256
000003b1: PUSH1 0x00
000003b3: POP
000003b4: PUSH1 0x00
000003b6: ADD
000003b7: PUSH1 0x00
000003b9: SWAP1
000003ba: SLOAD
000003bb: SWAP1
000003bc: PUSH2 0x0100
000003bf: EXP
000003c0: SWAP1
000003c1: DIV
000003c2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003d7: AND
000003d8: PUSH1 0x00
000003da: PUSH1 0x00
000003dc: POP
000003dd: PUSH1 0x00
000003df: DUP7
000003e0: DUP2
000003e1: MSTORE
000003e2: PUSH1 0x20
000003e4: ADD
000003e5: SWAP1
000003e6: DUP2
000003e7: MSTORE
000003e8: PUSH1 0x20
000003ea: ADD
000003eb: PUSH1 0x00
000003ed: KECCAK256
000003ee: PUSH1 0x00
000003f0: POP
000003f1: PUSH1 0x01
000003f3: ADD
000003f4: PUSH1 0x00
000003f6: POP
000003f7: SLOAD
000003f8: PUSH1 0x40
000003fa: MLOAD
000003fb: DUP1
000003fc: DUP5
000003fd: DUP2
000003fe: MSTORE
000003ff: PUSH1 0x20
00000401: ADD
00000402: DUP4
00000403: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000418: AND
00000419: DUP2
0000041a: MSTORE
0000041b: PUSH1 0x20
0000041d: ADD
0000041e: DUP3
0000041f: DUP2
00000420: MSTORE
00000421: PUSH1 0x20
00000423: ADD
00000424: SWAP4
00000425: POP
00000426: POP
00000427: POP
00000428: POP
00000429: PUSH1 0x40
0000042b: MLOAD
0000042c: DUP1
0000042d: SWAP2
0000042e: SUB
0000042f: SWAP1
00000430: LOG1
00000431: PUSH2 0x04b1
00000434: JUMP
00000435: JUMPDEST
00000436: PUSH32 0x46b5bbfd4ffbad6cd27ec1497ba4390d6802cf878a8d7626b250fd6bbd99d770
00000457: DUP3
00000458: ORIGIN
00000459: DUP10
0000045a: DUP10
0000045b: PUSH1 0x40
0000045d: MLOAD
0000045e: DUP1
0000045f: DUP6
00000460: DUP2
00000461: MSTORE
00000462: PUSH1 0x20
00000464: ADD
00000465: DUP5
00000466: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000047b: AND
0000047c: DUP2
0000047d: MSTORE
0000047e: PUSH1 0x20
00000480: ADD
00000481: DUP4
00000482: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000497: AND
00000498: DUP2
00000499: MSTORE
0000049a: PUSH1 0x20
0000049c: ADD
0000049d: DUP3
0000049e: DUP2
0000049f: MSTORE
000004a0: PUSH1 0x20
000004a2: ADD
000004a3: SWAP5
000004a4: POP
000004a5: POP
000004a6: POP
000004a7: POP
000004a8: POP
000004a9: PUSH1 0x40
000004ab: MLOAD
000004ac: DUP1
000004ad: SWAP2
000004ae: SUB
000004af: SWAP1
000004b0: LOG1
000004b1: JUMPDEST
000004b2: PUSH32 0xb0d57fca91a8401b352e4501d05ca89540eae36a0858ccede6e9811b945a0cea
000004d3: DUP3
000004d4: PUSH1 0x40
000004d6: MLOAD
000004d7: DUP1
000004d8: DUP3
000004d9: DUP2
000004da: MSTORE
000004db: PUSH1 0x20
000004dd: ADD
000004de: SWAP2
000004df: POP
000004e0: POP
000004e1: PUSH1 0x40
000004e3: MLOAD
000004e4: DUP1
000004e5: SWAP2
000004e6: SUB
000004e7: SWAP1
000004e8: LOG1
000004e9: JUMPDEST
000004ea: POP
000004eb: POP
000004ec: POP
000004ed: POP
000004ee: POP
000004ef: POP
000004f0: POP
000004f1: JUMP
000004f2: JUMPDEST
000004f3: PUSH1 0x00
000004f5: PUSH1 0x00
000004f7: PUSH2 0x04ff
000004fa: ORIGIN
000004fb: PUSH2 0x0929
000004fe: JUMP
000004ff: JUMPDEST
00000500: EQ
00000501: ISZERO
00000502: PUSH2 0x050a
00000505: JUMPI
00000506: PUSH2 0x067a
00000509: JUMP
0000050a: JUMPDEST
0000050b: PUSH1 0x00
0000050d: PUSH1 0x00
0000050f: PUSH1 0x00
00000511: POP
00000512: PUSH1 0x00
00000514: DUP5
00000515: DUP2
00000516: MSTORE
00000517: PUSH1 0x20
00000519: ADD
0000051a: SWAP1
0000051b: DUP2
0000051c: MSTORE
0000051d: PUSH1 0x20
0000051f: ADD
00000520: PUSH1 0x00
00000522: KECCAK256
00000523: PUSH1 0x00
00000525: POP
00000526: PUSH1 0x01
00000528: ADD
00000529: PUSH1 0x00
0000052b: POP
0000052c: SLOAD
0000052d: GT
0000052e: ISZERO
0000052f: ISZERO
00000530: PUSH2 0x0538
00000533: JUMPI
00000534: PUSH2 0x067a
00000537: JUMP
00000538: JUMPDEST
00000539: PUSH1 0x01
0000053b: SWAP1
0000053c: POP
0000053d: PUSH2 0x0546
00000540: DUP3
00000541: DUP3
00000542: PUSH2 0x0719
00000545: JUMP
00000546: JUMPDEST
00000547: ISZERO
00000548: PUSH2 0x0640
0000054b: JUMPI
0000054c: PUSH32 0x517b8b71a5c8eca0f08cf9bd556c970c22861321bf15915330aadb1ccf23fccb
0000056d: DUP3
0000056e: PUSH1 0x00
00000570: PUSH1 0x00
00000572: POP
00000573: PUSH1 0x00
00000575: DUP6
00000576: DUP2
00000577: MSTORE
00000578: PUSH1 0x20
0000057a: ADD
0000057b: SWAP1
0000057c: DUP2
0000057d: MSTORE
0000057e: PUSH1 0x20
00000580: ADD
00000581: PUSH1 0x00
00000583: KECCAK256
00000584: PUSH1 0x00
00000586: POP
00000587: PUSH1 0x00
00000589: ADD
0000058a: PUSH1 0x00
0000058c: SWAP1
0000058d: SLOAD
0000058e: SWAP1
0000058f: PUSH2 0x0100
00000592: EXP
00000593: SWAP1
00000594: DIV
00000595: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005aa: AND
000005ab: PUSH1 0x00
000005ad: PUSH1 0x00
000005af: POP
000005b0: PUSH1 0x00
000005b2: DUP7
000005b3: DUP2
000005b4: MSTORE
000005b5: PUSH1 0x20
000005b7: ADD
000005b8: SWAP1
000005b9: DUP2
000005ba: MSTORE
000005bb: PUSH1 0x20
000005bd: ADD
000005be: PUSH1 0x00
000005c0: KECCAK256
000005c1: PUSH1 0x00
000005c3: POP
000005c4: PUSH1 0x01
000005c6: ADD
000005c7: PUSH1 0x00
000005c9: POP
000005ca: SLOAD
000005cb: PUSH1 0x40
000005cd: MLOAD
000005ce: DUP1
000005cf: DUP5
000005d0: DUP2
000005d1: MSTORE
000005d2: PUSH1 0x20
000005d4: ADD
000005d5: DUP4
000005d6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005eb: AND
000005ec: DUP2
000005ed: MSTORE
000005ee: PUSH1 0x20
000005f0: ADD
000005f1: DUP3
000005f2: DUP2
000005f3: MSTORE
000005f4: PUSH1 0x20
000005f6: ADD
000005f7: SWAP4
000005f8: POP
000005f9: POP
000005fa: POP
000005fb: POP
000005fc: PUSH1 0x40
000005fe: MLOAD
000005ff: DUP1
00000600: SWAP2
00000601: SUB
00000602: SWAP1
00000603: LOG1
00000604: PUSH32 0x7a1a5c65d20b5ec18e5c5b70225b2834b843551c8b153947a29ccf6716d64a13
00000625: PUSH1 0x01
00000627: PUSH1 0x40
00000629: MLOAD
0000062a: DUP1
0000062b: DUP3
0000062c: DUP2
0000062d: MSTORE
0000062e: PUSH1 0x20
00000630: ADD
00000631: SWAP2
00000632: POP
00000633: POP
00000634: PUSH1 0x40
00000636: MLOAD
00000637: DUP1
00000638: SWAP2
00000639: SUB
0000063a: SWAP1
0000063b: LOG1
0000063c: PUSH2 0x0679
0000063f: JUMP
00000640: JUMPDEST
00000641: PUSH32 0x7a1a5c65d20b5ec18e5c5b70225b2834b843551c8b153947a29ccf6716d64a13
00000662: PUSH1 0x00
00000664: PUSH1 0x40
00000666: MLOAD
00000667: DUP1
00000668: DUP3
00000669: DUP2
0000066a: MSTORE
0000066b: PUSH1 0x20
0000066d: ADD
0000066e: SWAP2
0000066f: POP
00000670: POP
00000671: PUSH1 0x40
00000673: MLOAD
00000674: DUP1
00000675: SWAP2
00000676: SUB
00000677: SWAP1
00000678: LOG1
00000679: JUMPDEST
0000067a: JUMPDEST
0000067b: POP
0000067c: POP
0000067d: JUMP
0000067e: JUMPDEST
0000067f: PUSH1 0x03
00000681: PUSH1 0x00
00000683: SWAP1
00000684: SLOAD
00000685: SWAP1
00000686: PUSH2 0x0100
00000689: EXP
0000068a: SWAP1
0000068b: DIV
0000068c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006a1: AND
000006a2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006b7: AND
000006b8: ORIGIN
000006b9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006ce: AND
000006cf: EQ
000006d0: ISZERO
000006d1: ISZERO
000006d2: PUSH2 0x06da
000006d5: JUMPI
000006d6: PUSH2 0x06f3
000006d9: JUMP
000006da: JUMPDEST
000006db: ORIGIN
000006dc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006f1: AND
000006f2: SELFDESTRUCT
000006f3: JUMPDEST
000006f4: JUMP
000006f5: JUMPDEST
000006f6: PUSH1 0x00
000006f8: ADDRESS
000006f9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000070e: AND
0000070f: BALANCE
00000710: SWAP1
00000711: POP
00000712: PUSH2 0x0716
00000715: JUMP
00000716: JUMPDEST
00000717: SWAP1
00000718: JUMP
00000719: JUMPDEST
0000071a: PUSH1 0x00
0000071c: PUSH1 0x00
0000071e: PUSH1 0x00
00000720: PUSH1 0x00
00000722: POP
00000723: PUSH1 0x00
00000725: DUP6
00000726: DUP2
00000727: MSTORE
00000728: PUSH1 0x20
0000072a: ADD
0000072b: SWAP1
0000072c: DUP2
0000072d: MSTORE
0000072e: PUSH1 0x20
00000730: ADD
00000731: PUSH1 0x00
00000733: KECCAK256
00000734: PUSH1 0x00
00000736: POP
00000737: SWAP1
00000738: POP
00000739: DUP1
0000073a: PUSH1 0x03
0000073c: ADD
0000073d: PUSH1 0x00
0000073f: POP
00000740: PUSH1 0x00
00000742: ORIGIN
00000743: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000758: AND
00000759: DUP2
0000075a: MSTORE
0000075b: PUSH1 0x20
0000075d: ADD
0000075e: SWAP1
0000075f: DUP2
00000760: MSTORE
00000761: PUSH1 0x20
00000763: ADD
00000764: PUSH1 0x00
00000766: KECCAK256
00000767: PUSH1 0x00
00000769: SWAP1
0000076a: SLOAD
0000076b: SWAP1
0000076c: PUSH2 0x0100
0000076f: EXP
00000770: SWAP1
00000771: DIV
00000772: PUSH1 0xff
00000774: AND
00000775: ISZERO
00000776: PUSH2 0x077e
00000779: JUMPI
0000077a: PUSH2 0x0922
0000077d: JUMP
0000077e: JUMPDEST
0000077f: PUSH1 0x01
00000781: DUP2
00000782: PUSH1 0x03
00000784: ADD
00000785: PUSH1 0x00
00000787: POP
00000788: PUSH1 0x00
0000078a: ORIGIN
0000078b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007a0: AND
000007a1: DUP2
000007a2: MSTORE
000007a3: PUSH1 0x20
000007a5: ADD
000007a6: SWAP1
000007a7: DUP2
000007a8: MSTORE
000007a9: PUSH1 0x20
000007ab: ADD
000007ac: PUSH1 0x00
000007ae: KECCAK256
000007af: PUSH1 0x00
000007b1: PUSH2 0x0100
000007b4: EXP
000007b5: DUP2
000007b6: SLOAD
000007b7: DUP2
000007b8: PUSH1 0xff
000007ba: MUL
000007bb: NOT
000007bc: AND
000007bd: SWAP1
000007be: DUP4
000007bf: MUL
000007c0: OR
000007c1: SWAP1
000007c2: SSTORE
000007c3: POP
000007c4: DUP1
000007c5: PUSH1 0x04
000007c7: ADD
000007c8: PUSH1 0x00
000007ca: DUP2
000007cb: DUP2
000007cc: POP
000007cd: SLOAD
000007ce: DUP1
000007cf: SWAP3
000007d0: SWAP2
000007d1: SWAP1
000007d2: PUSH1 0x01
000007d4: SWAP1
000007d5: SUB
000007d6: SWAP2
000007d7: SWAP1
000007d8: POP
000007d9: SSTORE
000007da: POP
000007db: DUP3
000007dc: ISZERO
000007dd: PUSH2 0x0836
000007e0: JUMPI
000007e1: PUSH32 0xdc9da68bd73c4161c8f5bc195573e6649390acdb7090a16542862b767eacac5a
00000802: DUP5
00000803: ORIGIN
00000804: PUSH1 0x40
00000806: MLOAD
00000807: DUP1
00000808: DUP4
00000809: DUP2
0000080a: MSTORE
0000080b: PUSH1 0x20
0000080d: ADD
0000080e: DUP3
0000080f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000824: AND
00000825: DUP2
00000826: MSTORE
00000827: PUSH1 0x20
00000829: ADD
0000082a: SWAP3
0000082b: POP
0000082c: POP
0000082d: POP
0000082e: PUSH1 0x40
00000830: MLOAD
00000831: DUP1
00000832: SWAP2
00000833: SUB
00000834: SWAP1
00000835: LOG1
00000836: JUMPDEST
00000837: PUSH1 0x00
00000839: DUP2
0000083a: PUSH1 0x04
0000083c: ADD
0000083d: PUSH1 0x00
0000083f: POP
00000840: SLOAD
00000841: EQ
00000842: ISZERO
00000843: PUSH2 0x0919
00000846: JUMPI
00000847: DUP1
00000848: PUSH1 0x00
0000084a: ADD
0000084b: PUSH1 0x00
0000084d: SWAP1
0000084e: SLOAD
0000084f: SWAP1
00000850: PUSH2 0x0100
00000853: EXP
00000854: SWAP1
00000855: DIV
00000856: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000086b: AND
0000086c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000881: AND
00000882: DUP2
00000883: PUSH1 0x01
00000885: ADD
00000886: PUSH1 0x00
00000888: POP
00000889: SLOAD
0000088a: DUP3
0000088b: PUSH1 0x02
0000088d: ADD
0000088e: PUSH1 0x00
00000890: POP
00000891: PUSH1 0x40
00000893: MLOAD
00000894: DUP1
00000895: DUP3
00000896: DUP1
00000897: SLOAD
00000898: PUSH1 0x01
0000089a: DUP2
0000089b: PUSH1 0x01
0000089d: AND
0000089e: ISZERO
0000089f: PUSH2 0x0100
000008a2: MUL
000008a3: SUB
000008a4: AND
000008a5: PUSH1 0x02
000008a7: SWAP1
000008a8: DIV
000008a9: DUP1
000008aa: ISZERO
000008ab: PUSH2 0x08f5
000008ae: JUMPI
000008af: DUP1
000008b0: PUSH1 0x1f
000008b2: LT
000008b3: PUSH2 0x08ca
000008b6: JUMPI
000008b7: PUSH2 0x0100
000008ba: DUP1
000008bb: DUP4
000008bc: SLOAD
000008bd: DIV
000008be: MUL
000008bf: DUP4
000008c0: MSTORE
000008c1: SWAP2
000008c2: PUSH1 0x20
000008c4: ADD
000008c5: SWAP2
000008c6: PUSH2 0x08f5
000008c9: JUMP
000008ca: JUMPDEST
000008cb: DUP3
000008cc: ADD
000008cd: SWAP2
000008ce: SWAP1
000008cf: PUSH1 0x00
000008d1: MSTORE
000008d2: PUSH1 0x20
000008d4: PUSH1 0x00
000008d6: KECCAK256
000008d7: SWAP1
000008d8: JUMPDEST
000008d9: DUP2
000008da: SLOAD
000008db: DUP2
000008dc: MSTORE
000008dd: SWAP1
000008de: PUSH1 0x01
000008e0: ADD
000008e1: SWAP1
000008e2: PUSH1 0x20
000008e4: ADD
000008e5: DUP1
000008e6: DUP4
000008e7: GT
000008e8: PUSH2 0x08d8
000008eb: JUMPI
000008ec: DUP3
000008ed: SWAP1
000008ee: SUB
000008ef: PUSH1 0x1f
000008f1: AND
000008f2: DUP3
000008f3: ADD
000008f4: SWAP2
000008f5: JUMPDEST
000008f6: POP
000008f7: POP
000008f8: SWAP2
000008f9: POP
000008fa: POP
000008fb: PUSH1 0x00
000008fd: PUSH1 0x40
000008ff: MLOAD
00000900: DUP1
00000901: DUP4
00000902: SUB
00000903: DUP2
00000904: DUP6
00000905: DUP8
00000906: PUSH2 0x8502
00000909: GAS
0000090a: SUB
0000090b: CALL
0000090c: SWAP3
0000090d: POP
0000090e: POP
0000090f: POP
00000910: POP
00000911: PUSH1 0x01
00000913: SWAP2
00000914: POP
00000915: PUSH2 0x0922
00000918: JUMP
00000919: JUMPDEST
0000091a: PUSH1 0x00
0000091c: SWAP2
0000091d: POP
0000091e: PUSH2 0x0922
00000921: JUMP
00000922: JUMPDEST
00000923: POP
00000924: SWAP3
00000925: SWAP2
00000926: POP
00000927: POP
00000928: JUMP
00000929: JUMPDEST
0000092a: PUSH1 0x00
0000092c: PUSH1 0x02
0000092e: PUSH1 0x00
00000930: POP
00000931: PUSH1 0x00
00000933: DUP4
00000934: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000949: AND
0000094a: DUP2
0000094b: MSTORE
0000094c: PUSH1 0x20
0000094e: ADD
0000094f: SWAP1
00000950: DUP2
00000951: MSTORE
00000952: PUSH1 0x20
00000954: ADD
00000955: PUSH1 0x00
00000957: KECCAK256
00000958: PUSH1 0x00
0000095a: SWAP1
0000095b: SLOAD
0000095c: SWAP1
0000095d: PUSH2 0x0100
00000960: EXP
00000961: SWAP1
00000962: DIV
00000963: PUSH1 0xff
00000965: AND
00000966: SWAP1
00000967: POP
00000968: PUSH2 0x096c
0000096b: JUMP
0000096c: JUMPDEST
0000096d: SWAP2
0000096e: SWAP1
0000096f: POP
00000970: JUMP
View stderr
Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. To mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment.

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high auth detector Authorization based on tx.origin 70 no
view
validation_json
{
    "reason": "missing sink mapping",
    "status": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x41c0e1b5",
            "selector": "0x41c0e1b5",
            "calldata_variants": [
                "0x41c0e1b5",
                "0x41c0e1b50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa53a1adf",
            "selector": "0xa53a1adf",
            "calldata_variants": [
                "0xa53a1adf",
                "0xa53a1adf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb69ef8a8",
            "selector": "0xb69ef8a8",
            "calldata_variants": [
                "0xb69ef8a8",
                "0xb69ef8a80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc82dcb9",
            "selector": "0xfc82dcb9",
            "calldata_variants": [
                "0xfc82dcb9",
                "0xfc82dcb90000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 132,
            "type": "tx_origin_used"
        },
        {
            "pc": 334,
            "type": "tx_origin_used"
        },
        {
            "pc": 351,
            "type": "tx_origin_used"
        },
        {
            "pc": 1112,
            "type": "tx_origin_used"
        },
        {
            "pc": 1274,
            "type": "tx_origin_used"
        },
        {
            "pc": 1720,
            "type": "tx_origin_used"
        },
        {
            "pc": 1755,
            "type": "tx_origin_used"
        },
        {
            "pc": 1858,
            "type": "tx_origin_used"
        },
        {
            "pc": 1930,
            "type": "tx_origin_used"
        },
        {
            "pc": 2051,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x04791b19759f0f8761fc75aa2f64537cf797e4a3978ad6612d4f830012d64e48
call_targets: 0xf612b490757840c60cfcb0950f589394ccdd5759
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x04791b19759f0f8761fc75aa2f64537cf797e4a3978ad6612d4f830012d64e48",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xf612b490757840c60cfcb0950f589394ccdd5759"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x41c0e1b5",
            "selector": "0x41c0e1b5",
            "calldata_variants": [
                "0x41c0e1b5",
                "0x41c0e1b50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa53a1adf",
            "selector": "0xa53a1adf",
            "calldata_variants": [
                "0xa53a1adf",
                "0xa53a1adf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb69ef8a8",
            "selector": "0xb69ef8a8",
            "calldata_variants": [
                "0xb69ef8a8",
                "0xb69ef8a80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc82dcb9",
            "selector": "0xfc82dcb9",
            "calldata_variants": [
                "0xfc82dcb9",
                "0xfc82dcb90000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 2315,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 1,
    "guards_detected": [
        {
            "pc": 132,
            "type": "tx_origin_used"
        },
        {
            "pc": 334,
            "type": "tx_origin_used"
        },
        {
            "pc": 351,
            "type": "tx_origin_used"
        },
        {
            "pc": 1112,
            "type": "tx_origin_used"
        },
        {
            "pc": 1274,
            "type": "tx_origin_used"
        },
        {
            "pc": 1720,
            "type": "tx_origin_used"
        },
        {
            "pc": 1755,
            "type": "tx_origin_used"
        },
        {
            "pc": 1858,
            "type": "tx_origin_used"
        },
        {
            "pc": 1930,
            "type": "tx_origin_used"
        },
        {
            "pc": 2051,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 1
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x04791b19759f0f8761fc75aa2f64537cf797e4a3978ad6612d4f830012d64e48
call_targets: 0xf612b490757840c60cfcb0950f589394ccdd5759
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x04791b19759f0f8761fc75aa2f64537cf797e4a3978ad6612d4f830012d64e48",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xf612b490757840c60cfcb0950f589394ccdd5759"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x41c0e1b5",
            "selector": "0x41c0e1b5",
            "calldata_variants": [
                "0x41c0e1b5",
                "0x41c0e1b50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa53a1adf",
            "selector": "0xa53a1adf",
            "calldata_variants": [
                "0xa53a1adf",
                "0xa53a1adf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb69ef8a8",
            "selector": "0xb69ef8a8",
            "calldata_variants": [
                "0xb69ef8a8",
                "0xb69ef8a80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc82dcb9",
            "selector": "0xfc82dcb9",
            "calldata_variants": [
                "0xfc82dcb9",
                "0xfc82dcb90000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 2315,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 1,
    "guards_detected": [
        {
            "pc": 132,
            "type": "tx_origin_used"
        },
        {
            "pc": 334,
            "type": "tx_origin_used"
        },
        {
            "pc": 351,
            "type": "tx_origin_used"
        },
        {
            "pc": 1112,
            "type": "tx_origin_used"
        },
        {
            "pc": 1274,
            "type": "tx_origin_used"
        },
        {
            "pc": 1720,
            "type": "tx_origin_used"
        },
        {
            "pc": 1755,
            "type": "tx_origin_used"
        },
        {
            "pc": 1858,
            "type": "tx_origin_used"
        },
        {
            "pc": 1930,
            "type": "tx_origin_used"
        },
        {
            "pc": 2051,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector SELFDESTRUCT reachable 45 no no
view
trace_id: 0xec164f26e8d45c9419acb8c76dfb13992d2acc05a5b9d3e72b3f2a0a7efa1cde
validation_json
{
    "sink": "SELFDESTRUCT",
    "errors": 0,
    "status": "unknown",
    "attempts": 8,
    "trace_id": "0xec164f26e8d45c9419acb8c76dfb13992d2acc05a5b9d3e72b3f2a0a7efa1cde",
    "confirmed": false,
    "trace_mode": "structLogs",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x41c0e1b5",
            "selector": "0x41c0e1b5",
            "calldata_variants": [
                "0x41c0e1b5",
                "0x41c0e1b50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa53a1adf",
            "selector": "0xa53a1adf",
            "calldata_variants": [
                "0xa53a1adf",
                "0xa53a1adf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb69ef8a8",
            "selector": "0xb69ef8a8",
            "calldata_variants": [
                "0xb69ef8a8",
                "0xb69ef8a80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc82dcb9",
            "selector": "0xfc82dcb9",
            "calldata_variants": [
                "0xfc82dcb9",
                "0xfc82dcb90000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 132,
            "type": "tx_origin_used"
        },
        {
            "pc": 334,
            "type": "tx_origin_used"
        },
        {
            "pc": 351,
            "type": "tx_origin_used"
        },
        {
            "pc": 1112,
            "type": "tx_origin_used"
        },
        {
            "pc": 1274,
            "type": "tx_origin_used"
        },
        {
            "pc": 1720,
            "type": "tx_origin_used"
        },
        {
            "pc": 1755,
            "type": "tx_origin_used"
        },
        {
            "pc": 1858,
            "type": "tx_origin_used"
        },
        {
            "pc": 1930,
            "type": "tx_origin_used"
        },
        {
            "pc": 2051,
            "type": "tx_origin_used"
        }
    ],
    "selfdestruct_count": 1
}