{ "exploit_id": "EXP-003", "title": "Perpetual emergency: majority-declared emergency with no sunset", "summary": "A bare majority declares an emergency that never expires and spends from the treasury without further votes.", "mechanism": "Kernel v0.1 treats emergency declarations as ordinary simple-majority questions, suspends review periods while an emergency is active, attaches no sunset, and exempts emergency spending from the vote requirement entirely. The attacking 11 declare an emergency over 9 no votes, then transfer 400 units (40% of the treasury) across six turns with no further ballots cast by anyone. Because v0.1 has no expiry mechanism, the emergency persists indefinitely and every future proposal is fast-tracked. Worst-off impact: the minority loses both treasury share and procedural protections simultaneously, with no act available to restore either.", "severity": "critical", "capture_objective": "entrench_power", "discovered_by": "emergency_abuse", "tournament": {"id": "T2", "round": 9, "seed": 2417}, "status": "patched-v0.2", "initial_treasury": 1000.0, "citizens": [ {"id": "A01", "faction": "attacker"}, {"id": "A02", "faction": "attacker"}, {"id": "A03", "faction": "attacker"}, {"id": "A04", "faction": "attacker"}, {"id": "A05", "faction": "attacker"}, {"id": "A06", "faction": "attacker"}, {"id": "A07", "faction": "attacker"}, {"id": "A08", "faction": "attacker"}, {"id": "A09", "faction": "attacker"}, {"id": "A10", "faction": "attacker"}, {"id": "A11", "faction": "attacker"}, {"id": "D01", "faction": "defender"}, {"id": "D02", "faction": "defender"}, {"id": "D03", "faction": "defender"}, {"id": "D04", "faction": "defender"}, {"id": "D05", "faction": "defender"}, {"id": "D06", "faction": "defender"}, {"id": "D07", "faction": "defender"}, {"id": "D08", "faction": "defender"}, {"id": "D09", "faction": "defender"} ], "kernel_params_at_discovery": { "quorum": 0.5, "thresholds": {"spend": 0.5, "amend_kernel": 0.667, "expel": 0.5, "emergency": 0.5, "floor_breach": 0.75}, "review_period_turns": 1, "review_period_overrides": {}, "allow_call_question": true, "roll_snapshot_at_open": false, "turns_per_epoch": 10, "spend": {"per_proposal_cap": null, "epoch_rate_cap": null, "commons_floor": null}, "emergency": {"sunset_turns": null, "renewal_threshold": null, "spend_requires_vote": false, "expedited_review_turns": null, "suspends_review": true}, "delegation": {"max_depth": null, "max_weight_frac": null, "epoch_expiry": false}, "single_subject_rule": false }, "action_trace": [ {"t": "propose", "by": "A01", "id": "em1", "kind": "emergency"}, {"t": "vote", "by": "A01", "on": "em1", "choice": "yes"}, {"t": "vote", "by": "A02", "on": "em1", "choice": "yes"}, {"t": "vote", "by": "A03", "on": "em1", "choice": "yes"}, {"t": "vote", "by": "A04", "on": "em1", "choice": "yes"}, {"t": "vote", "by": "A05", "on": "em1", "choice": "yes"}, {"t": "vote", "by": "A06", "on": "em1", "choice": "yes"}, {"t": "vote", "by": "A07", "on": "em1", "choice": "yes"}, {"t": "vote", "by": "A08", "on": "em1", "choice": "yes"}, {"t": "vote", "by": "A09", "on": "em1", "choice": "yes"}, {"t": "vote", "by": "A10", "on": "em1", "choice": "yes"}, {"t": "vote", "by": "A11", "on": "em1", "choice": "yes"}, {"t": "vote", "by": "D01", "on": "em1", "choice": "no"}, {"t": "vote", "by": "D02", "on": "em1", "choice": "no"}, {"t": "vote", "by": "D03", "on": "em1", "choice": "no"}, {"t": "vote", "by": "D04", "on": "em1", "choice": "no"}, {"t": "vote", "by": "D05", "on": "em1", "choice": "no"}, {"t": "vote", "by": "D06", "on": "em1", "choice": "no"}, {"t": "vote", "by": "D07", "on": "em1", "choice": "no"}, {"t": "vote", "by": "D08", "on": "em1", "choice": "no"}, {"t": "vote", "by": "D09", "on": "em1", "choice": "no"}, {"t": "advance"}, {"t": "emergency_spend", "by": "A01", "amount": 100.0, "to": "A01"}, {"t": "advance"}, {"t": "emergency_spend", "by": "A01", "amount": 100.0, "to": "A02"}, {"t": "advance"}, {"t": "emergency_spend", "by": "A01", "amount": 100.0, "to": "A03"}, {"t": "advance"}, {"t": "emergency_spend", "by": "A01", "amount": 100.0, "to": "A04"}, {"t": "advance"}, {"t": "advance"}, {"t": "advance"} ], "success_predicate": {"type": "emergency_capture", "min_turns": 5, "min_spend_frac": 0.3}, "patched_assertions": [ {"type": "emergency_turns_at_most", "n": 0}, {"type": "blocked_actions_at_least", "n": 4} ], "proposed_patch": { "params": { "thresholds.emergency": 0.667, "emergency.sunset_turns": 3, "emergency.renewal_threshold": 0.75, "emergency.spend_requires_vote": true, "emergency.suspends_review": false, "emergency.expedited_review_turns": 1 }, "rationale": "Emergencies become genuinely exceptional: declaration takes a two-thirds supermajority, every emergency sunsets automatically after three turns, consecutive renewal requires 75%, and emergency status only expedites review (to one turn) rather than suspending it. Crucially, an emergency never creates a vote-free spending channel - spends remain proposals subject to caps and the commons floor." } }