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

Analysis Run

019bb490-f330-732b-874c-9489d47f6791

complete
Chain ID
1
Address
Block Number
Created
Mon, Jan 12, 2026 11:35 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
1
Validated
1
Source
Bytecode only
Review Backing
Present
Best current signal
Untrusted DELEGATECALL target reachable
crit 1 high 0 proxy context implementation known
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
40039 artifact.fetch complete 1 / 3 3 months ago
40040 proxy.resolve complete 1 / 3 3 months ago
40041 tool.cast_disasm complete 1 / 3 3 months ago
40042 analysis.bundle complete 1 / 3 3 months ago
40043 capability.graph complete 1 / 3 3 months ago
40044 detector.run complete 1 / 3 3 months ago
40045 validation.fork complete 1 / 3 3 months ago
40196 report.consolidate complete 1 / 6 3 months ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: yes onchain_only
Verified Source: no
Proxy evidence
{
    "method": "minimal_proxy",
    "status": "onchain_only",
    "implementation": "0xa1dff47e3e9c4a18d341e386c6707a18686fb834",
    "onchain_method": "minimal_proxy"
}

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
2
No findings?
no
Summary
Bytecode shows computed-target delegatecalls and a tx.origin usage in guard logic; both can enable privilege bypass or arbitrary code execution if reachable without strict access control.
View stdout
{"no_findings":false,"summary":"Bytecode shows computed-target delegatecalls and a tx.origin usage in guard logic; both can enable privilege bypass or arbitrary code execution if reachable without strict access control.","findings":[{"severity":"high","category":"upgradeability","title":"Computed DELEGATECALL target reachable (potential arbitrary code execution)","exploit_scenario":"If any external caller can influence the delegatecall target (via calldata or mutable storage), they can redirect execution to a malicious contract. Because delegatecall runs in this contract’s storage context, that can overwrite ownership/admin, drain assets, or permanently corrupt state. Bytecode-only analysis cannot confirm target provenance or guards.","recommendation":"Ensure the delegatecall target is immutable or strictly controlled by a trusted admin with robust access control. Prefer allowlisted implementations/modules, validate target codehash, and consider removing delegatecall if not required. Add explicit revert on failed delegatecalls and document the trusted upgrade/module flow.","evidence":"Capability graph shows DELEGATECALL at pc 8860 and 9402 with target_expression_category = computed; detector flags untrusted_delegatecall_count = 2 with no confirmed guards.","locations":["pc:0x229c","pc:0x24ba"]},{"severity":"medium","category":"auth","title":"tx.origin appears in authorization logic","exploit_scenario":"If authorization checks rely on tx.origin, a malicious contract can trick a privileged EOA into calling it, and then forward the call so tx.origin matches the victim, bypassing intended access control on sensitive functions (upgrades, ownership changes, or delegated execution).","recommendation":"Avoid using tx.origin for authorization. Use msg.sender (or an EIP-2771 trusted forwarder pattern if meta-transactions are required) and apply explicit role/owner checks.","evidence":"Auth heuristics report tx_origin_used at pc 10502; ORIGIN opcode present in the analyzed runtime path.","locations":["pc:0x2906"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-7rqp1jo8
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bb496-6a93-7152-86a0-23f66b04bb72
--------
user
Context: The user requested the proxy at 0x07cdb44fa1e7eceb638c12a3451a3dc9ce1400e4.
Audit the implementation at 0xa1dff47e3e9c4a18d341e386c6707a18686fb834.
Findings should refer to the implementation unless explicitly about proxy mechanics.

You are a security auditor. You ONLY have runtime bytecode + analysis artifacts.
You MUST read `BYTECODE_BUNDLE.json` before concluding; it contains the bytecode summary,
evidence bundle, callsites, storage slots, and detector findings.

Special cases when reasoning from bytecode (be explicit about uncertainty):
- Selector inference is best-effort; missing selectors are common.
- Fallback/receive paths may be the only entrypoints.
- CALL vs DELEGATECALL semantics differ; DELEGATECALL executes in caller storage.
- Proxy patterns (EIP-1967, minimal proxies, beacon) change which storage is authoritative.
- Storage slots are raw; mappings/arrays appear via keccak patterns, names are unknown.
- Guard detection is heuristic; absence of guards does NOT mean unguarded.
- Returndata checking is unknown unless explicitly shown in evidence.
- Precompiles (0x1..0x9) and common ERC20 transfer selectors may appear; do not over-claim.

Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title.
- Locations can be pc references like "pc:0x123" or selectors like "selector:0xa9059cbb".

Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation,
accounting/invariant breaks, dangerous delegatecall, and untrusted external calls.
Be conservative: if evidence is weak, mark severity low/medium and explain why.
mcp startup: no servers

thinking
**Reading BYTECODE_BUNDLE.json**
exec
/bin/bash -lc ls in /tmp/codex-7rqp1jo8 succeeded in 8ms:
BYTECODE_BUNDLE.json
codex-output-schema.json
exec
/bin/bash -lc 'cat BYTECODE_BUNDLE.json' in /tmp/codex-7rqp1jo8 succeeded in 8ms:
{
  "analysis_artifact": {
    "address": "0xa1dff47e3e9c4a18d341e386c6707a18686fb834",
    "artifact_hash": "0x57accd8cd17643101a7aae699ddcdc328ab0622d76dbe662eb9e23bf630fbd49",
    "artifact_json": {
      "auth": {
        "guards": [
          {
            "pc": 4735,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
          },
          {
            "pc": 6777,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
          },
          {
            "pc": 8709,
            "type": "msg_sender_eq_const",

thinking
**Preparing to analyze bytecode bundle**
exec
/bin/bash -lc 'rg -n "storage" BYTECODE_BUNDLE.json' in /tmp/codex-7rqp1jo8 succeeded in 8ms:
13412:          "storage": {
13796:          "storage": {
14180:          "storage": {
14564:          "storage": {
14948:          "storage": {
15332:          "storage": {
15716:          "storage": {
16100:          "storage": {
16484:          "storage": {
16868:          "storage": {
17252:          "storage": {
17636:          "storage": {
18020:          "storage": {
18404:          "storage": {
18788:          "storage": {
19172:          "storage": {
19556:          "storage": {
19940:          "storage": {
20324:          "storage": {
20708:          "storage": {

thinking
**Exploring storage summary area**
exec
/bin/bash -lc "sed -n '41480,41660p' BYTECODE_BUNDLE.json" in /tmp/codex-7rqp1jo8 succeeded in 9ms:
        "0x0bafd60e",
        "0x0c870f91"
      ],
      "sinks": {
        "call": 1,
        "create": 0,
        "create2": 0,
        "delegatecall": 2,
        "selfdestruct": 0,
        "staticcall": 2,
        "upgrade_slot_write_suspected": false
      },
      "storage": {
        "keccak_count": 44,
        "reads": 105,
        "slots": [
          {
            "op": "SLOAD",
            "pc": 4214,
            "slot": "0x000000000000000000000000000000000000000000000000000000000000002e"

thinking
**Analyzing EIP-1967 storage slots**
exec
/bin/bash -lc 'rg -n "evidence|callsite|selector|function" BYTECODE_BUNDLE.json | head' in /tmp/codex-7rqp1jo8 succeeded in 8ms:
9664:      "callsites": [
13079:      "dispatcher_type": "selector_jump_table",
13080:      "function_entries": [
13083:          "selector": "0xf99eec8d"
13087:          "selector": "0xfa845ca9"
13091:          "selector": "0xfbf35f46"
13095:          "selector": "0xf2fde38b"
13099:          "selector": "0xf6558b00"
13103:          "selector": "0xe8df077d"
13107:          "selector": "0xf09a4016"

thinking
**Examining callsites section**
exec
/bin/bash -lc "sed -n '9600,9720p' BYTECODE_BUNDLE.json" in /tmp/codex-7rqp1jo8 succeeded in 9ms:
          "opcodes": [
            "INVALID"
          ],
          "start_pc": 10214
        },
        {
          "end_pc": 10501,
          "hash": "0x276a9c1482081adff3b7a12cb1ef8624e7da36e4c5f9e8c4e968c18c377503c9",
          "opcodes": [
            "NUMBER",
            "PUSH2",
            "PUSH16",
            "PUSH7",
            "SHA3",
            "PUSH7",
            "SHA3",
            "PUSH17",
            "OP_3A",
            "SHA3",
            "PUSH15",

thinking
**Locating function entries**
exec
/bin/bash -lc "sed -n '13060,13240p' BYTECODE_BUNDLE.json" in /tmp/codex-7rqp1jo8 succeeded in 40ms:
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:10194",
          "to": "bb:10184",
          "type": "control_flow"
        },
        {
          "from": "bb:10194",
          "to": "bb:10203",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:10203",
          "to": "bb:10194",
          "type": "control_flow"
        }
      ],
      "cfg_hash": "0x63bdb5eda69f4f9f709cc11442ff1230f647fd3263ab5cfccf51a6bc4476218d",
      "dispatcher_type": "selector_jump_table",

thinking
**Analyzing bytecode function and storage patterns**
exec
/bin/bash -lc "sed -n '13380,13460p' BYTECODE_BUNDLE.json" in /tmp/codex-7rqp1jo8 succeeded in 13ms:
                "type": "msg_sender_eq_const",
                "value": "0xffffffffffffffffffffffffffffffffffffffff"
              },
              {
                "pc": 6777,
                "type": "msg_sender_eq_const",
                "value": "0xffffffffffffffffffffffffffffffffffffffff"
              },
              {
                "pc": 8709,
                "type": "msg_sender_eq_const",
                "value": "0xffffffffffffffffffffffffffffffffffffffff"
              },
              {
                "pc": 9234,
                "type": "msg_sender_eq_const",
                "value": "0xffffffffffffffffffffffffffffffffffffffff"
              },
              {
                "pc": 10502,

thinking
**Analyzing risky delegatecall and tx.origin usage**
exec
/bin/bash -lc 'rg -n "delegatecall" BYTECODE_BUNDLE.json | head -n 40' in /tmp/codex-7rqp1jo8 succeeded in 7ms:
13408:            "delegatecall": 2,
13792:            "delegatecall": 2,
14176:            "delegatecall": 2,
14560:            "delegatecall": 2,
14944:            "delegatecall": 2,
15328:            "delegatecall": 2,
15712:            "delegatecall": 2,
16096:            "delegatecall": 2,
16480:            "delegatecall": 2,
16864:            "delegatecall": 2,
17248:            "delegatecall": 2,
17632:            "delegatecall": 2,
18016:            "delegatecall": 2,
18400:            "delegatecall": 2,
18784:            "delegatecall": 2,
19168:            "delegatecall": 2,
19552:            "delegatecall": 2,
19936:            "delegatecall": 2,
20320:            "delegatecall": 2,
20704:            "delegatecall": 2,

thinking
**Analyzing delegatecall patterns**
exec
/bin/bash -lc 'rg -n "summary|bytecode|metadata" BYTECODE_BUNDLE.json | head -n 50' in /tmp/codex-7rqp1jo8 succeeded in 18ms:
41903:    "runtime_bytecode": {
50740:  "heuristics_summary": {

thinking
**Navigating to code line 41900**
exec
/bin/bash -lc "sed -n '41890,41980p' BYTECODE_BUNDLE.json" in /tmp/codex-7rqp1jo8 succeeded in 10ms:
        "implementation": null,
        "license": "Unknown",
        "proxy": "0",
        "swarm_source": null
      },
      "optimizer_enabled": false,
      "optimizer_runs": 0,
      "proxy_evidence": {
        "status": "not_proxy"
      }
    },
    "implementation_address": null,
    "is_proxy": false,
    "runtime_bytecode": {
      "full": "0x6080604052600436106104b65760003560e01c806383ae86cb11610279578063ba20715a1161015e578063dc87454c116100d6578063f2fde38b1161008a578063f99eec8d1161006f578063f99eec8d14610f25578063fa845ca914611004578063fbf35f4614611044576104b6565b8063f2fde38b14610eac578063f6558b0014610eec576104b6565b8063e8df077d116100bb578063e8df077d14610e25578063f09a401614610e3a578063f1a153a114610e82576104b6565b8063dc87454c14610dfb578063e2a4157c14610e10576104b6565b8063d60851a21161012d578063d7da6b5611610112578063d7da6b5614610dbc578063d8e9f45d14610dd1578063db3d1ccf14610de6576104b6565b8063d60851a214610d92578063d7615d3714610da7576104b6565b8063ba20715a14610cdc578063bdbcb57614610cf1578063c3ea357514610d37578063ce977bc214610d4c576104b6565b8063a7a53243116101f1578063ae2f89c2116101c0578063b5050ea8116101a5578063b5050ea814610c9d578063b693c3be14610cb2578063b7ac4ff314610cc7576104b6565b8063ae2f89c214610c73578063b1ace0b014610c88576104b6565b8063a7a5324314610bd9578063a8b6b2b614610bee578063a940646d14610c03578063a9e7434414610c2d576104b6565b80639244adcd116102485780639a8a21451161022d5780639a8a214514610b6f5780639f712f2f14610b84578063a03040c314610bc4576104b6565b80639244adcd14610ab4578063933dbf8514610b5a576104b6565b806383ae86cb14610a605780638a17797314610a755780638da5cb5b14610a8a5780638f32d59b14610a9f576104b6565b806344841f4f1161039f5780635f88967b116103175780637496780f116102e6578063789bc8e2116102cb578063789bc8e2146109e15780637cd9fb1c146109f6578063821f982414610a20576104b6565b80637496780f146109b7578063751a2238146109cc576104b6565b80635f88967b1461096357806363b7bf2014610978578063675fb9c41461098d578063715018a6146109a2576104b6565b806356f7e7ff1161036e5780635825b04c116103535780635825b04c146108845780635e068da5146108c45780635f2e5b461461094e576104b6565b806356f7e7ff14610814578063573c84091461083e576104b6565b806344841f4f146107c0578063467f0e06146107d557806348ea7638146107ea5780634f2094a1146107ff576104b6565b80631dbeef7c116104325780633131be9011610401578063392e53cd116103e6578063392e53cd146107505780633e47158c14610765578063404c568f1461077a576104b6565b80633131be90146106a157806332952b66146106b6576104b6565b80631dbeef7c1461062257806325f842c5146106375780632893f5cc1461064c5780632f8847101461068c576104b6565b80630e187cac116104895780631476e6001161046e5780631476e600146105e357806317ddc578146105f85780631a454ea61461060d576104b6565b80630e187cac1461057a57806313d3d00e146105ce576104b6565b8063057fe949146104c057806306d34c60146104fe5780630bafd60e146105505780630c870f9114610565575b6104be611059565b005b3480156104cc57600080fd5b506104d5611073565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561050a57600080fd5b5061053e6004803603602081101561052157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661108f565b60408051918252519081900360200190f35b34801561055c57600080fd5b506104d56111b2565b34801561057157600080fd5b506104d56111d4565b34801561058657600080fd5b506105ba6004803603602081101561059d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166111e4565b604080519115158252519081900360200190f35b3480156105da57600080fd5b5061053e6111f9565b3480156105ef57600080fd5b5061053e6111ff565b34801561060457600080fd5b5061053e61120b565b34801561061957600080fd5b5061053e611211565b34801561062e57600080fd5b5061053e61121d565b34801561064357600080fd5b5061053e611223565b34801561065857600080fd5b506105ba6004803603602081101561066f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611229565b34801561069857600080fd5b5061053e61123e565b3480156106ad57600080fd5b506104d5611244565b3480156106c257600080fd5b506104be600480360360408110156106d957600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561071157600080fd5b82018360208201111561072357600080fd5b8035906020019184600183028401116401000000008311171561074557600080fd5b509092509050611260565b34801561075c57600080fd5b506105ba6112ed565b34801561077157600080fd5b506104d5611310565b34801561078657600080fd5b506104d56004803603604081101561079d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561131a565b3480156107cc57600080fd5b5061053e61135c565b3480156107e157600080fd5b506104d5611362565b3480156107f657600080fd5b5061053e61137e565b34801561080b57600080fd5b5061053e611384565b34801561082057600080fd5b5061053e6004803603602081101561083757600080fd5b503561138b565b34801561084a57600080fd5b506105ba6004803603604081101561086157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561139f565b34801561089057600080fd5b5061053e600480360360208110156108a757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166114e6565b3480156108d057600080fd5b506108d96115ca565b6040805160208082528351818301528351919283929083019185019080838360005b838110156109135781810151838201526020016108fb565b50505050905090810190601f1680156109405780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561095a57600080fd5b5061053e61167e565b34801561096f57600080fd5b506105ba611684565b34801561098457600080fd5b5061053e611692565b34801561099957600080fd5b5061053e611698565b3480156109ae57600080fd5b506104be6116a4565b3480156109c357600080fd5b5061053e611786565b3480156109d857600080fd5b5061053e611792565b3480156109ed57600080fd5b5061053e611798565b348015610a0257600080fd5b5061053e60048036036020811015610a1957600080fd5b503561179d565b348015610a2c57600080fd5b5061053e60048036036020811015610a4357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611853565b348015610a6c57600080fd5b5061053e611937565b348015610a8157600080fd5b506104d561193d565b348015610a9657600080fd5b506104d5611959565b348015610aab57600080fd5b506105ba611975565b348015610ac057600080fd5b50610afa60048036036040811015610ad757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356119b3565b6040805173ffffffffffffffffffffffffffffffffffffffff909a168a5260208a0198909852888801969096526060880194909452608087019290925260a086015260c085015260e0840152151561010083015251908190036101200190f35b348015610b6657600080fd5b5061053e611a32565b348015610b7b57600080fd5b506104d5611a3e565b348015610b9057600080fd5b506104be60048036036020811015610ba757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611a5a565b348015610bd057600080fd5b506104d5611b72565b348015610be557600080fd5b5061053e611b8e565b348015610bfa57600080fd5b5061053e611b9a565b348015610c0f57600080fd5b5061053e60048036036020811015610c2657600080fd5b5035611ba6565b348015610c3957600080fd5b506105ba60048036036040811015610c5057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611c5a565b348015610c7f57600080fd5b5061053e611c7a565b348015610c9457600080fd5b5061053e611c80565b348015610ca957600080fd5b5061053e611c8b565b348015610cbe57600080fd5b506104d5611c90565b348015610cd357600080fd5b506105ba611cac565b348015610ce857600080fd5b5061053e611cce565b348015610cfd57600080fd5b5061053e60048036036040811015610d1457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611cd4565b348015610d4357600080fd5b506104d5611dd7565b348015610d5857600080fd5b506105ba60048036036040811015610d6f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611df3565b348015610d9e57600080fd5b5061053e611efc565b348015610db357600080fd5b506104d5611f02565b348015610dc857600080fd5b5061053e611f1e565b348015610ddd57600080fd5b5061053e611f24565b348015610df257600080fd5b506104d5611f2a565b348015610e0757600080fd5b506104d5611f46565b348015610e1c57600080fd5b506105ba611f62565b348015610e3157600080fd5b506105ba611f83565b348015610e4657600080fd5b506104be60048036036040811015610e5d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611f8c565b348015610e8e57600080fd5b5061053e60048036036020811015610ea557600080fd5b50356120ab565b348015610eb857600080fd5b506104be60048036036020811015610ecf57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612161565b348015610ef857600080fd5b50610f016121dd565b60405180826001811115610f1157fe5b60ff16815260200191505060405180910390f35b6104be60048036036060811015610f3b57600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235169190810190604081016020820135640100000000811115610f7357600080fd5b820183602082011115610f8557600080fd5b80359060200191846001830284011164010000000083111715610fa757600080fd5b919390929091602081019035640100000000811115610fc557600080fd5b820183602082011115610fd757600080fd5b80359060200191846001830284011164010000000083111715610ff957600080fd5b5090925090506121e6565b34801561101057600080fd5b5061053e6004803603602081101561102757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166122f3565b34801561105057600080fd5b506104d56123d7565b6110616123f3565b61107161106c612487565b6124ac565b565b602e5473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602b60205260408120546111855760095473ffffffffffffffffffffffffffffffffffffffff161561117b57600954604080517f06d34c6000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152915191909216916306d34c60916024808301926020929190829003018186803b15801561114a57600080fd5b505afa15801561115e573d6000803e3d6000fd5b505050506040513d602081101561117457600080fd5b505161117e565b60005b90506111ad565b5073ffffffffffffffffffffffffffffffffffffffff81166000908152602b60205260409020545b919050565b60245462010000900473ffffffffffffffffffffffffffffffffffffffff1681565b60006111de612487565b90505b90565b60226020526000908152604090205460ff1681565b60115481565b6703782dace9d9000081565b60285481565b670214e8348c4f000081565b60185481565b600f5481565b60236020526000908152604090205460ff1681565b600a5481565b602f5473ffffffffffffffffffffffffffffffffffffffff1681565b6112686124d0565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156112e0576112db8383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506124f592505050565b6112e8565b6112e8611059565b505050565b600054760100000000000000000000000000000000000000000000900460ff1681565b60006111de6124d0565b601e602052816000526040600020818154811061133357fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff169150829050565b60315481565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60165481565b6203f48081565b6013816002811061139857fe5b0154905081565b73ffffffffffffffffffffffffffffffffffffffff82166000908152602c6020908152604080832084845290915281205460ff166114aa5760095473ffffffffffffffffffffffffffffffffffffffff16156114a057600954604080517f573c840900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152602482018690529151919092169163573c8409916044808301926020929190829003018186803b15801561146f57600080fd5b505afa158015611483573d6000803e3d6000fd5b505050506040513d602081101561149957600080fd5b50516114a3565b60005b90506114e0565b5073ffffffffffffffffffffffffffffffffffffffff82166000908152602c6020908152604080832084845290915290205460ff165b92915050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152601c60205260408120546115a15760095473ffffffffffffffffffffffffffffffffffffffff161561117b57600954604080517f5825b04c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015291519190921691635825b04c916024808301926020929190829003018186803b15801561114a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff166000908152601c602052604090205490565b60328054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156116745780601f1061164957610100808354040283529160200191611674565b820191906000526020600020905b81548152906001019060200180831161165757829003601f168201915b5050505050905090565b60155481565b602454610100900460ff1681565b600c5481565b670a688906bd8b000081565b6116ac611975565b61171757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6706f05b59d3b2000081565b600e5481565b600681565b6000818152601f60205260408120546118405760095473ffffffffffffffffffffffffffffffffffffffff161561117b57600954604080517f7cd9fb1c00000000000000000000000000000000000000000000000000000000815260048101859052905173ffffffffffffffffffffffffffffffffffffffff90921691637cd9fb1c91602480820192602092909190829003018186803b15801561114a57600080fd5b506000908152601f602052604090205490565b73ffffffffffffffffffffffffffffffffffffffff811660009081526019602052604081205461190e5760095473ffffffffffffffffffffffffffffffffffffffff161561117b57600954604080517f821f982400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301529151919092169163821f9824916024808301926020929190829003018186803b15801561114a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff1660009081526019602052604090205490565b60295481565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b6000805473ffffffffffffffffffffffffffffffffffffffff16611997612544565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b601d60205281600052604060002081815481106119cc57fe5b600091825260209091206009909102018054600182015460028301546003840154600485015460058601546006870154600788015460089098015473ffffffffffffffffffffffffffffffffffffffff9097169950949750929591949093919060ff1689565b67016345785d8a000081565b60045473ffffffffffffffffffffffffffffffffffffffff1681565b611a626124d0565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611b675773ffffffffffffffffffffffffffffffffffffffff8116611b01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061283f6036913960400191505060405180910390fd5b7fe923ce5ee469e989477ed664be643fb92d252573aad00209ddad9452b5414a89611b2a6124d0565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301528051918290030190a1611b6281612548565b611b6f565b611b6f611059565b50565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b6702c68af0bb14000081565b670de0b6b3a764000081565b6000818152602080526040812054611c485760095473ffffffffffffffffffffffffffffffffffffffff161561117b57600954604080517fa940646d00000000000000000000000000000000000000000000000000000000815260048101859052905173ffffffffffffffffffffffffffffffffffffffff9092169163a940646d91602480820192602092909190829003018186803b15801561114a57600080fd5b50600090815260208052604090205490565b603060209081526000928352604080842090915290825290205460ff1681565b60125481565b66038d7ea4c6800081565b600281565b602d5473ffffffffffffffffffffffffffffffffffffffff1681565b6000547501000000000000000000000000000000000000000000900460ff1681565b600b5481565b73ffffffffffffffffffffffffffffffffffffffff82166000908152601b60209081526040808320848452909152812054611da15760095473ffffffffffffffffffffffffffffffffffffffff16156114a057600954604080517fbdbcb57600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152602482018690529151919092169163bdbcb576916044808301926020929190829003018186803b15801561146f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff919091166000908152601b60209081526040808320938352929052205490565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff82166000908152601a6020908152604080832084845290915281205460ff16611ec35760095473ffffffffffffffffffffffffffffffffffffffff16156114a057600954604080517fce977bc200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152602482018690529151919092169163ce977bc2916044808301926020929190829003018186803b15801561146f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff919091166000908152601a60209081526040808320938352929052205460ff1690565b60175481565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b60105481565b60095473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b602f5474010000000000000000000000000000000000000000900460ff1681565b60335460ff1681565b60335460ff1615611f9957fe5b604080517f6f72672e7a657070656c696e6f732e70726f78792e61646d696e0000000000008152905190819003601a0190207f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b14611ff357fe5b60405180602361287582396040519081900360230190207f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c314905061203457fe5b603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561206881612548565b6120a7826040518060400160405280600581526020017f312e302e3000000000000000000000000000000000000000000000000000000081525061256c565b5050565b6000818152602a602052604081205461214e5760095473ffffffffffffffffffffffffffffffffffffffff161561117b57600954604080517ff1a153a100000000000000000000000000000000000000000000000000000000815260048101859052905173ffffffffffffffffffffffffffffffffffffffff9092169163f1a153a191602480820192602092909190829003018186803b15801561114a57600080fd5b506000908152602a602052604090205490565b612169611975565b6121d457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b611b6f81612619565b60245460ff1681565b6121ee6124d0565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156122e4576122618585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506124f592505050565b60008573ffffffffffffffffffffffffffffffffffffffff1683836040518083838082843760405192019450600093509091505080830381855af49150503d80600081146122cb576040519150601f19603f3d011682016040523d82523d6000602084013e6122d0565b606091505b50509050806122de57600080fd5b506122ec565b6122ec611059565b5050505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602160205260408120546123ae5760095473ffffffffffffffffffffffffffffffffffffffff161561117b57600954604080517ffa845ca900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301529151919092169163fa845ca9916024808301926020929190829003018186803b15801561114a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff1660009081526021602052604090205490565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b6123fb6124d0565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561247f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806127e76032913960400191505060405180910390fd5b611071611071565b7f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c35490565b3660008037600080366000845af43d6000803e8080156124cb573d6000f35b3d6000fd5b7f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b5490565b6124ff828261256c565b60405173ffffffffffffffffffffffffffffffffffffffff8316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a25050565b3390565b7f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b55565b61258b8273ffffffffffffffffffffffffffffffffffffffff16612712565b6125e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b815260200180612898603b913960400191505060405180910390fd5b80516125f390603290602084019061274e565b50507f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c355565b73ffffffffffffffffffffffffffffffffffffffff8116612685576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806128196026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061274657508115155b949350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061278f57805160ff19168380011785556127bc565b828001600101855582156127bc579182015b828111156127bc5782518255916020019190600101906127a1565b506127c89291506127cc565b5090565b6111e191905b808211156127c857600081556001016127d256fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737343616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f20616464726573736f72672e7a657070656c696e6f732e70726f78792e696d706c656d656e746174696f6e43616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a265627a7a72315820e4f5010f5a4e8cf12b530a2e0dd43db8948a8614e14db66be28216f8fbc8c8e164736f6c63430005110032",
      "head": null,
      "length": 21008,
      "tail": null,
      "truncated": false
    },


thinking
**Analyzing runtime bytecode for proxy traits**
thinking
**Identifying upgradeability and authorization concerns**

I’m noting three main issues: the implementation’s delegatecalls use computed targets risking arbitrary code execution if untrusted; use of tx.origin for authorization can be tricked by malicious contracts; and the implementation appears to be a proxy itself, creating double-proxy risks that may cause storage collisions or unexpected upgrades if used behind another proxy. I’ll support these with evidence from delegatecall callsites, tx.origin usage, and characteristic proxy strings in the bytecode.
exec
/bin/bash -lc 'rg -n "proxy admin|proxy implementation|zeppelinos" BYTECODE_BUNDLE.json' in /tmp/codex-7rqp1jo8 exited 1 in 8ms:


thinking
**Analyzing hex-encoded revert messages and bytecode evidence**
codex
{"no_findings":false,"summary":"Bytecode shows computed-target delegatecalls and a tx.origin usage in guard logic; both can enable privilege bypass or arbitrary code execution if reachable without strict access control.","findings":[{"severity":"high","category":"upgradeability","title":"Computed DELEGATECALL target reachable (potential arbitrary code execution)","exploit_scenario":"If any external caller can influence the delegatecall target (via calldata or mutable storage), they can redirect execution to a malicious contract. Because delegatecall runs in this contract’s storage context, that can overwrite ownership/admin, drain assets, or permanently corrupt state. Bytecode-only analysis cannot confirm target provenance or guards.","recommendation":"Ensure the delegatecall target is immutable or strictly controlled by a trusted admin with robust access control. Prefer allowlisted implementations/modules, validate target codehash, and consider removing delegatecall if not required. Add explicit revert on failed delegatecalls and document the trusted upgrade/module flow.","evidence":"Capability graph shows DELEGATECALL at pc 8860 and 9402 with target_expression_category = computed; detector flags untrusted_delegatecall_count = 2 with no confirmed guards.","locations":["pc:0x229c","pc:0x24ba"]},{"severity":"medium","category":"auth","title":"tx.origin appears in authorization logic","exploit_scenario":"If authorization checks rely on tx.origin, a malicious contract can trick a privileged EOA into calling it, and then forward the call so tx.origin matches the victim, bypassing intended access control on sensitive functions (upgrades, ownership changes, or delegated execution).","recommendation":"Avoid using tx.origin for authorization. Use msg.sender (or an EIP-2771 trusted forwarder pattern if meta-transactions are required) and apply explicit role/owner checks.","evidence":"Auth heuristics report tx_origin_used at pc 10502; ORIGIN opcode present in the analyzed runtime path.","locations":["pc:0x2906"]}]}
tokens used
53,351
Metadata
{
    "codex": {
        "ran_at": "2026-01-12T23:46:17.405745+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "bytecode",
        "bytecode_length": 21008,
        "bytecode_truncated": false,
        "capability_graph_present": true,
        "analysis_artifact_present": true
    },
    "summary": "Bytecode shows computed-target delegatecalls and a tx.origin usage in guard logic; both can enable privilege bypass or arbitrary code execution if reachable without strict access control.",
    "raw_final": {
        "summary": "Bytecode shows computed-target delegatecalls and a tx.origin usage in guard logic; both can enable privilege bypass or arbitrary code execution if reachable without strict access control.",
        "findings": [
            {
                "title": "Computed DELEGATECALL target reachable (potential arbitrary code execution)",
                "category": "upgradeability",
                "evidence": "Capability graph shows DELEGATECALL at pc 8860 and 9402 with target_expression_category = computed; detector flags untrusted_delegatecall_count = 2 with no confirmed guards.",
                "severity": "high",
                "locations": [
                    "pc:0x229c",
                    "pc:0x24ba"
                ],
                "recommendation": "Ensure the delegatecall target is immutable or strictly controlled by a trusted admin with robust access control. Prefer allowlisted implementations/modules, validate target codehash, and consider removing delegatecall if not required. Add explicit revert on failed delegatecalls and document the trusted upgrade/module flow.",
                "exploit_scenario": "If any external caller can influence the delegatecall target (via calldata or mutable storage), they can redirect execution to a malicious contract. Because delegatecall runs in this contract\u2019s storage context, that can overwrite ownership/admin, drain assets, or permanently corrupt state. Bytecode-only analysis cannot confirm target provenance or guards."
            },
            {
                "title": "tx.origin appears in authorization logic",
                "category": "auth",
                "evidence": "Auth heuristics report tx_origin_used at pc 10502; ORIGIN opcode present in the analyzed runtime path.",
                "severity": "medium",
                "locations": [
                    "pc:0x2906"
                ],
                "recommendation": "Avoid using tx.origin for authorization. Use msg.sender (or an EIP-2771 trusted forwarder pattern if meta-transactions are required) and apply explicit role/owner checks.",
                "exploit_scenario": "If authorization checks rely on tx.origin, a malicious contract can trick a privileged EOA into calling it, and then forward the call so tx.origin matches the victim, bypassing intended access control on sensitive functions (upgrades, ownership changes, or delegated execution)."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "proxy_context": {
        "proxy_run_id": "019bb490-f330-732b-874c-9489d47f6791",
        "proxy_address": "0x07cdb44fa1e7eceb638c12a3451a3dc9ce1400e4",
        "implementation_run_id": "019bb491-3724-7173-a4ff-65108bf7b085",
        "implementation_address": "0xa1dff47e3e9c4a18d341e386c6707a18686fb834"
    },
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
1
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
0
EXT*/BALANCE
0
Total opcodes
24
Flags
delegatecall_present
View cast disassembly output
00000000: CALLDATASIZE
00000001: RETURNDATASIZE
00000002: RETURNDATASIZE
00000003: CALLDATACOPY
00000004: RETURNDATASIZE
00000005: RETURNDATASIZE
00000006: RETURNDATASIZE
00000007: CALLDATASIZE
00000008: RETURNDATASIZE
00000009: PUSH20 0xa1dff47e3e9c4a18d341e386c6707a18686fb834
0000001e: GAS
0000001f: DELEGATECALL
00000020: RETURNDATASIZE
00000021: DUP3
00000022: DUP1
00000023: RETURNDATACOPY
00000024: SWAP1
00000025: RETURNDATASIZE
00000026: SWAP2
00000027: PUSH1 0x2b
00000029: JUMPI
0000002a: REVERT
0000002b: JUMPDEST
0000002c: RETURN

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical upgradeability detector Untrusted DELEGATECALL target reachable 70 yes yes
view
trace_id: 0xd43d5c56e526978b81d579c3eb1efca776bf253f5af8a5c8f5ee42d7eba6feaf
call_targets: 0x7ce70a3a0496575887b3732ce46aa5b68b2c0df7, 0xa1dff47e3e9c4a18d341e386c6707a18686fb834, 0xef4ef84df8efe977a8ae07293553adb4ff3bac90
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0xd43d5c56e526978b81d579c3eb1efca776bf253f5af8a5c8f5ee42d7eba6feaf",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x7ce70a3a0496575887b3732ce46aa5b68b2c0df7",
        "0xa1dff47e3e9c4a18d341e386c6707a18686fb834",
        "0xef4ef84df8efe977a8ae07293553adb4ff3bac90"
    ],
    "matched_probe": null,
    "target_varies": true,
    "classification": "target_varies"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x",
            "selector": "fallback",
            "calldata_variants": [
                "0x"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 31,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [],
    "delegatecall_count": 1,
    "untrusted_delegatecall_count": 1
}
high upgradeability codex Computed DELEGATECALL target reachable (potential arbitrary code execution) 85 no
view
evidence_json
{
    "evidence": "Capability graph shows DELEGATECALL at pc 8860 and 9402 with target_expression_category = computed; detector flags untrusted_delegatecall_count = 2 with no confirmed guards.",
    "locations": [
        "pc:0x229c",
        "pc:0x24ba"
    ],
    "recommendation": "Ensure the delegatecall target is immutable or strictly controlled by a trusted admin with robust access control. Prefer allowlisted implementations/modules, validate target codehash, and consider removing delegatecall if not required. Add explicit revert on failed delegatecalls and document the trusted upgrade/module flow.",
    "exploit_scenario": "If any external caller can influence the delegatecall target (via calldata or mutable storage), they can redirect execution to a malicious contract. Because delegatecall runs in this contract\u2019s storage context, that can overwrite ownership/admin, drain assets, or permanently corrupt state. Bytecode-only analysis cannot confirm target provenance or guards."
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 1
}
medium auth codex tx.origin appears in authorization logic 75 no
view
evidence_json
{
    "evidence": "Auth heuristics report tx_origin_used at pc 10502; ORIGIN opcode present in the analyzed runtime path.",
    "locations": [
        "pc:0x2906"
    ],
    "recommendation": "Avoid using tx.origin for authorization. Use msg.sender (or an EIP-2771 trusted forwarder pattern if meta-transactions are required) and apply explicit role/owner checks.",
    "exploit_scenario": "If authorization checks rely on tx.origin, a malicious contract can trick a privileged EOA into calling it, and then forward the call so tx.origin matches the victim, bypassing intended access control on sensitive functions (upgrades, ownership changes, or delegated execution)."
}