Một thợ đào có thể đẩy tệp undo của Bitcoin Core vượt 4 GiB, khiến vị trí 32-bit quay vòng và làm hỏng dữ liệu; nút sẽ tắt nếu sau đó xảy ra đúng kiểu reorg. Trên Windows và hệ 32-bit, lỗi xuất hiện ngay ở 2 GiB mà không cần reorg. CVE-2026-117346 xếp mức thấp và cần chừng một tháng toàn bộ khối của mạng. Các bản 32.1, 31.2, 30.4 và 29.5 vá cho hệ 64-bit; nút 32-bit và lưu khối trên FAT32 vẫn bị ảnh hưởng.
Giám sát ngoại lệ socket giờ thống nhất giữa poll() và select() trong Bitcoin Core 29.5 (#36665), và peer bị tạm dừng gửi phải chịu thời gian chờ (#36667). Vị trí flatfile chuyển sang số nguyên 64-bit (#36669), nút mặc định coi địa chỉ lấy từ seed là hỗ trợ v2transport, và một DNS seed bị gỡ.
Giả vờ không hỗ trợ ping của BIP 31, một peer độc hại có thể né lệnh ngắt kết nối sau 20 phút rồi đọc thật chậm, làm hàng đợi gửi của nút phình thêm tối đa 2MB mỗi giờ với mỗi peer chiều vào và 5MB với mỗi peer chiều ra. CVE-2026-117349, mức trung bình, được #36667 xử lý trong Bitcoin Core 32.1, 31.2, 30.4 và 29.5; nút chạy -blocksonly ít bị ảnh hưởng hơn nhiều.
Nút chạy Windows, macOS và BSD có thể bị một peer đang kết nối đánh sập bằng dữ liệu khẩn TCP: loại dữ liệu này lọt qua cơ chế tạm dừng đọc của backend select() và chiếm bộ nhớ không giới hạn (CVE-2026-117350). Nút Linux dùng poll() nên không bị ảnh hưởng. Lỗi mức trung bình này do một đợt quét bằng LLM thuộc Project Loupe phát hiện và đã được vá trong Bitcoin Core 32.1, 31.2, 30.4 và 29.5.
Bitcoin Core 30.4 thôi coi các bit 5 đến 28 của BIP 9 là tín hiệu soft fork, theo BIP 323, nên khối bật những bit này không còn gây cảnh báo về đợt triển khai không xác định (#34779). Về mạng, peer bị tạm dừng gửi giờ phải chịu thời gian chờ (#36667), còn vị trí flatfile chuyển sang số nguyên 64-bit (#36669).
Private broadcast có mức trần trong Bitcoin Core 31.2: hàng đợi các giao dịch chưa được mạng phản hồi lại dừng ở 10.000 mục và từ chối yêu cầu mới khi đầy, bên gọi phải tự dọn bằng abortprivatebroadcast (#35406). Các version bit từ 5 đến 28 cũng thôi được tính là tín hiệu soft fork, theo BIP 323.
Private broadcast trong Bitcoin Core 32.1 hết nguy cơ lộ IP người gửi: trước đây, khi kết nối v2 thất bại, lần thử lại qua v1 có thể đi thẳng thay vì qua Tor. -maxconnections mặc định tăng từ 125 lên 200, còn chuyển tiếp giao dịch đi được giới hạn tốc độ bằng một hàng chờ chung thay vì theo từng peer.
Đọc ghi đĩa dày đặc khi nút chạy bình thường bắt nguồn từ một lỗi nay đã được vá trong Bitcoin Core 29.4: cơ sở dữ liệu chainstate cứ tự ghi lại những phần lớn của chính nó. Bản sửa tắt seek compaction của LevelDB và nén chainstate định kỳ (#35465).
Bitcoin Core 30.3 chấm dứt tình trạng chainstate ghi đĩa liên tục, đồng thời sửa lỗi sập feebumper khi không có phí bump tổng hợp (#34870) và lỗi chọn coin tính một số tiền thành giá trị boolean (#34888). Ở mảng PSBT, pubkey MuSig2 giờ được kiểm tra khi giải tuần tự hóa pubnonce và chữ ký một phần (#34219).
Bitcoin Core 31.1 bịt lỗ rò địa chỉ IP trong -privatebroadcast: một số kết nối đi qua clearnet thay vì mạng riêng tư đã bật. Bản cập nhật cũng chấm dứt việc ghi lại chainstate gây hoạt động đĩa quá mức và từ chối danh sách pubkey rỗng khi tổng hợp khóa MuSig2 (#35316).
Bắt tay v2 thất bại có thể làm lộ IP người gửi trong Bitcoin Core 31.0: khi bật -privatebroadcast, lần thử lại bằng v1 bỏ qua proxy Tor và nối thẳng tới peer. Tác nhân kích hoạt nhiều khả năng là peer độc hại cố tình đóng bắt tay. Trong lúc chờ 31.1, người dùng có thể tắt tính năng này, đặt -v2transport=0 hoặc cho lưu lượng IPv4/IPv6 đi ra qua Tor.
Các bản Bitcoin Core sau 0.14.0 và trước 29.0 có thể đọc vùng nhớ đã giải phóng khi xác thực một khối không hợp lệ được dựng sẵn, làm sập nút. CVE-2024-52911 xếp mức cao, dù kẻ tấn công phải bỏ proof-of-work hợp lệ ở đỉnh chuỗi, và khả năng thực thi mã từ xa bị đánh giá là thấp. Cory Fields báo lỗi; bản vá nằm trong 29.0.
Cluster mempool thay thế thiết kế cũ trong Bitcoin Core 31.0: giới hạn tổ tiên và hậu duệ nhường chỗ cho các cụm tối đa 64 giao dịch và 101 kB, còn CPFP carveout bị bỏ. -dbcache mặc định tăng lên 1024 MiB trên máy có từ 4096 MiB RAM, và tùy chọn mới -privatebroadcast chỉ phát giao dịch từ sendrawtransaction qua Tor hoặc I2P.
Bitcoin Core 28.4 sửa hai lỗi liên quan đến ví không tên: di chuyển ví legacy (#34156) và createfromdump, vốn xóa luôn thư mục wallets khi thất bại (#34215). Một DNS seed cũng bị gỡ khỏi chainparams (#33723).
Peer gửi giao dịch vi phạm đồng thuận không còn bị phạt trên Bitcoin Core 29.3 (#33050). Phần xác thực có thêm bộ đệm sighash midstate theo từng đầu vào cho script legacy, P2SH và segwit v0 (#32473) và phát hiện witness bị loại bỏ mà không cần chạy lại kiểm tra Script (#33105), còn addPackageTxs của miner hết lỗi tràn số nguyên không dấu (#33475).
Lỗi di chuyển ví legacy không tên đã biến mất trong Bitcoin Core 30.2 (#34156), và createfromdump không còn xóa thư mục wallets khi thất bại với loại ví này (#34215). Nhấn Ctrl-C cũng hết treo trong các lệnh gọi chờ IPC (#33511).
Trong một số điều kiện hiếm gặp, di chuyển wallet.dat thất bại trên Bitcoin Core 30.0 hoặc 30.1 có thể xóa sạch thư mục ví, đe dọa tiền của người dùng. Các nhà phát triển đã gỡ hai bản cài đặt này và đề nghị không di chuyển ví qua GUI hay RPC cho tới khi có 30.2. Lỗi chỉ xảy ra với wallet.dat mặc định, không tên, không di chuyển hoặc không tải được; người dùng khác không bị ảnh hưởng.
Ví trên Bitcoin Core 30.1 không còn xét đến các coin TRUC chưa xác nhận có giao dịch tổ tiên (#33528). Ở mảng IPC, các tùy chọn không còn cần tham số -m (#33229), ghi log tin nhắn tốn ít tài nguyên hơn (#33517) và lệnh waitNext đang chạy có thể hủy được (#33676).
Những giao dịch phi chuẩn được dựng sẵn có thể giữ chân một nút Bitcoin Core vài giây mỗi giao dịch mà bên gửi không bị ngắt kết nối, giúp kẻ tấn công làm chậm quá trình lan truyền khối. CVE-2025-46598, mức thấp, do Antoine Poinsot báo cáo và được giảm thiểu trong v30.0 bằng cách rút ngắn thời gian xác thực trong trường hợp xấu nhất.
Khối lớn hơn 1GB có thể làm tràn một phép kiểm tra kích thước trên nút Bitcoin Core 32-bit và gây sập lúc ghi xuống đĩa, nhưng chỉ khi đó là compact block và nạn nhân đặt -maxmempool trên 3GB với 1GB giao dịch bên trong. Pieter Wuille phát hiện CVE-2025-46597, mức thấp; bản 29.1 và 30.0 xử lý bằng cách giới hạn -maxmempool trên hệ 32-bit.