Lỗ hổng firmware Coldcard khiến hacker rút 89 triệu USD BTC

Một lỗ hổng nghiêm trọng trong firmware của Coldcard — dòng ví phần cứng được cộng đồng Bitcoin tin dùng — đã bị khai thác để chiếm đoạt khoảng 1.367 BTC (xấp xỉ 89 triệu USD), ảnh hưởng tới 4.585 địa chỉ. Điểm khác biệt của sự cố lần này là kẻ tấn công không nhắm vào sàn giao dịch hay lừa đảo phishing, cũng không cần truy cập trực tiếp vào thiết bị. Thay vào đó, lỗi nằm ngay ở khâu tạo seed nội bộ: firmware tạo seed thiếu ngẫu nhiên, cho phép kẻ tấn công tái dựng private key ngoại tuyến rồi quét sạch tiền. Diễn biến: 3 đợt tấn công, tập trung vào ví giá trị lớn Ngày 30/7/2026, vụ tấn công bắt đầu khi một đối tượng chưa rõ danh tính rút BTC từ các ví Coldcard. - Đợt 1 (khoảng 12:00 UTC ngày 30/7/2026): 594 BTC (khoảng 38 triệu USD) biến mất khỏi khoảng 500 ví chỉ trong 25 phút. Theo Chainalysis, kẻ tấn công ưu tiên mục tiêu “giàu” nhất, thu hơn 30 triệu USD trong 10 phút đầu; riêng một ví mất khoảng 1,8 triệu USD. - Đợt 2 (cùng ngày 30/7/2026): tổng thiệt hại nâng lên 1.082 BTC (khoảng 70 triệu USD) trên 1.196 địa chỉ trong 41 phút. - Đợt 3 (1–2/8/2026): lũy kế đạt 1.367 BTC (khoảng 89 triệu USD) trên 4.585 địa chỉ. Galaxy Research sau đó xác định khoảng 600 địa chỉ nghi thuộc kẻ tấn công và đã báo cáo cho cơ quan điều tra, các đơn vị tuân thủ và nhóm an ninh mạng. Galaxy Research cũng ghi nhận đợt 1 và đợt 2 có dấu hiệu vận hành tương tự, trong khi đợt 3 dùng cách gom tiền khác, làm dấy lên khả năng có thêm một tác nhân độc lập cũng tìm ra và khai thác lỗ hổng. Mấu chốt của vụ việc: seed yếu ngay từ lúc khởi tạo Coldcard được mua để cô lập khóa riêng khỏi môi trường trực tuyến. Dù vậy, lỗi thiết kế/triển khai khiến chính thiết bị tạo ra seed với độ ngẫu nhiên không đạt chuẩn. Nói cách khác, vấn đề xuất hiện ngay thời điểm ví tạo seed; cập nhật firmware về sau không thể “chữa” được seed đã yếu. Dòng thời gian kỹ thuật của lỗ hổng firmware - 01/03/2021: Một commit thay đổi cơ chế tạo seed từ ckcc.rng_bytes (lấy ngẫu nhiên từ RNG phần cứng trong chip STM32) sang ngu.random.bytes (PRNG phần mềm). - 17/03/2021: Firmware v4.0.0 phát hành kèm đoạn mã lỗi. Từ thời điểm này, seed tạo trên Mk2 và Mk3 chỉ còn khoảng 40 bit entropy. - 2021–2026: Lỗi tồn tại suốt 5 năm qua nhiều lần cập nhật, rà soát bảo mật và cả một đợt audit có hỗ trợ AI nhưng không bị phát hiện. - 30/07/2026: Bắt đầu đợt rút tiền quy mô lớn. - 30–31/07/2026: Coinkite phát hành cảnh báo và firmware đã vá; Block (công ty của Jack Dorsey) công bố phân tích kỹ thuật độc lập. - 01/08/2026: Coinkite cập nhật cảnh báo, thừa nhận Mk4, Mk5 và Q cũng bị giảm entropy. Vì sao “một dòng code” lại nguy hiểm đến vậy Trước đây, thiết bị dùng nguồn ngẫu nhiên vật lý từ phần cứng. Sau thay đổi ngày 01/03/2021, PRNG phần mềm dựa vào các đầu vào có tính quyết định như số serial thiết bị, giá trị timer nội bộ và lịch sử các lần gọi RNG trước đó; sau đó firmware dùng SHA256d để băm. Băm có thể “xáo trộn” dữ liệu đầu vào nhưng không tự tạo thêm ngẫu nhiên. Nếu đầu vào chỉ có 2^40 khả năng, đầu ra cũng chỉ quanh 2^40 khả năng. Hệ quả: - Mk2/Mk3 sinh seed khoảng ~40 bit entropy. - Mk4/Mk5/Q có thêm đầu vào từ secure element nên entropy hiệu dụng khoảng ~72 bit. Cả hai mức đều thấp hơn chuẩn an toàn kỳ vọng 128 bit đối với seed Bitcoin. CEO Foundation Devices Zach Herbert cho biết lỗi xuất hiện trong đợt viết lại firmware tháng 3/2021 nhằm thay phần mã GPL bằng thư viện mật mã mới, mang tính “chuyển đổi giấy phép” hơn là quyết định thiết kế an ninh. Dù vậy, mã lỗi vẫn nằm trong sản phẩm 5 năm. Cách kẻ tấn công thực hiện: brute-force seed yếu Kẻ tấn công không cần lấy thiết bị hay truy cập từ xa. Với các ràng buộc như UID thiết bị, trạng thái timer và chuỗi gọi PRNG, đối tượng có thể tái tạo các luồng seed ứng viên hoàn toàn ngoại tuyến. Sau đó: 1) chuyển seed ứng viên thành các địa chỉ Bitcoin; 2) đối chiếu với dữ liệu on-chain công khai; 3) khi tìm trúng seed tạo ra địa chỉ đang có BTC, kẻ tấn công có thể suy ra private key tương ứng và quét tiền. Với ~40 bit entropy, không gian tìm kiếm cỡ một nghìn tỷ khả năng. Con số này không còn bất khả thi với phần cứng tính toán hiện đại, đặc biệt khi kẻ tấn công khoanh vùng giai đoạn seed được tạo (2021–2026) và ưu tiên các địa chỉ có số dư lớn. Block mô tả thiết kế này là cấu trúc “fail-open nguy hiểm”, vì một số điều kiện khởi động có thể làm không gian tìm kiếm giảm xuống chỉ còn 2^32 giá trị. Hiện chưa có bằng chứng bị khai thác đại trà theo nhánh này, nhưng rủi ro cấu trúc vẫn đáng lo ngại. Ai bị ảnh hưởng: phụ thuộc firmware tại thời điểm tạo seed Rủi ro không phụ thuộc vào việc thiết bị hiện đang chạy firmware nào, mà phụ thuộc firmware lúc bạn khởi tạo seed. Người dùng tạo seed trên firmware lỗi rồi cập nhật về sau vẫn đang nắm một seed yếu. Phạm vi theo dòng máy/phiên bản: - Mk2/Mk3: firmware v4.0.0 / v4.0.1 đến v4.1.9, entropy ~40 bit. Được đánh giá rủi ro cao nhất và đã có khai thác thực tế. Bản vá: v4.2.0+. - Mk4/Mk5: trước v5.6.0 (standard) / trước v6.6.0X (Edge), entropy ~72 bit. Chưa ghi nhận bị khai thác diện rộng, nhưng vẫn thấp hơn chuẩn. Bản vá: v5.6.0+ / v6.6.0X+. - Q: trước v1.5.0Q (standard) / trước v6.6.0QX (Edge), entropy ~72 bit. Bản vá: v1.5.0Q+ / v6.6.0QX+. Một ngoại lệ quan trọng: nếu trong lúc tạo seed bạn đã thêm ít nhất 50 lần gieo xúc xắc độc lập và riêng tư, bạn đã bổ sung entropy thực từ bên ngoài, gần như vô hiệu hóa điểm yếu PRNG của firmware. Passphrase BIP39 mạnh giúp tăng độ khó brute-force, nhưng không “sửa” seed gốc; Coinkite vẫn khuyến nghị di chuyển tiền khỏi seed tạo từ firmware bị ảnh hưởng. Coinkite đã làm gì sau sự cố Coinkite phát cảnh báo công khai đầu tiên vào ngày 30/7 và 31/7/2026, khoảng 30 giờ sau khi đợt quét ban đầu bắt đầu. Công ty phát hành firmware đã vá cho mọi dòng máy bị ảnh hưởng (Mk3 v4.2.0, Mk4/Mk5 v5.6.0, Q v1.5.0Q), công bố phân tích kỹ thuật và hướng dẫn migration. Ngày 1/8, Coinkite mở rộng phạm vi cảnh báo sang Mk4, Mk5 và Q. Dù vậy, phản ứng của Coinkite cũng bị chỉ trích vì lỗi tồn tại 5 năm qua nhiều vòng rà soát và vì cảnh báo đến muộn trong lúc dòng tiền bị quét liên tục gần 30 giờ. Nhà nghiên cứu Kevin Loaec (Wizardsardine) cho rằng các cấu hình multisig có khóa từ Coldcard bị ảnh hưởng nên được coi là đã lộ, điểm mà khuyến cáo của Coinkite chưa làm rõ đầy đủ. Cần làm gì: cập nhật firmware là chưa đủ, phải tạo seed mới và chuyển tiền Chỉ cập nhật firmware không thể làm seed cũ trở nên an toàn. Cách xử lý được khuyến nghị: 1) Cập nhật firmware lên bản đã vá, tải từ website chính thức của Coinkite và kiểm tra kỹ trước khi cài. 2) Tạo seed hoàn toàn mới trên thiết bị đã cập nhật (không khôi phục seed cũ). Nên bổ sung ít nhất 50 lần gieo xúc xắc riêng tư để tăng entropy. 3) Sao lưu và xác minh seed mới trên thiết bị; tạo địa chỉ nhận và đối chiếu địa chỉ hiển thị trên phần mềm ví với địa chỉ trên màn hình Coldcard. 4) Chuyển toàn bộ BTC từ các địa chỉ thuộc seed cũ sang địa chỉ thuộc seed mới; kiểm tra kỹ địa chỉ đích và thông tin giao dịch trên Coldcard trước khi ký. 5) Xác nhận giao dịch đã được xác nhận trên trình khám phá khối; kiểm tra địa chỉ cũ không còn số dư và ví mới hiển thị đủ tiền. 6) Chỉ khi mọi giao dịch đã xác nhận và bạn chắc chắn nắm quyền truy cập seed mới, hãy hủy an toàn bản sao seed cũ (xóa mọi bản lưu vật lý/số). Người dùng multisig cần xoay (rotate) mọi khóa phát sinh từ seed Coldcard bị ảnh hưởng, rà soát lại ngưỡng ký (threshold), thay từng khóa yếu và xác minh cấu hình multisig mới trước khi chuyển số tiền lớn. Tác động rộng hơn với xu hướng tự lưu ký Sự cố cho thấy tự lưu ký không chỉ là “giữ private key”, mà còn là “tạo private key bằng nguồn ngẫu nhiên chất lượng cao”. Đây là vụ thất bại PRNG lớn thứ ba trong vài năm gần đây sau Milk Sad (2023) và Ill Bloom (2026): lỗi nằm ở khâu sinh khóa, nơi người dùng bình thường khó tự kiểm chứng. Vụ việc cũng làm nóng tranh luận open-source/closed-source: firmware Coldcard công khai mã nguồn ở mức nhất định, nhưng lỗi vẫn tồn tại 5 năm mà không bị phát hiện. Mã nguồn mở không tự động đồng nghĩa an toàn, dù khả năng kiểm tra độc lập vẫn là điều kiện cần. CoinDesk cho biết sự cố có thể khiến một bộ phận nhà đầu tư nghiêng về Bitcoin ETF để tránh rủi ro vận hành khi tự quản khóa. Đổi lại, rủi ro được chuyển từ cá nhân sang tổ chức lưu ký được quản lý. Blockaid ghi nhận trong nửa đầu 2026, phần lớn thiệt hại crypto đến từ khóa bị lộ và lỗi vận hành, không phải khai thác smart contract. Vụ Coldcard phù hợp với xu hướng đó: kẻ tấn công đánh vào quy trình tạo khóa, không phải “hack Bitcoin”. Thông tin Hỏi & Đáp nhanh - Coldcard của tôi có bị lộ không? Có rủi ro cao nếu bạn tạo seed trên Mk2/Mk3 với firmware v4.0.0 đến v4.1.9 mà không thêm đủ entropy từ xúc xắc. Mk4/Mk5/Q tạo seed trước bản vá có khoảng ~72 bit entropy; chưa có xác nhận bị khai thác diện rộng, nhưng vẫn dưới chuẩn 128 bit. - Cập nhật firmware có sửa được seed cũ không? Không. Cập nhật chỉ bảo vệ các seed tạo mới về sau. Bạn cần tạo seed mới và chuyển toàn bộ BTC. - Ledger và Trezor có bị ảnh hưởng không? Không. Ledger, Trezor và Block (Bitkey) cho biết họ dùng cơ chế tạo entropy khác. - Tổng số BTC bị lấy là bao nhiêu? Tính đến 2/8/2026: khoảng 1.367 BTC (~89 triệu USD) qua 3 đợt, ảnh hưởng 4.585 địa chỉ; con số có thể thay đổi khi điều tra tiếp. - Gieo xúc xắc có bảo vệ được tôi không? Có, nếu bạn đã thực hiện ít nhất 50 lần gieo xúc xắc độc lập và riêng tư trong lúc tạo seed. Nội dung chỉ nhằm mục đích thông tin và giáo dục, không phải tư vấn tài chính, đầu tư, pháp lý hay an ninh. Người dùng nên tự nghiên cứu trước khi đưa ra quyết định liên quan đến tiền mã hóa.