Component: ghost-dao-contracts @ b87dff4, src/Treasury.sol:70-77 (withdraw), src/Treasury.sol:259-261 (excessReserves).
Description: GhostTreasury.withdraw is onlyGovernor and reduces totalReserves by tokenValue(token, amount) without touching FTSO supply and without checking that reserves stay above supply. excessReserves() computes totalReserves - (FTSO.totalSupply() - totalDebt) under Solidity 0.8 checked arithmetic. Once a withdrawal pushes totalReserves below totalSupply, excessReserves() reverts with a panic on every call. That bricks treasury.mint, GhostDistributor.distribute() / retrieveBounty(), GhostStaking.rebase() (which calls both distributor functions unconditionally when a distributor is set), and therefore stake() and unstake(). Withdrawing reserves is a routine, honest treasury operation (grants, expenses, rebalancing); the contract gives the operator no guardrail and no warning. The failure is total even for a zero-amount mint: distribute() with rewardRate == 0 still evaluates excessReserves() and reverts.
Impact: Temporary denial of service of the core staking functions (stake, unstake, rebase) for all users. No fund loss; positions are untouched. Recovery requires one governor transaction (deposit reserves back or point the distributor at address(0)).
Reproduction: test/poc/Tim4Round2Withdraw.t.sol: 2 passed. After a governor withdrawal of 60 percent of reserves, treasury.excessReserves() reverts, staking.rebase() reverts, and staking.stake() reverts; after the governor deposits reserves back, rebase() works again.
Severity: Low. Reason: the trigger is a trusted party making an accounting error, the halt is recoverable with no loss of funds, and the same party can already move all reserves. It is reported because the failure mode is disproportionate and silent.
Recommendation: In withdraw, require totalReserves - value >= IFTSO(FTSO).totalSupply() - totalDebt (or at least emit an explicit warning event when the withdrawal eats into backing). Alternatively, make rebase() resilient: skip the distributor leg instead of reverting when the treasury cannot mint.
Verification: VERIFIED (forge PoC executed, passed).