Giới thiệu chung
Dữ liệu gốcMột lỗ hổng cross-site scripting (XSS) phản chiếu trong CKeditor v46.1.0 và Angular v18.0.0 cho phép kẻ tấn công thực thi mã tùy ý trong ngữ cảnh trình duyệt của người dùng thông qua việc chèn một payload được tạo thủ công.
Sản phẩm và phạm vi ảnh hưởng
- CKEditor 5: Bản ghi chuẩn hóa đánh dấu phiên bản
46.1.0là bị ảnh hưởng. - Angular: Bản ghi chuẩn hóa đánh dấu phiên bản
18.0.0là bị ảnh hưởng. - Không có khoảng phiên bản bị ảnh hưởng rộng hơn hoặc phiên bản sửa lỗi nào được cung cấp trong bản ghi. GitHub Advisory Database cũng hiển thị trạng thái phiên bản bị ảnh hưởng và phiên bản đã vá là chưa rõ.
- Red Hat Product Security cho biết mã dễ bị lỗi không hiện diện trong các sản phẩm Red Hat hiện được hỗ trợ; kết luận này chỉ áp dụng cho phạm vi sản phẩm Red Hat của họ, không thay đổi phạm vi CKEditor và Angular trong bản ghi.
Chi tiết kỹ thuật
Lỗ hổng thuộc nhóm CWE-79, xảy ra khi dữ liệu do kẻ tấn công kiểm soát được phản chiếu vào nội dung trang web mà không được trung hòa đúng cách. Payload được tạo thủ công có thể khiến mã tùy ý được thực thi trong ngữ cảnh trình duyệt của người dùng. Khai thác có thể thực hiện qua mạng, không yêu cầu đặc quyền và có độ phức tạp thấp, nhưng cần người dùng tương tác với nội dung hoặc yêu cầu bị ảnh hưởng. Bản ghi không nêu tham số yêu cầu, endpoint, sink HTML, cơ chế render cụ thể hoặc cấu hình nào chịu trách nhiệm trực tiếp, vì vậy các chi tiết triển khai này vẫn chưa rõ.
Khả năng khai thác
- Lỗ hổng có thể bị tiếp cận qua mạng.
- Bản ghi cho biết không cần xác thực hoặc đặc quyền, độ phức tạp thấp và cần người dùng tương tác.
- Bản ghi được cung cấp đánh dấu đã có public exploit; dữ liệu CISA ADP được trả về phân loại trạng thái khai thác là proof-of-concept.
- Các nguồn đã kiểm tra không nêu chiến dịch, nạn nhân hoặc trường hợp khai thác trong thực tế cụ thể. Điều này không chứng minh rằng chưa có hoạt động khai thác ngoài thực tế.
Tác động kỹ thuật
Lỗ hổng có thể dẫn đến thực thi JavaScript tùy ý trong trình duyệt của người dùng trong phạm vi ứng dụng bị ảnh hưởng. Tác động được mô tả là giới hạn đối với tính bí mật và toàn vẹn, không cho thấy tác động trực tiếp đến tính sẵn sàng; kẻ tấn công không cần đặc quyền nhưng vẫn cần người dùng tương tác. Hậu quả thực tế có thể gồm đọc dữ liệu mà trang hiện có quyền truy cập hoặc thực hiện thao tác trong phiên người dùng, tùy vào quyền ứng dụng, chính sách trình duyệt và các biện pháp bảo vệ khác. Bản ghi không cho thấy lỗ hổng tự động mở rộng đặc quyền hoặc vượt ra ngoài phạm vi bảo mật của ứng dụng.
Tác động đến tổ chức
- Người dùng có thể bị thực thi mã trong ngữ cảnh của ứng dụng web đang truy cập.
- Tùy vào quyền của người dùng và dữ liệu mà trang có thể truy cập, tác động có thể bao gồm đọc một phần dữ liệu hiển thị, thực hiện thao tác thay mặt người dùng hoặc thay đổi nội dung trong phiên trình duyệt.
- Do yêu cầu người dùng tương tác, rủi ro vận hành phụ thuộc vào khả năng dụ người dùng mở liên kết, tải nội dung hoặc gửi request chứa dữ liệu độc hại.
- Lỗ hổng có thể tạo ra yêu cầu điều tra, làm sạch phiên hoặc nội dung bị ảnh hưởng và đánh giá lại các chức năng frontend sử dụng dữ liệu phản chiếu. Bản ghi không xác nhận một vụ rò rỉ dữ liệu hay sự cố cụ thể.
Cách khắc phục
- Xác định các triển khai đang sử dụng
CKEditor 5 46.1.0hoặcAngular 18.0.0và ưu tiên đưa chúng vào quy trình xử lý lỗ hổng. - Hiện chưa có phiên bản sửa lỗi hoặc solution được xác nhận trong bản ghi. Liên hệ maintainer hoặc vendor để nhận bản cập nhật và hướng dẫn khắc phục được hỗ trợ.
- Không suy luận rằng một phiên bản phát hành của CKEditor hoặc Angular là bản sửa lỗi chỉ vì phiên bản đó tồn tại trong release notes.
- Trong thời gian chờ hướng dẫn chính thức, đánh giá các route phản chiếu dữ liệu vào HTML và áp dụng cơ chế output encoding hoặc sanitization phù hợp với ngữ cảnh tại nơi dữ liệu được đưa vào trang. Đây là biện pháp giảm rủi ro chung, không phải một workaround cụ thể đã được vendor xác nhận.
- Kiểm thử lại các chức năng bị ảnh hưởng sau khi cập nhật hoặc thay đổi cơ chế xử lý input, đặc biệt với các luồng mà người dùng có thể truy cập qua liên kết hoặc nội dung bên ngoài.
Cách phát hiện
- Kiểm kê dependency, package manifest, lockfile và các bundle frontend để xác định CKEditor 5 và Angular có đang được triển khai hay không.
- Đối chiếu phiên bản thực tế được build và phục vụ với các phiên bản bị ảnh hưởng trong bản ghi, thay vì chỉ dựa vào phiên bản của môi trường phát triển.
- Xác định các route hoặc chức năng đưa dữ liệu từ request vào HTML phản hồi, nhưng không giả định endpoint cụ thể khi bản ghi chưa cung cấp.
- Trong môi trường kiểm thử, xác minh liệu dữ liệu đầu vào có bị phản chiếu vào response HTML mà không được encode phù hợp hay không; dùng marker không thực thi thay vì payload độc hại.
- Rà soát log ứng dụng, reverse proxy và WAF để tìm các request chứa markup hoặc chuỗi bất thường trong các tham số được phản chiếu. Đây là biện pháp giám sát thận trọng, không phải indicator đã được xác nhận cho CVE này.