A withdrawal is signed using another withdrawal's input amounts during a migration
- Severity
- High
- Class
- Protocol logic
- System
- Pegged-asset bridge
During a key migration, a withdrawal is signed against the wrong inputs, freezing the withdrawal and stalling the migration.
A migration is a delicate moment: two sets of state coexist and the code has to keep each withdrawal matched to its own inputs. Here the amounts from one withdrawal's inputs were attributed to another during signing, producing a signature over a transaction that didn't add up.
A withdrawal signed against the wrong inputs can't be completed, and because the flaw sits in the migration path, it jams the migration itself.
Why it rated High
Frozen user withdrawals plus a halted migration — a serious availability and correctness failure at the worst possible time, though not direct theft.
The fix class
Bind each input's amount to the specific withdrawal it belongs to throughout the migration signing flow.

