Bộ phân tích XML của Asterisk cho phép XXE và làm lộ tệp cục bộ qua XInclude

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-23739 là gì?

Lỗ hổng CVE-2026-23739 là lỗ hổng Improper Restriction of XML External Entity Reference ảnh hưởng tới asterisk (phiên bản bị ảnh hưởng: < 23.2.2, < 22.8.2 và các phiên bản bị ảnh hưởng khác). Lỗ hổng này được xếp hạng ở mức Trung bình, với điểm CVSS 6.5. 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

Asterisk là một centralita privada de código abierto y un kit de herramientas de telefonía. Antes de las versiones 20.7-cert9, 20.18.2, 21.12.1, 22.8.2 y 23.2.2, la función ast_xml_open() en xml.c analiza documentos XML usando libxml con opciones de análisis inseguras que permiten la expansión de entidades y el procesamiento de XInclude. Específicamente, invoca xmlReadFile() con la bandera XML_PARSE_NOENT y posteriormente procesa XIncludes a través de xmlXIncludeProcess(). Si cualquier archivo XML no confiable o proporcionado por el usuario se pasa a esta función, puede permitir a un atacante activar una Entidad Externa XML (XXE) o una divulgación de archivos locales basada en XInclude, exponiendo potencialmente archivos sensibles del sistema anfitrión. Esto también puede ser activado en otros casos en los que el usuario puede proporcionar entrada en formato XML que activa el proceso de Asterisk para analizarla. Este problema ha sido parcheado en las versiones 20.7-cert9, 20.18.2, 21.12.1, 22.8.2 y 23.2.2.

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

Asterisk bị ảnh hưởng trên các nhánh sau:

  • Nhánh 23: các bản <= 23.2.1 bị ảnh hưởng; bản đã vá là 23.2.2.
  • Nhánh 22: các bản <= 22.8.1 bị ảnh hưởng; bản đã vá là 22.8.2.
  • Nhánh 21: các bản <= 21.12.0 bị ảnh hưởng; bản đã vá là 21.12.1.
  • Nhánh 20 thông thường: các bản <= 20.18.1 bị ảnh hưởng; bản đã vá là 20.18.2.
  • Nhánh 20 certified: các bản <= 20.7-cert8 bị ảnh hưởng; bản đã vá là 20.7-cert9.

Bản ghi chuẩn hóa biểu diễn các nhánh này bằng các điều kiện nhỏ hơn bản sửa tương ứng. Trạng thái của những nhánh hoặc bản phát hành không được liệt kê không được xác lập bởi bằng chứng hiện có.

Chi tiết kỹ thuật

Hàm ast_xml_open() trong xml.c phân tích tài liệu XML bằng libxml với các tùy chọn không an toàn. Hàm gọi xmlReadFile() với cờ XML_PARSE_NOENT, cho phép mở rộng và tải các external entity, sau đó xử lý XInclude bằng xmlXIncludeProcess(). Vì vậy, tài liệu XML do kẻ tấn công kiểm soát có thể kích hoạt XXE hoặc XInclude để đọc tệp cục bộ từ hệ thống máy chủ.

Điều kiện khai thác được xác nhận là dữ liệu XML không tin cậy hoặc do người dùng cung cấp phải đi tới hàm này, hoặc đi qua một luồng xử lý khác khiến tiến trình Asterisk phân tích dữ liệu XML. Giao diện cụ thể cung cấp XML cho parser không được xác định trong bằng chứng hiện có. Đây là lỗi CWE-611, Improper Restriction of XML External Entity Reference.

Khả năng khai thác

Bản ghi mô tả một đường tấn công có thể truy cập qua mạng, nhưng việc khai thác vẫn cần XML do kẻ tấn công kiểm soát được chuyển tới luồng phân tích XML và cần user interaction. Các thông tin đánh giá trong bản ghi không hoàn toàn thống nhất về yêu cầu đặc quyền và độ phức tạp, vì vậy không nên giả định rằng mọi triển khai đều có cùng mức độ phơi nhiễm.

Thông báo của Asterisk nêu rằng Asterisk hiện không cho phép XML không tin cậy hoặc XML do người dùng cung cấp được sử dụng theo cách này. Do đó, khả năng khai thác thực tế phụ thuộc vào triển khai, tích hợp hoặc thay đổi trong tương lai có thể đưa dữ liệu XML do kẻ tấn công kiểm soát tới parser. Bản ghi đánh dấu không có public exploit được ghi nhận và không cung cấp trạng thái xác nhận về việc khai thác đang diễn ra; điều này không chứng minh rằng không thể có khai thác.

Tác động kỹ thuật

Khi điều kiện đầu vào phù hợp tồn tại, Asterisk có thể phân giải external entity hoặc xử lý XInclude trong tài liệu XML, dẫn đến đọc và tiết lộ tệp cục bộ. Tác động phụ thuộc vào quyền của tiến trình Asterisk và khả năng kẻ tấn công khiến tiến trình phân tích tài liệu do mình kiểm soát.

Hậu quả kỹ thuật được xác lập là ảnh hưởng đến tính bí mật và phạm vi dữ liệu có thể đọc trên máy chủ. Bản ghi không xác lập việc thay đổi tệp, thực thi mã hoặc ảnh hưởng đến tính sẵn sàng. Hậu quả tổ chức có thể gồm lộ cấu hình hoặc dữ liệu vận hành nhạy cảm, nhưng nguy cơ cụ thể phụ thuộc vào nội dung tệp và quyền truy cập của tiến trình.

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

Lỗi có thể làm lộ dữ liệu từ máy chủ đang chạy Asterisk, với mức độ phụ thuộc vào quyền đọc tệp của tiến trình và loại tệp có thể bị truy cập. Nếu các tệp cấu hình, thông tin xác thực hoặc dữ liệu vận hành nhạy cảm nằm trong phạm vi đọc, việc tiết lộ có thể làm tăng rủi ro truy cập trái phép hoặc hỗ trợ các cuộc tấn công tiếp theo, nhưng kịch bản cụ thể này chưa được xác nhận trong bằng chứng.

Tác động được mô tả trực tiếp là mất tính bí mật của dữ liệu. Bằng chứng hiện có không xác lập việc sửa đổi dữ liệu, thực thi mã hoặc làm gián đoạn dịch vụ. Mức độ ưu tiên xử lý cao hơn đối với các hệ thống có tích hợp cho phép người dùng hoặc nguồn mạng không tin cậy cung cấp XML cho Asterisk.

Cách khắc phục

  1. Nâng cấp Asterisk theo đúng nhánh phát hành lên một bản đã vá: 23.2.2, 22.8.2, 21.12.1, 20.18.2 hoặc 20.7-cert9, tương ứng với nhánh đang triển khai. Không suy ra rằng một bản vá cụ thể bao phủ mọi nhánh phát hành khác.
  2. Kiểm tra lại inventory sau khi nâng cấp và xác nhận tiến trình đang chạy đúng binary hoặc package đã được cập nhật.
  3. Trong thời gian chưa thể nâng cấp, ngăn XML không tin cậy hoặc dữ liệu XML do người dùng cung cấp đi tới luồng phân tích của Asterisk. Đây là biện pháp containment dựa trên điều kiện khai thác đã được mô tả, không phải workaround chính thức được vendor xác nhận.
  4. Rà soát các tích hợp mới hoặc thay đổi cấu hình có thể đưa input XML từ nguồn bên ngoài vào Asterisk. Thông báo của Asterisk cho biết cách sử dụng hiện tại không cho phép XML không tin cậy, nhưng việc này không loại bỏ rủi ro nếu triển khai hoặc tích hợp thay đổi.

Cách phát hiện

  1. Kiểm kê tất cả máy chủ chạy Asterisk và đối chiếu từng bản cài đặt với các nhánh bị ảnh hưởng và bản vá được liệt kê trong affected_summary.
  2. Xác định các tích hợp, công cụ quản trị hoặc luồng xử lý có thể đưa tệp XML không tin cậy hoặc dữ liệu XML do người dùng cung cấp vào tiến trình Asterisk.
  3. Nếu có quyền kiểm tra mã nguồn hoặc binary, rà soát việc sử dụng ast_xml_open(), xmlReadFile() với XML_PARSE_NOENT và xmlXIncludeProcess(). Đây là kiểm tra cấu hình và mã nguồn, không phải bằng chứng cho thấy có một IOC cụ thể.
  4. Rà soát telemetry truy cập tệp của tiến trình Asterisk để tìm các lần đọc bất thường đối với tệp cục bộ xảy ra đồng thời với hoạt động phân tích XML. Đây chỉ là biện pháp giám sát thận trọng, không phải indicator đã được vendor xác nhận.
  5. Không coi việc không thấy sự kiện đáng ngờ trong log hoặc telemetry là bằng chứng hệ thống an toàn; cần xác nhận phiên bản và đường đi của dữ liệu XML.
Nguồn (12)
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á CyStack VulnScan