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

Analysis Run

019b3844-8ef8-7020-8a0e-774937388a06

complete
Chain ID
1
Address
Block Number
Created
Fri, Dec 19, 2025 8:19 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
Untrusted DELEGATECALL target reachable
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
12361 artifact.fetch complete 1 / 3 3 months ago
12362 tool.cast_disasm complete 1 / 3 3 months ago
55068 analysis.bundle complete 1 / 3 1 week ago
55069 capability.graph complete 1 / 3 1 week ago
55070 detector.run complete 1 / 3 1 week ago
55071 validation.fork complete 1 / 3 1 week 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
5
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
1
EXT*/BALANCE
1
Total opcodes
1192
Flags
delegatecall_present
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x00ab
0000000c: JUMPI
0000000d: PUSH4 0xffffffff
00000012: PUSH1 0xe0
00000014: PUSH1 0x02
00000016: EXP
00000017: PUSH1 0x00
00000019: CALLDATALOAD
0000001a: DIV
0000001b: AND
0000001c: PUSH4 0x2039d9fd
00000021: DUP2
00000022: EQ
00000023: PUSH2 0x00c4
00000026: JUMPI
00000027: DUP1
00000028: PUSH4 0x22d40b13
0000002d: EQ
0000002e: PUSH2 0x00fc
00000031: JUMPI
00000032: DUP1
00000033: PUSH4 0x41228803
00000038: EQ
00000039: PUSH2 0x012d
0000003c: JUMPI
0000003d: DUP1
0000003e: PUSH4 0x4e7343ea
00000043: EQ
00000044: PUSH2 0x0156
00000047: JUMPI
00000048: DUP1
00000049: PUSH4 0x648a0c91
0000004e: EQ
0000004f: PUSH2 0x0185
00000052: JUMPI
00000053: DUP1
00000054: PUSH4 0x69820a80
00000059: EQ
0000005a: PUSH2 0x01a6
0000005d: JUMPI
0000005e: DUP1
0000005f: PUSH4 0x70a08231
00000064: EQ
00000065: PUSH2 0x01cd
00000068: JUMPI
00000069: DUP1
0000006a: PUSH4 0x98ea5fca
0000006f: EQ
00000070: PUSH2 0x01ee
00000073: JUMPI
00000074: DUP1
00000075: PUSH4 0xc0668179
0000007a: EQ
0000007b: PUSH2 0x01f6
0000007e: JUMPI
0000007f: DUP1
00000080: PUSH4 0xd767ee4d
00000085: EQ
00000086: PUSH2 0x020b
00000089: JUMPI
0000008a: DUP1
0000008b: PUSH4 0xe7663079
00000090: EQ
00000091: PUSH2 0x0223
00000094: JUMPI
00000095: DUP1
00000096: PUSH4 0xf3fef3a3
0000009b: EQ
0000009c: PUSH2 0x0238
0000009f: JUMPI
000000a0: DUP1
000000a1: PUSH4 0xf6b1b18b
000000a6: EQ
000000a7: PUSH2 0x025c
000000aa: JUMPI
000000ab: JUMPDEST
000000ac: PUSH1 0x01
000000ae: SLOAD
000000af: PUSH1 0x01
000000b1: PUSH1 0xa0
000000b3: PUSH1 0x02
000000b5: EXP
000000b6: SUB
000000b7: AND
000000b8: CALLER
000000b9: EQ
000000ba: PUSH2 0x00c2
000000bd: JUMPI
000000be: PUSH1 0x00
000000c0: DUP1
000000c1: REVERT
000000c2: JUMPDEST
000000c3: STOP
000000c4: JUMPDEST
000000c5: CALLVALUE
000000c6: DUP1
000000c7: ISZERO
000000c8: PUSH2 0x00d0
000000cb: JUMPI
000000cc: PUSH1 0x00
000000ce: DUP1
000000cf: REVERT
000000d0: JUMPDEST
000000d1: POP
000000d2: PUSH2 0x00e8
000000d5: PUSH1 0x01
000000d7: PUSH1 0xa0
000000d9: PUSH1 0x02
000000db: EXP
000000dc: SUB
000000dd: PUSH1 0x04
000000df: CALLDATALOAD
000000e0: AND
000000e1: PUSH1 0x24
000000e3: CALLDATALOAD
000000e4: PUSH2 0x027d
000000e7: JUMP
000000e8: JUMPDEST
000000e9: PUSH1 0x40
000000eb: DUP1
000000ec: MLOAD
000000ed: SWAP2
000000ee: ISZERO
000000ef: ISZERO
000000f0: DUP3
000000f1: MSTORE
000000f2: MLOAD
000000f3: SWAP1
000000f4: DUP2
000000f5: SWAP1
000000f6: SUB
000000f7: PUSH1 0x20
000000f9: ADD
000000fa: SWAP1
000000fb: RETURN
000000fc: JUMPDEST
000000fd: CALLVALUE
000000fe: DUP1
000000ff: ISZERO
00000100: PUSH2 0x0108
00000103: JUMPI
00000104: PUSH1 0x00
00000106: DUP1
00000107: REVERT
00000108: JUMPDEST
00000109: POP
0000010a: PUSH2 0x0111
0000010d: PUSH2 0x03b7
00000110: JUMP
00000111: JUMPDEST
00000112: PUSH1 0x40
00000114: DUP1
00000115: MLOAD
00000116: PUSH1 0x01
00000118: PUSH1 0xa0
0000011a: PUSH1 0x02
0000011c: EXP
0000011d: SUB
0000011e: SWAP1
0000011f: SWAP3
00000120: AND
00000121: DUP3
00000122: MSTORE
00000123: MLOAD
00000124: SWAP1
00000125: DUP2
00000126: SWAP1
00000127: SUB
00000128: PUSH1 0x20
0000012a: ADD
0000012b: SWAP1
0000012c: RETURN
0000012d: JUMPDEST
0000012e: CALLVALUE
0000012f: DUP1
00000130: ISZERO
00000131: PUSH2 0x0139
00000134: JUMPI
00000135: PUSH1 0x00
00000137: DUP1
00000138: REVERT
00000139: JUMPDEST
0000013a: POP
0000013b: PUSH2 0x00e8
0000013e: PUSH1 0x01
00000140: PUSH1 0xa0
00000142: PUSH1 0x02
00000144: EXP
00000145: SUB
00000146: PUSH1 0x04
00000148: CALLDATALOAD
00000149: AND
0000014a: PUSH1 0x24
0000014c: CALLDATALOAD
0000014d: PUSH1 0x44
0000014f: CALLDATALOAD
00000150: ISZERO
00000151: ISZERO
00000152: PUSH2 0x03c6
00000155: JUMP
00000156: JUMPDEST
00000157: CALLVALUE
00000158: DUP1
00000159: ISZERO
0000015a: PUSH2 0x0162
0000015d: JUMPI
0000015e: PUSH1 0x00
00000160: DUP1
00000161: REVERT
00000162: JUMPDEST
00000163: POP
00000164: PUSH2 0x00e8
00000167: PUSH1 0x01
00000169: PUSH1 0xa0
0000016b: PUSH1 0x02
0000016d: EXP
0000016e: SUB
0000016f: PUSH1 0x04
00000171: CALLDATALOAD
00000172: DUP2
00000173: AND
00000174: SWAP1
00000175: PUSH1 0x24
00000177: CALLDATALOAD
00000178: SWAP1
00000179: PUSH1 0x44
0000017b: CALLDATALOAD
0000017c: SWAP1
0000017d: PUSH1 0x64
0000017f: CALLDATALOAD
00000180: AND
00000181: PUSH2 0x03c6
00000184: JUMP
00000185: JUMPDEST
00000186: CALLVALUE
00000187: DUP1
00000188: ISZERO
00000189: PUSH2 0x0191
0000018c: JUMPI
0000018d: PUSH1 0x00
0000018f: DUP1
00000190: REVERT
00000191: JUMPDEST
00000192: POP
00000193: PUSH2 0x00e8
00000196: PUSH1 0x01
00000198: PUSH1 0xa0
0000019a: PUSH1 0x02
0000019c: EXP
0000019d: SUB
0000019e: PUSH1 0x04
000001a0: CALLDATALOAD
000001a1: AND
000001a2: PUSH2 0x03e0
000001a5: JUMP
000001a6: JUMPDEST
000001a7: CALLVALUE
000001a8: DUP1
000001a9: ISZERO
000001aa: PUSH2 0x01b2
000001ad: JUMPI
000001ae: PUSH1 0x00
000001b0: DUP1
000001b1: REVERT
000001b2: JUMPDEST
000001b3: POP
000001b4: PUSH2 0x01bb
000001b7: PUSH2 0x048e
000001ba: JUMP
000001bb: JUMPDEST
000001bc: PUSH1 0x40
000001be: DUP1
000001bf: MLOAD
000001c0: SWAP2
000001c1: DUP3
000001c2: MSTORE
000001c3: MLOAD
000001c4: SWAP1
000001c5: DUP2
000001c6: SWAP1
000001c7: SUB
000001c8: PUSH1 0x20
000001ca: ADD
000001cb: SWAP1
000001cc: RETURN
000001cd: JUMPDEST
000001ce: CALLVALUE
000001cf: DUP1
000001d0: ISZERO
000001d1: PUSH2 0x01d9
000001d4: JUMPI
000001d5: PUSH1 0x00
000001d7: DUP1
000001d8: REVERT
000001d9: JUMPDEST
000001da: POP
000001db: PUSH2 0x01bb
000001de: PUSH1 0x01
000001e0: PUSH1 0xa0
000001e2: PUSH1 0x02
000001e4: EXP
000001e5: SUB
000001e6: PUSH1 0x04
000001e8: CALLDATALOAD
000001e9: AND
000001ea: PUSH2 0x0494
000001ed: JUMP
000001ee: JUMPDEST
000001ef: PUSH2 0x00c2
000001f2: PUSH2 0x04af
000001f5: JUMP
000001f6: JUMPDEST
000001f7: CALLVALUE
000001f8: DUP1
000001f9: ISZERO
000001fa: PUSH2 0x0202
000001fd: JUMPI
000001fe: PUSH1 0x00
00000200: DUP1
00000201: REVERT
00000202: JUMPDEST
00000203: POP
00000204: PUSH2 0x0111
00000207: PUSH2 0x053b
0000020a: JUMP
0000020b: JUMPDEST
0000020c: CALLVALUE
0000020d: DUP1
0000020e: ISZERO
0000020f: PUSH2 0x0217
00000212: JUMPI
00000213: PUSH1 0x00
00000215: DUP1
00000216: REVERT
00000217: JUMPDEST
00000218: POP
00000219: PUSH2 0x00e8
0000021c: PUSH1 0x04
0000021e: CALLDATALOAD
0000021f: PUSH2 0x054a
00000222: JUMP
00000223: JUMPDEST
00000224: CALLVALUE
00000225: DUP1
00000226: ISZERO
00000227: PUSH2 0x022f
0000022a: JUMPI
0000022b: PUSH1 0x00
0000022d: DUP1
0000022e: REVERT
0000022f: JUMPDEST
00000230: POP
00000231: PUSH2 0x0111
00000234: PUSH2 0x0708
00000237: JUMP
00000238: JUMPDEST
00000239: CALLVALUE
0000023a: DUP1
0000023b: ISZERO
0000023c: PUSH2 0x0244
0000023f: JUMPI
00000240: PUSH1 0x00
00000242: DUP1
00000243: REVERT
00000244: JUMPDEST
00000245: POP
00000246: PUSH2 0x00e8
00000249: PUSH1 0x01
0000024b: PUSH1 0xa0
0000024d: PUSH1 0x02
0000024f: EXP
00000250: SUB
00000251: PUSH1 0x04
00000253: CALLDATALOAD
00000254: AND
00000255: PUSH1 0x24
00000257: CALLDATALOAD
00000258: PUSH2 0x0717
0000025b: JUMP
0000025c: JUMPDEST
0000025d: CALLVALUE
0000025e: DUP1
0000025f: ISZERO
00000260: PUSH2 0x0268
00000263: JUMPI
00000264: PUSH1 0x00
00000266: DUP1
00000267: REVERT
00000268: JUMPDEST
00000269: POP
0000026a: PUSH2 0x01bb
0000026d: PUSH1 0x01
0000026f: PUSH1 0xa0
00000271: PUSH1 0x02
00000273: EXP
00000274: SUB
00000275: PUSH1 0x04
00000277: CALLDATALOAD
00000278: AND
00000279: PUSH2 0x07a7
0000027c: JUMP
0000027d: JUMPDEST
0000027e: PUSH1 0x00
00000280: PUSH1 0x01
00000282: PUSH1 0xa0
00000284: PUSH1 0x02
00000286: EXP
00000287: SUB
00000288: DUP4
00000289: AND
0000028a: ISZERO
0000028b: ISZERO
0000028c: PUSH2 0x0321
0000028f: JUMPI
00000290: PUSH2 0x031a
00000293: PUSH1 0x80
00000295: PUSH1 0x40
00000297: MLOAD
00000298: SWAP1
00000299: DUP2
0000029a: ADD
0000029b: PUSH1 0x40
0000029d: MSTORE
0000029e: DUP1
0000029f: PUSH1 0x41
000002a1: DUP2
000002a2: MSTORE
000002a3: PUSH1 0x20
000002a5: ADD
000002a6: PUSH32 0x43616e6e6f74206465706f73697420657468657220766961206465706f736974
000002c7: DUP2
000002c8: MSTORE
000002c9: PUSH1 0x20
000002cb: ADD
000002cc: PUSH32 0x45524332302c2057616c6c65742e6465706f7369744552433230546f6b656e28
000002ed: DUP2
000002ee: MSTORE
000002ef: PUSH1 0x20
000002f1: ADD
000002f2: PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000
00000313: DUP2
00000314: MSTORE
00000315: POP
00000316: PUSH2 0x07b9
00000319: JUMP
0000031a: JUMPDEST
0000031b: SWAP1
0000031c: POP
0000031d: PUSH2 0x03b1
00000320: JUMP
00000321: JUMPDEST
00000322: PUSH1 0x03
00000324: SLOAD
00000325: PUSH1 0x40
00000327: DUP1
00000328: MLOAD
00000329: PUSH32 0x6465706f73697428616464726573732c75696e74323536290000000000000000
0000034a: DUP2
0000034b: MSTORE
0000034c: DUP2
0000034d: MLOAD
0000034e: SWAP1
0000034f: DUP2
00000350: SWAP1
00000351: SUB
00000352: PUSH1 0x18
00000354: ADD
00000355: DUP2
00000356: KECCAK256
00000357: PUSH4 0xffffffff
0000035c: PUSH1 0xe0
0000035e: PUSH1 0x02
00000360: EXP
00000361: SWAP2
00000362: DUP3
00000363: SWAP1
00000364: DIV
00000365: SWAP1
00000366: DUP2
00000367: AND
00000368: SWAP1
00000369: SWAP2
0000036a: MUL
0000036b: DUP3
0000036c: MSTORE
0000036d: PUSH1 0x01
0000036f: PUSH1 0xa0
00000371: PUSH1 0x02
00000373: EXP
00000374: SUB
00000375: DUP8
00000376: DUP2
00000377: AND
00000378: PUSH1 0x04
0000037a: DUP5
0000037b: ADD
0000037c: MSTORE
0000037d: PUSH1 0x24
0000037f: DUP4
00000380: ADD
00000381: DUP8
00000382: SWAP1
00000383: MSTORE
00000384: SWAP3
00000385: MLOAD
00000386: SWAP3
00000387: SWAP1
00000388: SWAP4
00000389: AND
0000038a: SWAP3
0000038b: SWAP2
0000038c: PUSH1 0x44
0000038e: DUP1
0000038f: DUP4
00000390: ADD
00000391: SWAP3
00000392: PUSH1 0x00
00000394: SWAP3
00000395: SWAP2
00000396: SWAP1
00000397: DUP3
00000398: SWAP1
00000399: SUB
0000039a: ADD
0000039b: DUP2
0000039c: DUP7
0000039d: GAS
0000039e: DELEGATECALL
0000039f: SWAP3
000003a0: POP
000003a1: POP
000003a2: POP
000003a3: ISZERO
000003a4: ISZERO
000003a5: PUSH2 0x03ad
000003a8: JUMPI
000003a9: PUSH1 0x00
000003ab: DUP1
000003ac: REVERT
000003ad: JUMPDEST
000003ae: POP
000003af: PUSH1 0x01
000003b1: JUMPDEST
000003b2: SWAP3
000003b3: SWAP2
000003b4: POP
000003b5: POP
000003b6: JUMP
000003b7: JUMPDEST
000003b8: PUSH1 0x03
000003ba: SLOAD
000003bb: PUSH1 0x01
000003bd: PUSH1 0xa0
000003bf: PUSH1 0x02
000003c1: EXP
000003c2: SUB
000003c3: AND
000003c4: DUP2
000003c5: JUMP
000003c6: JUMPDEST
000003c7: PUSH1 0x00
000003c9: CALLDATASIZE
000003ca: PUSH1 0x00
000003cc: PUSH1 0x40
000003ce: CALLDATACOPY
000003cf: PUSH1 0x20
000003d1: PUSH1 0x00
000003d3: CALLDATASIZE
000003d4: PUSH1 0x40
000003d6: PUSH1 0x03
000003d8: SLOAD
000003d9: GAS
000003da: DELEGATECALL
000003db: PUSH1 0x20
000003dd: PUSH1 0x00
000003df: RETURN
000003e0: JUMPDEST
000003e1: PUSH1 0x00
000003e3: DUP1
000003e4: SLOAD
000003e5: PUSH1 0x01
000003e7: PUSH1 0xa0
000003e9: PUSH1 0x02
000003eb: EXP
000003ec: SUB
000003ed: AND
000003ee: CALLER
000003ef: EQ
000003f0: PUSH2 0x045f
000003f3: JUMPI
000003f4: PUSH2 0x0458
000003f7: PUSH1 0x60
000003f9: PUSH1 0x40
000003fb: MLOAD
000003fc: SWAP1
000003fd: DUP2
000003fe: ADD
000003ff: PUSH1 0x40
00000401: MSTORE
00000402: DUP1
00000403: PUSH1 0x2d
00000405: DUP2
00000406: MSTORE
00000407: PUSH1 0x20
00000409: ADD
0000040a: PUSH32 0x6d73672e73656e64657220213d206f776e65725f2c2057616c6c65742e757064
0000042b: DUP2
0000042c: MSTORE
0000042d: PUSH1 0x20
0000042f: ADD
00000430: PUSH32 0x61746545786368616e6765282900000000000000000000000000000000000000
00000451: DUP2
00000452: MSTORE
00000453: POP
00000454: PUSH2 0x07b9
00000457: JUMP
00000458: JUMPDEST
00000459: SWAP1
0000045a: POP
0000045b: PUSH2 0x0489
0000045e: JUMP
0000045f: JUMPDEST
00000460: POP
00000461: PUSH1 0x01
00000463: DUP1
00000464: SLOAD
00000465: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000047a: NOT
0000047b: AND
0000047c: PUSH1 0x01
0000047e: PUSH1 0xa0
00000480: PUSH1 0x02
00000482: EXP
00000483: SUB
00000484: DUP4
00000485: AND
00000486: OR
00000487: DUP2
00000488: SSTORE
00000489: JUMPDEST
0000048a: SWAP2
0000048b: SWAP1
0000048c: POP
0000048d: JUMP
0000048e: JUMPDEST
0000048f: PUSH1 0x04
00000491: SLOAD
00000492: DUP2
00000493: JUMP
00000494: JUMPDEST
00000495: PUSH1 0x01
00000497: PUSH1 0xa0
00000499: PUSH1 0x02
0000049b: EXP
0000049c: SUB
0000049d: AND
0000049e: PUSH1 0x00
000004a0: SWAP1
000004a1: DUP2
000004a2: MSTORE
000004a3: PUSH1 0x02
000004a5: PUSH1 0x20
000004a7: MSTORE
000004a8: PUSH1 0x40
000004aa: SWAP1
000004ab: KECCAK256
000004ac: SLOAD
000004ad: SWAP1
000004ae: JUMP
000004af: JUMPDEST
000004b0: PUSH1 0x03
000004b2: SLOAD
000004b3: PUSH1 0x40
000004b5: DUP1
000004b6: MLOAD
000004b7: PUSH32 0x6465706f73697428616464726573732c75696e74323536290000000000000000
000004d8: DUP2
000004d9: MSTORE
000004da: DUP2
000004db: MLOAD
000004dc: SWAP1
000004dd: DUP2
000004de: SWAP1
000004df: SUB
000004e0: PUSH1 0x18
000004e2: ADD
000004e3: DUP2
000004e4: KECCAK256
000004e5: PUSH4 0xffffffff
000004ea: PUSH1 0xe0
000004ec: PUSH1 0x02
000004ee: EXP
000004ef: SWAP2
000004f0: DUP3
000004f1: SWAP1
000004f2: DIV
000004f3: SWAP1
000004f4: DUP2
000004f5: AND
000004f6: SWAP1
000004f7: SWAP2
000004f8: MUL
000004f9: DUP3
000004fa: MSTORE
000004fb: PUSH1 0x00
000004fd: PUSH1 0x04
000004ff: DUP4
00000500: ADD
00000501: DUP2
00000502: SWAP1
00000503: MSTORE
00000504: CALLVALUE
00000505: PUSH1 0x24
00000507: DUP5
00000508: ADD
00000509: MSTORE
0000050a: SWAP3
0000050b: MLOAD
0000050c: PUSH1 0x01
0000050e: PUSH1 0xa0
00000510: PUSH1 0x02
00000512: EXP
00000513: SUB
00000514: SWAP1
00000515: SWAP5
00000516: AND
00000517: SWAP4
00000518: SWAP1
00000519: SWAP3
0000051a: PUSH1 0x44
0000051c: DUP1
0000051d: DUP5
0000051e: ADD
0000051f: SWAP4
00000520: SWAP2
00000521: SWAP3
00000522: SWAP2
00000523: DUP3
00000524: SWAP1
00000525: SUB
00000526: ADD
00000527: DUP2
00000528: DUP7
00000529: GAS
0000052a: DELEGATECALL
0000052b: SWAP3
0000052c: POP
0000052d: POP
0000052e: POP
0000052f: ISZERO
00000530: ISZERO
00000531: PUSH2 0x0539
00000534: JUMPI
00000535: PUSH1 0x00
00000537: DUP1
00000538: REVERT
00000539: JUMPDEST
0000053a: JUMP
0000053b: JUMPDEST
0000053c: PUSH1 0x01
0000053e: SLOAD
0000053f: PUSH1 0x01
00000541: PUSH1 0xa0
00000543: PUSH1 0x02
00000545: EXP
00000546: SUB
00000547: AND
00000548: DUP2
00000549: JUMP
0000054a: JUMPDEST
0000054b: PUSH1 0x00
0000054d: DUP1
0000054e: SLOAD
0000054f: DUP2
00000550: SWAP1
00000551: PUSH1 0x01
00000553: PUSH1 0xa0
00000555: PUSH1 0x02
00000557: EXP
00000558: SUB
00000559: AND
0000055a: CALLER
0000055b: EQ
0000055c: PUSH2 0x05cb
0000055f: JUMPI
00000560: PUSH2 0x05c4
00000563: PUSH1 0x60
00000565: PUSH1 0x40
00000567: MLOAD
00000568: SWAP1
00000569: DUP2
0000056a: ADD
0000056b: PUSH1 0x40
0000056d: MSTORE
0000056e: DUP1
0000056f: PUSH1 0x2a
00000571: DUP2
00000572: MSTORE
00000573: PUSH1 0x20
00000575: ADD
00000576: PUSH32 0x6d73672e73656e64657220213d206f776e65725f2c2057616c6c65742e757064
00000597: DUP2
00000598: MSTORE
00000599: PUSH1 0x20
0000059b: ADD
0000059c: PUSH32 0x6174654c6f676963282900000000000000000000000000000000000000000000
000005bd: DUP2
000005be: MSTORE
000005bf: POP
000005c0: PUSH2 0x07b9
000005c3: JUMP
000005c4: JUMPDEST
000005c5: SWAP2
000005c6: POP
000005c7: PUSH2 0x0702
000005ca: JUMP
000005cb: JUMPDEST
000005cc: PUSH1 0x05
000005ce: SLOAD
000005cf: PUSH1 0x40
000005d1: DUP1
000005d2: MLOAD
000005d3: PUSH32 0xd526d33200000000000000000000000000000000000000000000000000000000
000005f4: DUP2
000005f5: MSTORE
000005f6: PUSH1 0x04
000005f8: DUP2
000005f9: ADD
000005fa: DUP7
000005fb: SWAP1
000005fc: MSTORE
000005fd: SWAP1
000005fe: MLOAD
000005ff: PUSH1 0x01
00000601: PUSH1 0xa0
00000603: PUSH1 0x02
00000605: EXP
00000606: SUB
00000607: SWAP1
00000608: SWAP3
00000609: AND
0000060a: SWAP2
0000060b: PUSH4 0xd526d332
00000610: SWAP2
00000611: PUSH1 0x24
00000613: DUP1
00000614: DUP3
00000615: ADD
00000616: SWAP3
00000617: PUSH1 0x20
00000619: SWAP3
0000061a: SWAP1
0000061b: SWAP2
0000061c: SWAP1
0000061d: DUP3
0000061e: SWAP1
0000061f: SUB
00000620: ADD
00000621: DUP2
00000622: PUSH1 0x00
00000624: DUP8
00000625: DUP1
00000626: EXTCODESIZE
00000627: ISZERO
00000628: DUP1
00000629: ISZERO
0000062a: PUSH2 0x0632
0000062d: JUMPI
0000062e: PUSH1 0x00
00000630: DUP1
00000631: REVERT
00000632: JUMPDEST
00000633: POP
00000634: GAS
00000635: CALL
00000636: ISZERO
00000637: DUP1
00000638: ISZERO
00000639: PUSH2 0x0646
0000063c: JUMPI
0000063d: RETURNDATASIZE
0000063e: PUSH1 0x00
00000640: DUP1
00000641: RETURNDATACOPY
00000642: RETURNDATASIZE
00000643: PUSH1 0x00
00000645: REVERT
00000646: JUMPDEST
00000647: POP
00000648: POP
00000649: POP
0000064a: POP
0000064b: PUSH1 0x40
0000064d: MLOAD
0000064e: RETURNDATASIZE
0000064f: PUSH1 0x20
00000651: DUP2
00000652: LT
00000653: ISZERO
00000654: PUSH2 0x065c
00000657: JUMPI
00000658: PUSH1 0x00
0000065a: DUP1
0000065b: REVERT
0000065c: JUMPDEST
0000065d: POP
0000065e: MLOAD
0000065f: SWAP1
00000660: POP
00000661: PUSH1 0x01
00000663: PUSH1 0xa0
00000665: PUSH1 0x02
00000667: EXP
00000668: SUB
00000669: DUP2
0000066a: AND
0000066b: ISZERO
0000066c: ISZERO
0000066d: PUSH2 0x06d5
00000670: JUMPI
00000671: PUSH2 0x05c4
00000674: PUSH1 0x60
00000676: PUSH1 0x40
00000678: MLOAD
00000679: SWAP1
0000067a: DUP2
0000067b: ADD
0000067c: PUSH1 0x40
0000067e: MSTORE
0000067f: DUP1
00000680: PUSH1 0x25
00000682: DUP2
00000683: MSTORE
00000684: PUSH1 0x20
00000686: ADD
00000687: PUSH32 0x496e76616c69642076657273696f6e2c2057616c6c65742e7570646174654c6f
000006a8: DUP2
000006a9: MSTORE
000006aa: PUSH1 0x20
000006ac: ADD
000006ad: PUSH32 0x6769632829000000000000000000000000000000000000000000000000000000
000006ce: DUP2
000006cf: MSTORE
000006d0: POP
000006d1: PUSH2 0x07b9
000006d4: JUMP
000006d5: JUMPDEST
000006d6: PUSH1 0x03
000006d8: DUP1
000006d9: SLOAD
000006da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006ef: NOT
000006f0: AND
000006f1: PUSH1 0x01
000006f3: PUSH1 0xa0
000006f5: PUSH1 0x02
000006f7: EXP
000006f8: SUB
000006f9: DUP4
000006fa: AND
000006fb: OR
000006fc: SWAP1
000006fd: SSTORE
000006fe: PUSH1 0x01
00000700: SWAP2
00000701: POP
00000702: JUMPDEST
00000703: POP
00000704: SWAP2
00000705: SWAP1
00000706: POP
00000707: JUMP
00000708: JUMPDEST
00000709: PUSH1 0x00
0000070b: SLOAD
0000070c: PUSH1 0x01
0000070e: PUSH1 0xa0
00000710: PUSH1 0x02
00000712: EXP
00000713: SUB
00000714: AND
00000715: DUP2
00000716: JUMP
00000717: JUMPDEST
00000718: PUSH1 0x00
0000071a: DUP1
0000071b: SLOAD
0000071c: PUSH1 0x01
0000071e: PUSH1 0xa0
00000720: PUSH1 0x02
00000722: EXP
00000723: SUB
00000724: AND
00000725: CALLER
00000726: EQ
00000727: PUSH2 0x078f
0000072a: JUMPI
0000072b: PUSH2 0x031a
0000072e: PUSH1 0x60
00000730: PUSH1 0x40
00000732: MLOAD
00000733: SWAP1
00000734: DUP2
00000735: ADD
00000736: PUSH1 0x40
00000738: MSTORE
00000739: DUP1
0000073a: PUSH1 0x26
0000073c: DUP2
0000073d: MSTORE
0000073e: PUSH1 0x20
00000740: ADD
00000741: PUSH32 0x6d73672e73656e64657220213d206f776e65722c2057616c6c65742e77697468
00000762: DUP2
00000763: MSTORE
00000764: PUSH1 0x20
00000766: ADD
00000767: PUSH32 0x6472617728290000000000000000000000000000000000000000000000000000
00000788: DUP2
00000789: MSTORE
0000078a: POP
0000078b: PUSH2 0x07b9
0000078e: JUMP
0000078f: JUMPDEST
00000790: CALLDATASIZE
00000791: PUSH1 0x00
00000793: PUSH1 0x40
00000795: CALLDATACOPY
00000796: PUSH1 0x20
00000798: PUSH1 0x00
0000079a: CALLDATASIZE
0000079b: PUSH1 0x40
0000079d: PUSH1 0x03
0000079f: SLOAD
000007a0: GAS
000007a1: DELEGATECALL
000007a2: PUSH1 0x20
000007a4: PUSH1 0x00
000007a6: RETURN
000007a7: JUMPDEST
000007a8: PUSH1 0x02
000007aa: PUSH1 0x20
000007ac: MSTORE
000007ad: PUSH1 0x00
000007af: SWAP1
000007b0: DUP2
000007b1: MSTORE
000007b2: PUSH1 0x40
000007b4: SWAP1
000007b5: KECCAK256
000007b6: SLOAD
000007b7: DUP2
000007b8: JUMP
000007b9: JUMPDEST
000007ba: PUSH1 0x00
000007bc: PUSH32 0x551303dd5f39cbfe6daba6b3e27754b8a7d72f519756a2cde2b92c2bbde159a7
000007dd: DUP3
000007de: PUSH1 0x40
000007e0: MLOAD
000007e1: DUP1
000007e2: DUP1
000007e3: PUSH1 0x20
000007e5: ADD
000007e6: DUP3
000007e7: DUP2
000007e8: SUB
000007e9: DUP3
000007ea: MSTORE
000007eb: DUP4
000007ec: DUP2
000007ed: DUP2
000007ee: MLOAD
000007ef: DUP2
000007f0: MSTORE
000007f1: PUSH1 0x20
000007f3: ADD
000007f4: SWAP2
000007f5: POP
000007f6: DUP1
000007f7: MLOAD
000007f8: SWAP1
000007f9: PUSH1 0x20
000007fb: ADD
000007fc: SWAP1
000007fd: DUP1
000007fe: DUP4
000007ff: DUP4
00000800: PUSH1 0x00
00000802: JUMPDEST
00000803: DUP4
00000804: DUP2
00000805: LT
00000806: ISZERO
00000807: PUSH2 0x081a
0000080a: JUMPI
0000080b: DUP2
0000080c: DUP2
0000080d: ADD
0000080e: MLOAD
0000080f: DUP4
00000810: DUP3
00000811: ADD
00000812: MSTORE
00000813: PUSH1 0x20
00000815: ADD
00000816: PUSH2 0x0802
00000819: JUMP
0000081a: JUMPDEST
0000081b: POP
0000081c: POP
0000081d: POP
0000081e: POP
0000081f: SWAP1
00000820: POP
00000821: SWAP1
00000822: DUP2
00000823: ADD
00000824: SWAP1
00000825: PUSH1 0x1f
00000827: AND
00000828: DUP1
00000829: ISZERO
0000082a: PUSH2 0x0847
0000082d: JUMPI
0000082e: DUP1
0000082f: DUP3
00000830: SUB
00000831: DUP1
00000832: MLOAD
00000833: PUSH1 0x01
00000835: DUP4
00000836: PUSH1 0x20
00000838: SUB
00000839: PUSH2 0x0100
0000083c: EXP
0000083d: SUB
0000083e: NOT
0000083f: AND
00000840: DUP2
00000841: MSTORE
00000842: PUSH1 0x20
00000844: ADD
00000845: SWAP2
00000846: POP
00000847: JUMPDEST
00000848: POP
00000849: SWAP3
0000084a: POP
0000084b: POP
0000084c: POP
0000084d: PUSH1 0x40
0000084f: MLOAD
00000850: DUP1
00000851: SWAP2
00000852: SUB
00000853: SWAP1
00000854: LOG1
00000855: POP
00000856: PUSH1 0x00
00000858: SWAP2
00000859: SWAP1
0000085a: POP
0000085b: JUMP
0000085c: STOP
0000085d: LOG1
0000085e: PUSH6 0x627a7a723058
00000865: KECCAK256
00000866: SWAP2
00000867: UNKNOWN(0xAB)
00000868: SWAP10
00000869: ORIGIN
0000086a: DELEGATECALL
0000086b: PUSH3 0xdc1918
0000086f: UNKNOWN(0x0E)
00000870: DUP14
00000871: UNKNOWN(0x26)
00000872: SWAP15
00000873: SWAP13
00000874: BLOBBASEFEE
00000875: SWAP7
00000876: UNKNOWN(0xD6)
00000877: UNKNOWN(0x0C)
00000878: UNKNOWN(0x0E)
00000879: UNKNOWN(0xB6)
0000087a: UNKNOWN(0xD9)
0000087b: PUSH15
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 upgradeability detector Untrusted DELEGATECALL target reachable 55 no no
view
trace_id: 0xb5d2b3360cc4abcdcb0f28dcd2ceb446d76f927288ad25e2cde7502dd098c684
call_targets: 0x31a32975575a69383b129d79f36fa7189637f1f8
target_varies: no
classification: constant_target
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 3,
    "trace_id": "0xb5d2b3360cc4abcdcb0f28dcd2ceb446d76f927288ad25e2cde7502dd098c684",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x31a32975575a69383b129d79f36fa7189637f1f8"
    ],
    "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": "0x2039d9fd",
            "selector": "0x2039d9fd",
            "calldata_variants": [
                "0x2039d9fd",
                "0x2039d9fd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x22d40b13",
            "selector": "0x22d40b13",
            "calldata_variants": [
                "0x22d40b13",
                "0x22d40b130000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x41228803",
            "selector": "0x41228803",
            "calldata_variants": [
                "0x41228803",
                "0x412288030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4e7343ea",
            "selector": "0x4e7343ea",
            "calldata_variants": [
                "0x4e7343ea",
                "0x4e7343ea0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x648a0c91",
            "selector": "0x648a0c91",
            "calldata_variants": [
                "0x648a0c91",
                "0x648a0c910000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x69820a80",
            "selector": "0x69820a80",
            "calldata_variants": [
                "0x69820a80",
                "0x69820a800000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x70a08231",
            "selector": "0x70a08231",
            "calldata_variants": [
                "0x70a08231",
                "0x70a082310000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x98ea5fca",
            "selector": "0x98ea5fca",
            "calldata_variants": [
                "0x98ea5fca",
                "0x98ea5fca0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 926,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 1322,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 2154,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [
        {
            "pc": 2153,
            "type": "tx_origin_used"
        }
    ],
    "delegatecall_count": 5,
    "untrusted_delegatecall_count": 3
}
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": "0x2039d9fd",
            "selector": "0x2039d9fd",
            "calldata_variants": [
                "0x2039d9fd",
                "0x2039d9fd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x22d40b13",
            "selector": "0x22d40b13",
            "calldata_variants": [
                "0x22d40b13",
                "0x22d40b130000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x41228803",
            "selector": "0x41228803",
            "calldata_variants": [
                "0x41228803",
                "0x412288030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4e7343ea",
            "selector": "0x4e7343ea",
            "calldata_variants": [
                "0x4e7343ea",
                "0x4e7343ea0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x648a0c91",
            "selector": "0x648a0c91",
            "calldata_variants": [
                "0x648a0c91",
                "0x648a0c910000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x69820a80",
            "selector": "0x69820a80",
            "calldata_variants": [
                "0x69820a80",
                "0x69820a800000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x70a08231",
            "selector": "0x70a08231",
            "calldata_variants": [
                "0x70a08231",
                "0x70a082310000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x98ea5fca",
            "selector": "0x98ea5fca",
            "calldata_variants": [
                "0x98ea5fca",
                "0x98ea5fca0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 2153,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x0e3876c1a94bbe029b1da7813857ae8f456c0d3f9761c7fa214b89ecf9f6c54a
call_targets: 0x09f1cbd00919abc42709478afe8045ba8aa45630
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x0e3876c1a94bbe029b1da7813857ae8f456c0d3f9761c7fa214b89ecf9f6c54a",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x09f1cbd00919abc42709478afe8045ba8aa45630"
    ],
    "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": "0x2039d9fd",
            "selector": "0x2039d9fd",
            "calldata_variants": [
                "0x2039d9fd",
                "0x2039d9fd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x22d40b13",
            "selector": "0x22d40b13",
            "calldata_variants": [
                "0x22d40b13",
                "0x22d40b130000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x41228803",
            "selector": "0x41228803",
            "calldata_variants": [
                "0x41228803",
                "0x412288030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4e7343ea",
            "selector": "0x4e7343ea",
            "calldata_variants": [
                "0x4e7343ea",
                "0x4e7343ea0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x648a0c91",
            "selector": "0x648a0c91",
            "calldata_variants": [
                "0x648a0c91",
                "0x648a0c910000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x69820a80",
            "selector": "0x69820a80",
            "calldata_variants": [
                "0x69820a80",
                "0x69820a800000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x70a08231",
            "selector": "0x70a08231",
            "calldata_variants": [
                "0x70a08231",
                "0x70a082310000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x98ea5fca",
            "selector": "0x98ea5fca",
            "calldata_variants": [
                "0x98ea5fca",
                "0x98ea5fca0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1589,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 1,
    "guards_detected": [
        {
            "pc": 2153,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 1
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x0e3876c1a94bbe029b1da7813857ae8f456c0d3f9761c7fa214b89ecf9f6c54a
call_targets: 0x09f1cbd00919abc42709478afe8045ba8aa45630
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x0e3876c1a94bbe029b1da7813857ae8f456c0d3f9761c7fa214b89ecf9f6c54a",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x09f1cbd00919abc42709478afe8045ba8aa45630"
    ],
    "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": "0x2039d9fd",
            "selector": "0x2039d9fd",
            "calldata_variants": [
                "0x2039d9fd",
                "0x2039d9fd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x22d40b13",
            "selector": "0x22d40b13",
            "calldata_variants": [
                "0x22d40b13",
                "0x22d40b130000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x41228803",
            "selector": "0x41228803",
            "calldata_variants": [
                "0x41228803",
                "0x412288030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4e7343ea",
            "selector": "0x4e7343ea",
            "calldata_variants": [
                "0x4e7343ea",
                "0x4e7343ea0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x648a0c91",
            "selector": "0x648a0c91",
            "calldata_variants": [
                "0x648a0c91",
                "0x648a0c910000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x69820a80",
            "selector": "0x69820a80",
            "calldata_variants": [
                "0x69820a80",
                "0x69820a800000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x70a08231",
            "selector": "0x70a08231",
            "calldata_variants": [
                "0x70a08231",
                "0x70a082310000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x98ea5fca",
            "selector": "0x98ea5fca",
            "calldata_variants": [
                "0x98ea5fca",
                "0x98ea5fca0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1589,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 1,
    "guards_detected": [
        {
            "pc": 2153,
            "type": "tx_origin_used"
        }
    ]
}