SlowMist đã đưa ra một phân tích về các lỗ hổng quản trị Tornado.Cash. Vào ngày 20 tháng 5, Tornado.Cash đã phải chịu một cuộc tấn công quản trị và những kẻ khai thác đã nắm quyền kiểm soát việc quản trị Tornado.Cash bằng cách thực hiện các đề xuất độc hại.
Vào ngày 13 tháng 5, người dùng đã bắt đầu Đề xuất 20 (Proposition 20) và nêu rõ trong đề xuất rằng Đề xuất 20 là phần bổ sung cho Đề xuất 16 và có cùng logic thực hiện. Nhưng trên thực tế, hợp đồng đề xuất có thêm một logic tự hủy, người tạo ra nó được tạo thông qua create2 và có chức năng tự hủy, do đó, sau khi tự hủy với hợp đồng đề xuất, người dùng vẫn có thể triển khai một Bytecode khác được gửi đến cùng một địa chỉ. Thật không may, cộng đồng không thấy hành vi gian lận nào trong hợp đồng được đề xuất và nhiều người dùng đã bỏ phiếu cho đề xuất này.
Vào ngày 18 tháng 5, việc khai thác liên tục khóa 0 mã thông báo trong quản trị bằng cách tạo địa chỉ mới với nhiều giao dịch. Lợi dụng tính năng mà hợp đồng đề xuất có thể hủy và triển khai lại logic mới, người dùng đã hủy hợp đồng thực hiện đề xuất lúc 7:18 (UTC) ngày 20 tháng 5 và triển khai một hợp đồng độc hại tại cùng một địa chỉ, có logic là sửa đổi Số lượng mã thông báo bị khóa. Sau khi kẻ tấn công sửa đổi hợp đồng đề xuất, anh ta đã thực hiện hợp đồng đề xuất độc hại vào lúc 7:25 (UTC) ngày 20 tháng 5.
Việc thực hiện đề xuất được thực hiện thông qua Delegatecall, do đó, việc thực hiện đề xuất khiến số lượng khóa mã thông báo của địa chỉ do nhà phát triển kiểm soát trong hợp đồng quản trị được sửa đổi thành 10.000. Sau khi đề xuất được thực hiện, kẻ tấn công đã mở khóa mã thông báo TORN từ kho tiền quản trị. Dự trữ mã thông báo TORN trong kho tiền đã cạn kiệt trong khi những kẻ khai thác đã nắm quyền kiểm soát quản trị.