Security: deploy runbook has no IBC-hooks chain version check or record that contracts do not use IBC hooks [SEC-D02] #407
Labels
No labels
agent:fix_bugfix
agent:fix_conflicts
agent:fix_security
agent:gap_analysis
agent:implement
agent:implement
agent:implement
agent:open_issues
agent:ready
agent:research
agent:security_audit
agent:verify
architecture
backend
blocker:hybrid
blocker:launch
blocker:limit-orders
blocker:v2
block:log_only
block:security
bug
ci
contracts
correctness
deploy
dev
devops
docs
documentation
duplicate
e2e
enhancement
epic
feature
frontend
functional-completion
gas
good first issue
governance
help wanted
high-risk
hooks
hybrid
indexer
infra
infrastructure
integrators
invalid
launch-blocker
limit-orders
localnet
localterra
low priority
missing-implementation
needs-design
ops
performance
priority
high
priority
medium
product
qa
QA
question
ready
ready
research
scripts
security
security-hardening
smartcontracts
tech-debt
testing
ux
UX
v2
verification
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
code/cl8y-dex-terraclassic#407
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Checklist Item
SEC-D02: Model Terra/Astroport IBC-hooks reentrancy/infinite-mint as a threat to bridged/CW20 assets and chain dependency patching. Verify: deployment runbook checks chain version/IBC-hooks exposure and records whether app contracts directly use IBC hooks.
Summary
The contracts do not expose any IBC receive/ack/timeout callbacks, which is the correct posture. However, neither the production launch runbook (
docs/runbooks/launch-checklist.md) nor the deployment guide records a check for the Terra Classic chain version, IBC-hooks module version, or an explicit statement that the deployed contracts do not use IBC hooks. If the chain silently gains IBC-hooks support or if a future contract extension adds IBC callbacks, there is no runbook gate to catch it.What Was Checked
docs/runbooks/launch-checklist.mdPhase 0 through Phase 5: no chain version check, no IBC-hooks module version check, no record of whether contracts use IBC hooksdocs/deployment-guide.mdPost-Deployment Checklist: no chain version or IBC-hooks checksmartcontracts/contracts/(all contract source): grep foribc_receive,ibc_ack,ibc_timeout,IbcChannel,ibc_packetreturns no results; contracts confirmed to not expose IBC callbacksdocs/security-model.mdHook Safety: mentions CosmWasm actor model prevents reentrancy but does not document IBC hooks specificallyExpected (per checklist)
The deployment runbook must include a check for the chain's IBC-hooks module version and an explicit recorded statement that the app contracts do not directly use IBC hooks (or if they do, document the exposure and mitigation).
Actual
The launch runbook covers wasm policy, code ID whitelist, fee configuration, hook registration policy, and HTTPS/CSP requirements. It does not require operators to check the Terra Classic chain version, verify whether the IBC-hooks module is active and at what version, or record the status of IBC hook usage in the deployed contracts.
Evidence
docs/runbooks/launch-checklist.mdPhase 0: checks governance, wasm policy, hook policy, code ID whitelist; no IBC-hooks chain version stepdocs/deployment-guide.mdPost-Deployment Checklist: no IBC-hooks or chain version itemibc_receive,ibc_ack,ibc_timeoutinsmartcontracts/contracts/: no results (contracts are clean)Suggested Fix
Add a step to
docs/runbooks/launch-checklist.mdPhase 0 or Phase 1 that:This step requires no code change; it is a runbook documentation gate only.
Verification Checklist
docs/runbooks/launch-checklist.mdincludes a checklist item to record Terra Classic chain version and IBC-hooks module version at deploy timeLabels
security,pre-launchCc : @PlasticDigits
mentioned in issue #381
mentioned in commit
7af3556e66mentioned in merge request !932
mentioned in merge request !935
mentioned in commit
6c23276f89Verification — #407 (SEC-D02) — PASS
Verified as release QA on
main(working tree clean; no MR required).Acceptance criteria
docs/runbooks/launch-checklist.mdPhase 0 SEC-D02 item (lines 17–32):terrad version --long,params subspaces/module_versionsibchooks probes, paste-to-issue instructionsmake verify-no-ibc-hooks-in-contracts; cross-link todocs/security-model.md§ IBC hooksdocs/deployment-guide.mdPost-Deployment Checklist SEC-D02 itemmake verify-no-ibc-hooks-in-contracts— noibc_receive/ibc_ack/ibc_timeoutinsmartcontracts/contracts/docs/security-model.md§ "IBC hooks chain dependency (SEC-D02)"skills/AGENTS_IBC_HOOKS_DEPLOY.md;make check-ibc-hooks-deploy-docsCommands run
Manual review
Read Phase 0 SEC-D02 gate, deployment-guide post-deploy item, and security-model section — content matches issue suggested fix (record chain/IBC-hooks version, static grep attestation with commit SHA, re-verification trigger).
Closing — implementation already on
main; no doc fixes needed in this verify pass.mentioned in issue #406
mentioned in issue #337
mentioned in issue #424
marked as related to #574
mentioned in issue #574
marked as related to #575
mentioned in issue #575