Webserver UnrealIRCd chấp nhận HTTP header không giới hạn, gây từ chối dịch vụ từ xa

Lưu ý: Dữ liệu này chỉ có tính chất tham khảo, phục vụ nghiên cứu an ninh mạng.CyStack khuyến nghị người dùng không sử dụng các thông tin này nhằm các mục đích bất hợp pháp

Lỗ hổng CVE-2026-90668 là gì?

Lỗ hổng CVE-2026-90668 là lỗ hổng Allocation of Resources Without Limits or Throttling ảnh hưởng tới UnrealIRCd (phiên bản bị ảnh hưởng: 6.0.5 – < 6.2.7). Lỗ hổng này được xếp hạng ở mức Cao, với điểm CVSS 8.7. Các nguồn hiện có chưa ghi nhận lỗ hổng này bị khai thác.

Giới thiệu chung

Dữ liệu gốc

Webserver trong UnrealIRCd 6.0.5 đến 6.2.6 trước 6.2.7 không giới hạn số lượng HTTP request header, cho phép kẻ tấn công từ xa gây từ chối dịch vụ (tiêu thụ bộ nhớ và làm máy chủ không phản hồi) thông qua một HTTP request có số lượng header không giới hạn, nếu một websocket hoặc JSON-RPC listener được bật (mặc định bị tắt).

Sản phẩm và phạm vi ảnh hưởng

  • Dữ liệu affected có cấu trúc xác định UnrealIRCd webserver bị ảnh hưởng từ 6.0.5 đến trước 6.2.7, tương ứng với 6.0.5 đến 6.2.6 trong mô tả.
  • Việc khai thác yêu cầu websocket listener hoặc JSON-RPC listener được bật; các listener này bị tắt theo mặc định, nên trạng thái mặc định được ghi nhận là unaffected.
  • Chưa có bằng chứng độc lập trong bản ghi xác nhận thêm một nhánh phát hành song song hoặc một sản phẩm khác bị ảnh hưởng.

Chi tiết kỹ thuật

CWE-770 áp dụng vì webserver không giới hạn số lượng HTTP request header mà nó tiếp nhận. Thành phần bị ảnh hưởng là phần xử lý HTTP header của webserver UnrealIRCd, trong đó số lượng header là dữ liệu do kẻ tấn công kiểm soát. Một HTTP client từ xa có thể gửi request đến listener mà không cần xác thực; nếu websocket hoặc JSON-RPC listener được bật, việc xử lý số lượng header không giới hạn có thể làm tiêu thụ bộ nhớ và khiến IRCd không phản hồi. Cả hai listener này đều bị tắt theo mặc định, nên điều kiện cấu hình này phải được kiểm tra riêng. Chi tiết triển khai về đường cấp phát bộ nhớ, ngưỡng gây cạn bộ nhớ và phạm vi ảnh hưởng theo từng connection chưa được xác định trong bằng chứng hiện có.

Khả năng khai thác

  • Lỗ hổng có thể bị tiếp cận qua mạng bằng HTTP request đến websocket hoặc JSON-RPC listener của webserver.
  • Bản ghi mô tả kẻ tấn công từ xa không cần xác thực và không cần tương tác của người dùng; điều kiện bắt buộc là listener liên quan phải được bật.
  • Độ phức tạp tấn công được đánh giá là thấp trong dữ liệu được cung cấp.
  • Bản ghi chuẩn hóa không xác định public exploit; trạng thái khai thác thực tế không được thiết lập, vì trường known_exploited không có giá trị xác nhận.

Tác động kỹ thuật

Lỗ hổng cho phép một client từ xa không cần xác thực làm cạn bộ nhớ của tiến trình webserver và khiến IRCd không phản hồi khi listener phù hợp được bật. Tác động kỹ thuật được xác định là từ chối dịch vụ, ảnh hưởng đến tính sẵn sàng của máy chủ, trong khi không có tác động đến tính bí mật hoặc toàn vẹn được mô tả trong bằng chứng hiện có. Không cần quyền truy cập trước hoặc tương tác của người dùng, nhưng máy chủ phải expose websocket hoặc JSON-RPC listener. Bản ghi không mô tả thực thi mã, leo thang đặc quyền, truy cập dữ liệu hay thay đổi dữ liệu.

Tác động đến tổ chức

Hậu quả chính là mất tính sẵn sàng của dịch vụ IRC do bộ nhớ bị tiêu thụ và IRCd có thể trở nên không phản hồi. Sự cố có thể làm gián đoạn hoạt động của máy chủ và các dịch vụ phụ thuộc vào webserver của UnrealIRCd. Các deployment không bật websocket hoặc JSON-RPC listener không đi vào điều kiện khai thác được mô tả, nhưng trạng thái cấu hình thực tế cần được xác minh. Dữ liệu được cung cấp chỉ mô tả tác động đến tính sẵn sàng, không mô tả việc đọc dữ liệu hoặc sửa đổi dữ liệu.

Cách khắc phục

  1. Nâng cấp lên UnrealIRCd 6.2.7 hoặc bản cao hơn theo solution được cung cấp. Theo thông báo của dự án, bản phát hành đầy đủ 6.2.7 bao gồm các sửa lỗi webserver; trên *NIX, quy trình nâng cấp đầy đủ yêu cầu restart.
  2. Nếu chưa thể restart ngay, áp dụng hot-patch webserver-header-dos bằng lệnh chính thức ./unrealircd hot-patch webserver-header-dos. Thông báo của vendor cho biết hot-patch cập nhật được UnrealIRCd 6.2.x mà không cần restart và có thể hoạt động trên các bản cũ không còn được hỗ trợ; từ "có thể" không phải là cam kết hỗ trợ cho các bản đó.
  3. Nếu việc vá phải trì hoãn, tắt websocket listener và JSON-RPC listener khi không cần sử dụng. Đây là biện pháp giảm rủi ro tạm thời suy ra từ điều kiện phơi nhiễm đã nêu, không nên xem là thay thế cho việc cập nhật.
  4. Sau khi xử lý, xác minh phiên bản thực tế, trạng thái hot-patch và cấu hình listener. Lưu ý rằng hot-patch chỉ xử lý các vấn đề được nêu, còn bản phát hành đầy đủ có thêm các sửa lỗi và cải tiến khác.

Cách phát hiện

  1. Kiểm kê các máy chủ đang chạy UnrealIRCd và xác minh phiên bản thực tế, đặc biệt các bản từ 6.0.5 đến trước 6.2.7.
  2. Kiểm tra cấu hình và deployment để xác định websocket listener hoặc JSON-RPC listener có được bật hay không. Hai listener này bị tắt theo mặc định, nhưng việc mặc định tắt không thay thế cho kiểm tra cấu hình thực tế.
  3. Theo dõi mức sử dụng bộ nhớ và tình trạng phản hồi của IRCd khi webserver đang được công khai. Đây là dấu hiệu vận hành cần xem xét, không phải IOC riêng cho lỗ hổng này.
  4. Nếu hệ thống có telemetry ghi nhận số lượng HTTP header, xem xét các request có số lượng header bất thường cao. Đây là phân tích phòng ngừa vì bằng chứng hiện có không nêu log event hoặc chữ ký phát hiện cụ thể.
  5. Sau khi khắc phục, xác minh phiên bản đã chạy hoặc hot-patch đã được áp dụng, đồng thời kiểm tra lại listener liên quan.
Nguồn (20)
Tìm hiểu thêm

Kiểm tra chuyên sâu cùng giải pháp quản lý rủi ro Web toàn diện

Giải pháp CyStack VulnScan liên tục phát hiện tài sản, xác minh lỗ hổng và giúp đội ngũ bảo mật ưu tiên khắc phục cho toàn bộ doanh nghiệp.