Nội suy HTML không an toàn trong /httpstatus của Asterisk có thể dẫn đến XSS phản chiếu

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

Lỗ hổng CVE-2026-23738 là lỗ hổng Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') ả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.1. 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 tổng đài nhánh riêng và bộ công cụ viễn thông mã nguồn mở. Trước các phiên bản 20.7-cert9, 20.18.2, 21.12.1, 22.8.2 và 23.2.2, các giá trị Cookie và mọi tham số truy vấn biến GET do người dùng cung cấp hoặc kiểm soát được nội suy trực tiếp vào HTML của trang bằng ast_str_append. Endpoint tại GET /httpstatus là endpoint có khả năng bị ảnh hưởng liên quan đến asterisk/main /http.c. Vấn đề này đã được vá trong các phiên bản 20.7-cert9, 20.18.2, 21.12.1, 22.8.2 và 23.2.2.

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

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

  • 23.x: các bản thấp hơn 23.2.2 bị ảnh hưởng; 23.2.2 là bản đã được vá.
  • 22.x: các bản thấp hơn 22.8.2 bị ảnh hưởng; 22.8.2 là bản đã được vá.
  • 21.x: các bản thấp hơn 21.12.1 bị ảnh hưởng; 21.12.1 là bản đã được vá.
  • 20.x: các bản thấp hơn 20.18.2 bị ảnh hưởng; 20.18.2 là bản đã được vá.
  • Certified branch 20.7: các bản thấp hơn 20.7-cert9 bị ảnh hưởng; 20.7-cert9 là bản đã được vá.

Các branch không được liệt kê không có trạng thái được xác lập trong bằng chứng hiện có. Không nên suy ra rằng bản vá của một branch tự động bao phủ các branch song song khác.

Chi tiết kỹ thuật

Thành phần bị ảnh hưởng là embedded HTTP server của Asterisk, cụ thể là handler liên quan đến asterisk/main /http.c và endpoint GET /httpstatus. Mọi tham số truy vấn GET, bao gồm tên và giá trị, có thể được đưa vào trang; tên và giá trị Cookie cũng được hiển thị trực tiếp trong các hàng của bảng HTML. Implementation sử dụng ast_str_append để chèn dữ liệu mà không HTML-encoding hoặc sanitization trước khi xuất ra trang. Đây là CWE-79, Improper Neutralization of Input During Web Page Generation, thường được gọi là cross-site scripting. Client kiểm soát được các giá trị này và có thể không cần xác thực, nhưng advisory yêu cầu người dùng tương tác với hoặc xem trang kết quả. Context chính xác của trình duyệt, access control trong từng deployment và các tác động khi chain với vấn đề khác chưa được bằng chứng hiện có xác lập.

Khả năng khai thác

  • Endpoint bị ảnh hưởng là HTTP GET /httpstatus; khả năng truy cập thực tế phụ thuộc vào cách deployment công bố embedded HTTP service. Advisory của CNA mô tả phạm vi khai thác là adjacent network, trong khi dữ liệu chuẩn hóa cũng ghi nhận network reachability, vì vậy cần kiểm tra exposure thực tế thay vì suy ra từ một cách chấm điểm duy nhất.
  • Dữ liệu được cung cấp cho biết không cần privilege đặc biệt, và advisory nêu rằng client có thể unauthenticated.
  • Độ phức tạp được mô tả là thấp, nhưng user interaction là bắt buộc vì một người dùng phải render hoặc xem trang chứa dữ liệu đã phản chiếu.
  • Record chuẩn hóa đặt public_exploit là false và để known_exploited ở trạng thái chưa xác định. Đây là trạng thái của record, không phải bằng chứng rằng exploitation không thể xảy ra hoặc đã không xảy ra ngoài phạm vi dữ liệu đó.

Tác động kỹ thuật

Ở cấp độ kỹ thuật, lỗ hổng có thể biến dữ liệu do request kiểm soát thành active content trong browser render status page. Một đường dẫn XSS thành công có thể cho phép đọc dữ liệu mà browser context đó truy cập được hoặc thực hiện hành động dưới session của người dùng tương tác; advisory cũng nêu khả năng chain để đánh cắp credential hoặc token và thực hiện CSRF. Không có bằng chứng xác lập server-side code execution, privilege escalation trực tiếp, denial of service hoặc compromise mà không cần user interaction. Do đó, tác động tổ chức phụ thuộc vào những người có thể truy cập và xem /httpstatus, cùng loại credential hoặc session hiện diện trong browser của họ.

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

Khai thác thành công có thể khiến script do attacker kiểm soát chạy trong trình duyệt của người dùng khi status page được render. Advisory của vendor nêu các hướng tác động tiếp nối có thể xảy ra, gồm đánh cắp credential hoặc token và chain với CSRF, nhưng đây là các khả năng chứ không phải kết quả đã được xác nhận cho mọi deployment. Bằng chứng hiện có không xác lập tác động đến availability của dịch vụ hoặc một đường dẫn privilege escalation trực tiếp trên server. Mức độ ảnh hưởng của tổ chức phụ thuộc vào nhóm người dùng có thể truy cập và xem /httpstatus, cũng như credential hoặc session mà trình duyệt của họ đang giữ.

Cách khắc phục

  1. Nâng cấp Asterisk lên bản đã được vá tương ứng với branch đang triển khai:
  • Branch 23.x: 23.2.2.
  • Branch 22.x: 22.8.2.
  • Branch 21.x: 21.12.1.
  • Branch 20.x: 20.18.2.
  • Certified branch 20.7: 20.7-cert9.
  1. Sau khi nâng cấp, xác minh package hoặc build thực tế trên từng node và kiểm tra lại handler GET /httpstatus; không dùng bản vá của một branch để kết luận branch song song đã được xử lý.
  2. Nếu chưa thể nâng cấp ngay, xác định các instance đang expose embedded HTTP service và giảm phạm vi truy cập đến /httpstatus theo network policy của tổ chức, chẳng hạn chỉ cho phép trusted administrative networks khi phù hợp. Đây là biện pháp giảm exposure tạm thời, không phải bản vá được vendor xác nhận.
  3. Record và advisory được cung cấp không nêu temporary mitigation cụ thể nào khác. Tiếp tục theo dõi bản vá theo đúng branch thay vì tự suy ra một mốc mở rộng như “hoặc mới hơn”.

Cách phát hiện

  • Kiểm kê tất cả instance Asterisk và đối chiếu từng release branch với các ranh giới bị ảnh hưởng và bản vá trong phần affected summary.
  • Xác định embedded HTTP server có được bật hay không, endpoint GET /httpstatus có tồn tại không và endpoint này có thể truy cập từ mạng nào.
  • Kiểm tra reverse proxy, firewall và các access control liên quan để xác định liệu người dùng không đáng tin cậy có thể gửi request đến endpoint hay không.
  • Rà soát access log của Asterisk, reverse proxy hoặc web gateway cho các request đến /httpstatus, đặc biệt là query string bất thường hoặc Cookie do client cung cấp. Đây là biện pháp tìm dấu hiệu hỗ trợ, không phải IOC đã được vendor xác nhận.
  • Trong môi trường kiểm thử, kiểm tra một response an toàn để xác nhận các giá trị query và Cookie do request cung cấp được HTML-encode trước khi render. Việc không thấy log đáng ngờ không chứng minh instance đã an toàn.
Nguồn (15)
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