Lỗ hổng nghiêm trọng trong bộ xác thực DNSSEC của Unbound có thể cho phép RCE thông qua vùng DNS độc hại

Mọi phiên bản của trình giải quyết DNS Unbound trước 1.26.1 đều có lỗi tràn bộ đệm heap (heap overflow) nghiêm trọng trong bộ xác thực DNSSEC của nó. Một kẻ tấn công kiểm soát vùng độc hại có thể kích hoạt lỗi này để thực thi mã từ xa (RCE). Unbound 1.26.1 đã được phát hành để khắc phục lỗi CVE-2026-81642 cùng với tám lỗ hổng bảo mật khác.
Lỗ hổng Unbound DNS

Mọi phiên bản của trình giải quyết DNS Unbound trước 1.26.1 đều có lỗi tràn bộ đệm heap (heap overflow) nghiêm trọng trong bộ xác thực DNSSEC của nó, đơn vị duy trì NLnet Labs cho biết trong một thông báo vào thứ Tư.

Kẻ tấn công kiểm soát một vùng (zone) độc hại và truy vấn một trình giải quyết (resolver) bị ảnh hưởng có thể kích hoạt lỗ hổng này, cho phép thực thi mã từ xa (RCE).

Unbound 1.26.1, được phát hành cùng ngày, đã khắc phục lỗi này (được theo dõi là CVE-2026-81642), cùng với tám lỗ hổng khác. Một trong tám lỗi đó, CVE-2026-82717, là một lỗi hỏng bộ nhớ heap trong quá trình tổng hợp CNAME được báo cáo bởi Ben Morris của Anthropic. Lỗi này cũng có thể dẫn đến thực thi mã từ xa "dưới một số hệ thống và tùy chọn biên dịch nhất định", NLnet Labs cho biết.

NLnet Labs chưa ghi nhận trường hợp nào khai thác một trong hai lỗi này, và mục nhập của CISA cho CVE-2026-81642 đã đánh dấu tình trạng khai thác là "không có" vào thứ Tư.

NLnet Labs xếp hạng lỗi DNSKEY ở mức Critical (Nghiêm trọng), với điểm CVSS là 9.1 (mặc dù NLnet Labs ghi là 4.0 (9.1)), và bảng điểm liệt kê vector tấn công qua mạng không yêu cầu đặc quyền hoặc sự tương tác của người dùng. NVD đã liệt kê CVE này là "Đang chờ phân tích" vào thứ Tư, vì vậy 9.1 là điểm số riêng của đơn vị duy trì.

Tình trạng tràn bộ đệm xảy ra khi bộ xác thực xử lý một bản ghi DNSKEY có tên chủ sở hữu là một con trỏ nén (compression pointer) vào chính dữ liệu của bản ghi đó. Tác động mà NLnet Labs liệt kê là từ chối dịch vụ (DoS), với khả năng thực thi mã từ xa thông qua "dữ liệu do kẻ tấn công kiểm soát".

Mọi phiên bản cho đến và bao gồm 1.26.0 đều bị ảnh hưởng. Điều đó bao gồm 1.25.2, bản phát hành bảo mật từ tháng 7 và 1.26.0, được phát hành vào ngày 4 tháng 8. Lỗi bộ xác thực nghiêm trọng mà NLnet Labs đã sửa vào tháng 5, CVE-2026-33278, là một lỗi khác và bản cập nhật 1.25.1 đã sửa lỗi đó nhưng không sửa được lỗi này.

NLnet Labs không đính kèm điều kiện cấu hình nào cho phạm vi bị ảnh hưởng đó và chưa cho biết liệu một resolver đã tắt xác thực DNSSEC có thể bị tấn công hay không.

Nâng cấp hoặc Vá lỗi

Unbound 1.26.1 hiện có sẵn dưới dạng mã nguồn, cùng với mã kiểm tra (checksum) và chữ ký PGP, cũng như các trình cài đặt và tệp thực thi cho Windows. Nếu bạn không thể nâng cấp ngay, thông báo đưa ra hai cách để vá cây mã nguồn:

NLnet Labs cho biết các bản vá độc lập cho CVE-2026-81642 và CVE-2026-82717 đã được thử nghiệm và hoạt động trên phiên bản 1.26.0. Chính sách bảo mật của họ là vá phiên bản mới nhất đã phát hành.

Trình theo dõi bảo mật của Debian đã liệt kê Unbound 1.26.1-1 là đã được khắc phục trong nhánh unstable vào thứ Năm, trong khi các nhánh bookworm, trixie và forky vẫn được liệt kê là dễ bị tấn công.

Chín bản sửa lỗi

Các ghi chú phát hành nêu tên chín CVE. Bảng dưới đây cung cấp phạm vi bị ảnh hưởng và điều kiện kích hoạt của từng lỗi theo mô tả của NLnet Labs.

CVE Mức độ Phiên bản bị ảnh hưởng Điều kiện Tác động
CVE-2026-81642 Critical Đến và bao gồm 1.26.0 Kẻ tấn công kiểm soát một vùng độc hại và truy vấn resolver Từ chối dịch vụ, có thể thực thi mã từ xa
CVE-2026-82717 High Đến và bao gồm 1.26.0 Tổng hợp CNAME trong một phản hồi upstream. Thực thi mã dưới một số hệ thống và tùy chọn biên dịch. Từ chối dịch vụ, có thể thực thi mã từ xa
CVE-2026-81634 High Đến và bao gồm 1.26.0 Tên truy vấn dài 255 ký tự với phản hồi TCP lớn, từ name server độc hại hoặc phản hồi bị giả mạo Từ chối dịch vụ
CVE-2026-77955 Medium 1.13.2 đến 1.26.0 Các vùng có zonemd-check: yes nằm bên dưới, nhưng không phải tại, một trust anchor Từ chối dịch vụ, dữ liệu vùng bị giả mạo được phục vụ trước khi kiểm tra ZONEMD
CVE-2026-78227 Medium 1.22.0 đến 1.26.0 Được biên dịch với --with-libngtcp2 và có cấu hình quic-port Từ chối dịch vụ
CVE-2026-80225 Medium Đến và bao gồm 1.26.0 Một luồng liên tục các tên khác nhau không có trong cache qua một kết nối TCP hoặc DoT Suy giảm dịch vụ
CVE-2026-82720 Medium 1.12.0 đến 1.26.0 Biên dịch với --with-libnghttp2 và https-port. NLnet Labs gọi tác động này là hạn chế Từ chối dịch vụ
CVE-2026-85501 Medium Đến và bao gồm 1.26.0 Vùng độc hại phục vụ các cuộc tấn công độ phức tạp thuật toán ReTrap (TagTrap, DelegationTrap, NsecTrap, AdditionalTrap) Suy giảm dịch vụ
CVE-2026-77860 Low 1.20.0 đến 1.26.0 Đường dẫn mã serve-expired, bỏ qua biện pháp đối phó được thêm vào cho DNSBomb Có thể tham gia vào một cuộc tấn công khuếch đại DoS dạng xung

Bản sửa lỗi ReTrap cũng thay đổi một giá trị mặc định: val-clean-additional hiện đã tắt, vì vậy Unbound không còn xác thực dữ liệu DNSSEC trong phần bổ sung (additional section) của phản hồi theo mặc định.

Lỗ hổng được báo cáo cho NLnet Labs vào ngày 11 tháng 8 bởi Yuqi Qiu, người đã tìm thấy nó cùng với Xiang Li tại Phòng thí nghiệm AOSP của Đại học Nam Khai, theo dòng thời gian trong hồ sơ CVE. NLnet Labs đã chia sẻ bản vá vào ngày hôm sau và người báo cáo đã xác minh nó vào ngày 13 tháng 8. Bản sửa lỗi đã được xuất xưởng năm tuần sau đó trong đợt phát hành 1.26.1.

Chính sách bảo mật của NLnet Labs cho biết đối với các vấn đề chưa được công khai, họ đặt mục tiêu phát hành các bản sửa lỗi "trong khoảng vài tuần".