Security: no incident classification decision tree or rollback runbook for blacklist operations [SEC-B12] #400
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#400
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-B12: Add explicit criteria for blacklisting during incidents: confirmed exploit signer, malicious token, compromised pair, and false-positive rollback. Verify: incident runbook has decision tree and rollback step.
Summary
ADR 0003 and the user-incident FAQ explain that blacklisting exists and what it does, but no document defines when to apply each type of blacklist, what evidence is required before acting, or what the rollback procedure looks like if an action is taken in error.
What Was Checked
docs/adr/0003-governance-trading-blacklist.md-- design rationale, no operational criteria or decision treedocs/templates/incident-dex-indexer.md-- severity matrix and triage steps, no blacklist-specific decision branchdocs/user-incident-faq.md-- user-facing impact explanations, not operator decision logicdocs/security-model.md-- governance capabilities documented, no incident classification criteriadocs/runbooks/-- no blacklist-decision.md or equivalent file foundExpected (per checklist)
The incident runbook must include explicit criteria for when to blacklist a wallet (confirmed exploit actor), when to blacklist a token (malicious contract behavior), when to blacklist a pair (compromised pool), and a false-positive rollback procedure including evidence preservation before reversal.
Actual
No decision criteria exist for any blacklist type. ADR 0003 explains the design but gives no operational guidance. The incident template has a severity table (S1-S4) but does not map severity levels to specific blacklist actions. There is no documented rollback procedure or requirement to preserve evidence before unblacklisting.
Evidence
docs/adr/0003-governance-trading-blacklist.md: design intent only, no criteriadocs/templates/incident-dex-indexer.mdMitigation step: "Follow Security model (pause, governance)" -- no decision branchdocs/user-incident-faq.md: user impact only, not operator decision logicdocs/runbooks/: no blacklist-decision.md foundSuggested Fix
Add a blacklist classification decision tree to
docs/templates/incident-dex-indexer.mdor a newdocs/runbooks/blacklist-decision.mdcovering:Link this document from
docs/templates/incident-dex-indexer.mdat the Mitigation step.Verification Checklist
Labels
security,pre-launchCc: @PlasticDigits
Additionally blacklisting may occur for tos violations.
mentioned in issue #381
mentioned in merge request !924
mentioned in commit
3446b3332amentioned in merge request !928
Verification — GitLab #400 (SEC-B12)
Result: all acceptance criteria PASS. No repo changes required; remediation already on
main.Checklist
docs/runbooks/blacklist-decision.md§ Wallet blacklist — requires on-chain evidence of participation in theft/drain/abuse, tx hashes, governance approval; explicitly rejects suspicion-onlyUnblacklist*, document reversal reason, confirm no funds at risk, timeline loggingdocs/templates/incident-dex-indexer.mdMitigation step links to../runbooks/blacklist-decision.mdwith SEC-B12 / #400 referencesecurity-model.mdand ADR 0003Automated verification
Supporting artifacts
docs/runbooks/blacklist-decision.md— decision tree (mermaid), severity→action table, evidence-before-action table, rollback checklist, execution referenceskills/AGENTS_BLACKLIST_DECISION.md— agent playbook + drift guard pointerscripts/check_blacklist_decision_docs.py— CI/lint invariant for required markers and cross-linksClosing as verified on
main.mentioned in issue #337