Lỗ hổng DHCPv6 nghiêm trọng trong OpenWrt có thể cho phép kẻ tấn công không xác thực thực thi mã với quyền Root

OpenWrt đã phát hành phiên bản 24.10.8 để khắc phục lỗ hổng DHCPv6 stack overflow nghiêm trọng (CVE-2026-53921, CVSS 9.8) cho phép kẻ tấn công thực thi mã với quyền root. Bản cập nhật cũng giải quyết nhiều lỗi bảo mật khác trong các dịch vụ mặc định và thành phần LuCI, đồng thời ghi nhận sự đóng góp của AI trong việc phát hiện và vá lỗ hổng.
OpenWrt Logo

OpenWrt đã phát hành phiên bản 24.10.8 để khắc phục một lỗi tràn bộ đệm (stack overflow) DHCPv6 nghiêm trọng cùng một loạt các lỗ hổng khác có thể bị kích hoạt từ xa trong các dịch vụ mạng được kích hoạt mặc định.

Vấn đề nghiêm trọng này, được định danh là CVE-2026-53921 và đạt mức điểm 9.8 trên thang điểm CVSS 3.1 theo khuyến cáo trên GitHub của OpenWrt, cho phép một kẻ tấn công không xác thực có quyền truy cập vào máy chủ DHCPv6 thực hiện ghi đè bộ đệm ngăn xếp trong odhcpd thông qua một gói tin DHCPv6 REQUEST được tạo đặc biệt.

odhcpd chạy với quyền root, và bản tin cảnh báo lưu ý rằng phần cứng nhúng thường thiếu các cơ chế bảo vệ như stack canaries và address space layout randomization (ASLR), khiến việc thực thi mã trở thành một kết quả hoàn toàn khả thi trên các thiết bị thông thường.

Khuyến cáo cũng bao gồm mã khai thác Python (proof-of-concept) công khai cho cả hai đường dẫn gây tràn bộ đệm đã được ghi nhận. Người dùng trên nhánh 24.10 nên cài đặt phiên bản 24.10.8, trong khi người dùng trên nhánh 25.12 nên cài đặt 25.12.5; các hình ảnh firmware hiện đã có sẵn thông qua OpenWrt Firmware Selector.

Tính đến ngày 28 tháng 7, các tài liệu của OpenWrt chưa ghi nhận trường hợp khai thác nào trong thực tế. Lỗ hổng này cũng không xuất hiện trong danh mục Known Exploited Vulnerabilities (KEV) của CISA phiên bản 2026.07.27, mặc dù việc thiếu sót trong KEV không đồng nghĩa với việc lỗ hổng chưa từng bị khai thác.

Bản phát hành này được đưa ra cùng với một đợt kiểm tra (audit) riêng biệt có sự hỗ trợ của AI bởi Hacker House. Đợt kiểm tra này đã xác định các điểm yếu về command-injection, path-traversal và cross-site scripting (XSS) trong các thành phần LuCI tùy chọn. OpenWrt cũng phát hiện một vấn đề stored-XSS riêng biệt và việc thiếu bảo vệ cross-site request forgery (CSRF) trong quá trình chuẩn bị các bản vá.

Các bản vá LuCI riêng biệt này không nằm trong OpenWrt 24.10.8 và vẫn đang được xem xét tính đến ngày 28 tháng 7.

Chi tiết về gói tin tấn công máy chủ DHCP mặc định

Bản khuyến cáo liên quan đến CVE-2026-53921 tài liệu hóa hai vị trí tràn bộ đệm độc lập trong quy trình xử lý yêu cầu DHCPv6. Trong cả hai trường hợp, các tùy chọn IA được tạo thủ công sẽ chiếm dụng không gian trong bộ đệm ngăn xếp 512-byte cố định, khiến mã nguồn nối thêm dữ liệu phản hồi mà không kiểm tra giới hạn đầy đủ.

Tác nhân kích hoạt cuối cùng là một gói tin DHCPv6 REQUEST không xác thực được gửi đến cổng UDP 547. Mã khai thác cho đường dẫn thứ nhất tạo ra năm ràng buộc IA_NA với một gói tin SOLICIT trước đó; đường dẫn thứ hai được kích hoạt bởi duy nhất một gói tin REQUEST được tạo đặc biệt.

Bản khuyến cáo liệt kê odhcpd master tại commit e432dd6 và tất cả các phiên bản trước đó có chứa hàm dhcpv6_ia_handle_IAs() và build_ia() đều bị ảnh hưởng. OpenWrt xác nhận 24.10.8 và 25.12.5 là các bản phát hành được hỗ trợ có chứa bản cập nhật bảo mật odhcpd liên quan.

Mặc dù khuyến cáo của OpenWrt nhóm cả hai vị trí tràn bộ đệm vào CVE-2026-53921, nhưng ghi chú phát hành phiên bản 24.10.8 lại liệt kê lỗi tràn bộ đệm RECONF_ACCEPT riêng biệt như một vấn đề có mức độ nghiêm trọng cao mà không có mã CVE. OpenWrt đã sửa lỗi này bằng cách kiểm tra dung lượng còn lại của bộ đệm phản hồi trước khi nối thêm dữ liệu bị ảnh hưởng.

Ghi chú phát hành của OpenWrt mô tả lỗ hổng có thể tiếp cận được bởi kẻ tấn công không xác thực trong cùng mạng (network-adjacent). Tuy nhiên, vector CVSS 3.1 trong bản khuyến cáo sử dụng AV:N (Network - Mạng), không phải AV:A (Adjacent - Lân cận), và cả hai nguồn đều không giải thích sự khác biệt này. Dù vậy, kẻ tấn công vẫn cần quyền truy cập mạng vào dịch vụ DHCPv6. Khai thác thành công có thể giúp kẻ tấn công kiểm soát bộ định tuyến thay vì chỉ làm treo dịch vụ.

Bản phát hành 24.10.8 cũng giải quyết các điểm yếu tiền xác thực (pre-authentication) khác trong odhcpd, bao gồm out-of-bounds write, use-after-free, lộ lọt bộ nhớ, từ chối dịch vụ (denial of service), stack over-read và neighbour-discovery proxy spoofing. Các bản vá dịch vụ mặc định khác bao gồm ba lỗi HTTP request-smuggling trong uhttpd và một lỗi chèn tên máy chủ (hostname-injection) DHCPv6, được theo dõi là CVE-2026-62948, có thể tạo ra lỗi stored XSS khi quản trị viên mở trang LuCI leases.

Bản phát hành này cũng bao gồm CVE-2026-62947 trong cgi-io, có thể làm lộ các tệp tin tùy ý mà root có quyền đọc thông qua path traversal. Tuy nhiên, vấn đề này yêu cầu một phiên làm việc đã xác thực với quyền tải xuống cgi-io và một quyền đọc tệp wildcard áp dụng được. Đây không phải là lỗi đọc tệp ẩn danh.

OpenWrt 24.10 hiện đang trong giai đoạn bảo trì bảo mật, dự kiến kết thúc vòng đời vào tháng 9 năm 2026. Dự án khuyến nghị người dùng nên chuyển sang dòng 25.12 trước thời điểm đó.

Các bản vá cho LuCI vẫn đang được xem xét

Matthew Hickey, còn được gọi là Hacker Fantastic, CTO và Đồng sáng lập của Hacker House, đã tuyên bố công khai rằng các bản vá cho các lỗi thực thi mã từ xa và path-traversal mà ông báo cáo cho OpenWrt đã được phát hành.

Tuy nhiên, một kiểm tra của The Hacker News vào ngày 28 tháng 7 cho thấy pull request LuCI #8878 do Hauke Mehrtens (người duy trì OpenWrt) công bố vẫn đang ở trạng thái mở và chưa được hợp nhất.

Hacker House Audit
Nguồn ảnh: Hacker House

Hacker House cho biết họ đã kiểm tra các nhánh chính của cả LuCI và uhttpd. Họ mô tả ba đường dẫn tiền xác thực có thể dẫn đến chiếm quyền điều khiển thiết bị: directory traversal trong luci-app-bmx7, stored XSS trong luci-app-olsr và command injection trong luci-app-commands. Bốn lỗi còn lại yêu cầu thông tin xác thực LuCI.

Các thay đổi bảo mật trong pull request #8878 bao gồm:

  • luci-app-commands: Một ký tự ống (pipe) đơn lẻ có thể vượt qua danh sách cho phép đối số của ứng dụng và cho phép các lệnh chạy với quyền root.
  • luci-app-ddns: Cài đặt ddns_dateformat có thể chèn các lệnh vào một hoạt động chạy quyền root, trong khi service_name cho phép path traversal.
  • luci-proto-openvpn: Các giá trị cấu hình do kẻ tấn công kiểm soát có thể tiếp cận các lệnh shell thông qua keytype.
  • luci-app-olsr: Một nút lưới (mesh node) độc hại có thể thông báo một tên máy chủ được tạo đặc biệt để thực thi script trong trình duyệt khi quản trị viên xem trang OLSR neighbours.

Ứng dụng AI trong phát hiện và xem xét bản vá

Hacker House mô tả quá trình kiểm tra OpenWrt là một quy trình inference-fuzzing bốn giai đoạn bắt đầu bằng mô hình đe dọa. Phương pháp này lặp lại việc kiểm tra mã nguồn để tạo ra một nhóm rộng các lỗ hổng tiềm năng.

Giai đoạn cuối cùng sử dụng một mô hình có độ chính xác cao hơn để lọc các kết quả dương tính giả. Các nhà nghiên cứu sau đó sẽ xác nhận thủ công các phát hiện còn lại trong mã nguồn và trên hệ thống đang chạy trước khi báo cáo.

Công ty cho biết họ sử dụng Qwen 3.6 35B cho giai đoạn inference-fuzzing và các mô hình tiên tiến như Claude Opus 4.6 cho giai đoạn phân loại (triage). OpenWrt cũng đã sử dụng AI trong một phần của quá trình khắc phục; một số commit có ghi chú "Assisted-by: Claude" và việc xem xét tự động trên pull request LuCI được tạo bằng Claude Code.

Người dùng được khuyến cáo cài đặt OpenWrt 24.10.8 hoặc 25.12.5 ngay lập tức và cập nhật các gói được cài đặt riêng lẻ. Quản trị viên cũng nên xem xét các quyền LuCI được ủy quyền và gỡ bỏ các ứng dụng không sử dụng.