Lỗi heap-buffer-overflow trong ntop ntopng khi phân tích mDNS có thể gây từ chối dịch vụ

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

Giới thiệu chung

Dữ liệu gốc

Đã xác định một lỗ hổng heap-buffer-overflow trong ntopng 6.2 tại hàm Flow::dissectMDNS.

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

Record CNA ban đầu để sản phẩm bị ảnh hưởng là n/a, nhưng dữ liệu affected được enrich và issue của maintainer xác định ntop ntopng 6.2 là bị ảnh hưởng.

  • Upstream: ntopng 6.2 bị ảnh hưởng. Bằng chứng hiện có không xác định trạng thái của các phiên bản upstream khác.
  • CBL Mariner 2.0: Microsoft CSAF VEX liệt kê các component cbl2 ntopng 0:5.2.1-3.cbl2, cbl2 ntopng 5.2.1-4 và cbl2 ntopng 0:5.2.1-4.cbl2 là bị ảnh hưởng.
  • Azure Linux 3.0: Microsoft CSAF VEX liệt kê các component azl3 ntopng 0:5.2.1-5.azl3, azl3 ntopng 0:5.2.1-6.azl3 và azl3 ntopng 0:5.2.1-7.azl3 là bị ảnh hưởng.
  • Không có fixed release upstream nào được xác lập trong record hoặc issue được kiểm tra. Các package downstream nêu trên là các nhánh đóng gói riêng và không cho phép suy ra trạng thái của mọi phiên bản khác.

Chi tiết kỹ thuật

Lỗi nằm trong đường xử lý phân tích flow mDNS của hàm Flow::dissectMDNS. Issue của dự án xác định hàm này trong Flow.cpp tại dòng 6516 và cho biết dữ liệu được tạo có chủ đích có thể kích hoạt lỗi khi chạy bộ fuzz fuzz_dissect_packet với cấu hình OSS-Fuzz. AddressSanitizer ghi nhận thao tác đọc kích thước 42 tại ngay sau vùng heap 544 byte, với khung gọi liên quan đến strncpy và Flow::dissectMDNS. Đường gọi tiếp tục đi qua các hàm xử lý packet của NetworkInterface, cho thấy lỗi xảy ra trong quá trình dissect packet. Bằng chứng hiện có xác lập tình trạng đọc vượt giới hạn heap và crash, nhưng chưa xác định ranh giới input cụ thể trong mọi kiểu triển khai thực tế hoặc liệu mọi đường nhận traffic có thể tiếp cận cùng code path hay không.

Khả năng khai thác

Đánh giá được cung cấp phân loại khả năng tiếp cận là local, không yêu cầu đặc quyền và không cần user interaction; độ phức tạp được đánh giá là thấp. Issue công khai của dự án mô tả một reproducer dựa trên input được tạo có chủ đích và báo cáo lỗi bằng AddressSanitizer. Trạng thái public exploit trong record cho thấy đã có bằng chứng công khai để tái hiện lỗi, nhưng các nguồn được kiểm tra không nêu một exploit đã weaponize, chiến dịch, nạn nhân hoặc breach cụ thể. Việc khai thác từ xa qua mạng không được các bằng chứng hiện có xác lập.

Tác động kỹ thuật

Kết quả kỹ thuật được chứng minh là đọc vượt giới hạn heap, có thể làm ntopng crash và gây gián đoạn xử lý packet. Record không xác lập việc đọc dữ liệu nhạy cảm, sửa dữ liệu, leo thang đặc quyền hoặc thực thi mã; tác động được nêu tập trung vào availability. Phạm vi bảo mật không được cho là thay đổi trong đánh giá hiện có, vì vậy không có bằng chứng cho thấy lỗi tự nó mở rộng quyền kiểm soát sang một security boundary khác. Về tổ chức, hậu quả thực tế có thể là mất dịch vụ giám sát, mất dữ liệu quan sát trong thời gian crash và cần restart hoặc failover nếu deployment có cơ chế tương ứng.

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

Lỗi có thể làm tiến trình ntopng crash trong lúc phân tích packet, gây gián đoạn dịch vụ và tạo khoảng trống trong hoạt động giám sát hoặc phân tích phụ thuộc vào dịch vụ này. Tác động được xác lập chủ yếu là lên availability; record không xác định việc tiết lộ dữ liệu hoặc thay đổi tính toàn vẹn dữ liệu. Điều kiện tiếp cận local làm giảm khả năng coi đây là một đường tấn công trực tiếp từ Internet, nhưng không loại trừ rủi ro trên máy hoặc pipeline có thể cung cấp packet input không tin cậy. Reproducer công khai làm cho việc kiểm kê và kiểm thử các hệ thống bị ảnh hưởng trở nên cần thiết.

Cách khắc phục

  1. Xác định và loại bỏ hoặc thay thế các cài đặt ntopng 6.2 và các package downstream nằm trong danh sách affected trước khi chúng tiếp tục xử lý input không tin cậy.
  2. Áp dụng bản sửa do ntop hoặc nhà phân phối phát hành khi có advisory và fixed release được xác nhận. Hiện chưa có exact fixed release upstream trong bằng chứng được kiểm tra.
  3. Với các package CBL Mariner và Azure Linux được liệt kê, Microsoft CSAF VEX ghi nhận none_available và không cung cấp bản thay thế trong dữ liệu remediation được kiểm tra.
  4. Nếu chưa thể cập nhật, áp dụng biện pháp phòng ngừa vận hành như cô lập dịch vụ và hạn chế nguồn packet hoặc packet capture không tin cậy có thể đưa vào ntopng. Đây là biện pháp giảm rủi ro chung, không phải mitigation đã được maintainer xác nhận.
  5. Sau khi cập nhật, kiểm tra lại package inventory và thực hiện kiểm thử trong môi trường cô lập để xác nhận binary đang chạy không còn thuộc các build bị ảnh hưởng.

Cách phát hiện

  1. Kiểm kê các cài đặt ntopng và package downstream, ghi nhận cả phiên bản upstream, bản phân phối và build package cụ thể.
  2. Ưu tiên rà soát ntopng 6.2 cùng các build CBL Mariner và Azure Linux được liệt kê trong phần phạm vi ảnh hưởng.
  3. Kiểm tra telemetry về process crash hoặc restart của ntopng trong khi xử lý packet. Đây là dấu hiệu vận hành mang tính cảnh báo, không phải IOC đã được xác nhận.
  4. Trong môi trường kiểm thử cô lập, đối chiếu với reproducer của maintainer và tìm báo cáo AddressSanitizer có các chuỗi heap-buffer-overflow và Flow::dissectMDNS.
  5. Xác định các hệ thống cho phép dữ liệu packet hoặc packet capture không tin cậy đi vào ntopng. Việc không thấy log crash không chứng minh hệ thống an toàn.
Nguồn (16)
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.

Khám phá các giải pháp khác liên quan