run.veric.dev

Incident replay · what actually happened

Citibank / Revlon

Date
10 August 2020
Loss
$900M
In re Citibank August 11, 2020 Wire Transfers (S.D.N.Y. 2021) 520 F. Supp. 3d 390
Citibank N.A. v. Brigade Capital Mgmt., 2d Cir. 2022 (reversed)
Federal Reserve OCC Consent Order (Oct 2020)
T
0.0s / 14.0s
pivot @ 5.5s
verifier REFUTES at T = 5.5sactual deploy afternoon, 10 Aug

Actual reality

no instrumentation
  • DEPLOYafternoon, 10 Aug

    Operator initiates Revlon principal-+-interest payment via Citi's Flexcube workflow

  • SYMPTOM

    Default UI checkbox state routes principal portion via 'wash-account' override; reviewer accepts default

  • WIREwire submitted

    Wire executes for full principal-plus-interest: $893,944,008 instead of the $7.8M interest-only amount intended

  • ALARM12 Aug 2020

    Citi notices error; demands return. ~$385M voluntarily returned by lenders

  • LOSS16 Feb 2021

    S.D.N.Y. (Furman J.) holds discharge-for-value applies; Citi loses ~$500M

  • LOSS8 Sep 2022

    2d Circuit reverses; recovery proceeds. Net loss + costs $900M+; OCC fines Citi $400M for related controls failures

Loading counterfactual timeline…

The customer rule that would have caught it

approver_id != requestor_id

Three words. $900M.