đ¨ SECURITY ALERT: Terra Classic Proposal #12235 Is NOT What It Seems
I reverse-engineered the raw on-chain data for $LUNC governance proposal #12235. What I found should concern every holder.
The Trojan Horse:
Proposal claims to be a simple IBC client recovery. Reality? It's bundling TWO separate operations:
1ď¸âŁ IBC client recovery (07-tendermint-285 â 07-tendermint-294)
2ď¸âŁ CosmWasm contract upload with ZERO source code disclosure
The Wasm Binary Red Flags:
Extracted the Base64 payload. Found internal Rust identifiers:
⢠drain::ExecMsg
⢠drain::MigrateMsg
⢠drain::BalResp
Exports migration entry points, IBC packet handling, token transfer logic. No human-readable source. Just raw bytecode.
SHA-256: 6f6ed8f1e216b550c798bdee43cc68cf63977004ceeb3bad432febf3b9eefdf7
The Permission Exploit:
Proposal #12234 just passed, restricting code uploads to governance only. Smart.
BUT it left instantiate_default_permission: Everybody
Proposal #12235 uploads code with instantiate_permission: null
Meaning? Anyone can deploy this contract after governance approves the bytecode. You're voting to arm a loaded gun and leave it on the table.
Why This Matters:
Legit IBC recovery doesn't need mystery smart contract uploads. Bundling them together is a governance attack pattern. Either the proposer doesn't understand operational security, or they're banking on voters not reading the raw transaction data.
My Verdict: VOTE NO
Until the proposer provides:
â Full source code
â Reproducible build matching the binary fingerprint
â Independent security audit
â Explanation of why IBC recovery needs a "drain" contract
â Clear deployment plan with admin permissions disclosed
This proposal is a hard pass.
Governance is not a rubber stamp. Opacity is not acceptable. If this is legitimate, publish the code and open a forum discussion. If it's not, this vote just saved the chain.
Security > speed. Always.
#LUNC #TerraClassic
I reverse-engineered the raw on-chain data for $LUNC governance proposal #12235. What I found should concern every holder.
The Trojan Horse:
Proposal claims to be a simple IBC client recovery. Reality? It's bundling TWO separate operations:
1ď¸âŁ IBC client recovery (07-tendermint-285 â 07-tendermint-294)
2ď¸âŁ CosmWasm contract upload with ZERO source code disclosure
The Wasm Binary Red Flags:
Extracted the Base64 payload. Found internal Rust identifiers:
⢠drain::ExecMsg
⢠drain::MigrateMsg
⢠drain::BalResp
Exports migration entry points, IBC packet handling, token transfer logic. No human-readable source. Just raw bytecode.
SHA-256: 6f6ed8f1e216b550c798bdee43cc68cf63977004ceeb3bad432febf3b9eefdf7
The Permission Exploit:
Proposal #12234 just passed, restricting code uploads to governance only. Smart.
BUT it left instantiate_default_permission: Everybody
Proposal #12235 uploads code with instantiate_permission: null
Meaning? Anyone can deploy this contract after governance approves the bytecode. You're voting to arm a loaded gun and leave it on the table.
Why This Matters:
Legit IBC recovery doesn't need mystery smart contract uploads. Bundling them together is a governance attack pattern. Either the proposer doesn't understand operational security, or they're banking on voters not reading the raw transaction data.
My Verdict: VOTE NO
Until the proposer provides:
â Full source code
â Reproducible build matching the binary fingerprint
â Independent security audit
â Explanation of why IBC recovery needs a "drain" contract
â Clear deployment plan with admin permissions disclosed
This proposal is a hard pass.
Governance is not a rubber stamp. Opacity is not acceptable. If this is legitimate, publish the code and open a forum discussion. If it's not, this vote just saved the chain.
Security > speed. Always.
#LUNC #TerraClassic