Drupal OAuth/OIDC Client có lỗi XSS trong hiển thị lỗi callback

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

Lỗ hổng CVE-2024-13301 là lỗ hổng Improper Neutralization of Input During Web Page Generation ảnh hưởng tới OAuth & OpenID Connect Single Sign On – SSO (OAuth/OIDC Client) (phiên bản bị ảnh hưởng: 3.0.0 – < 3.44.0 và 4.0.0 – < 4.0.19). 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

Lỗ hổng vô hiệu hóa không đúng cách dữ liệu đầu vào trong quá trình tạo trang web ('Cross-site Scripting') trong Drupal OAuth và OpenID Connect Single Sign On – SSO (OAuth/OIDC Client) cho phép Cross-Site Scripting (XSS). Vấn đề này ảnh hưởng đến OAuth và OpenID Connect Single Sign On – SSO (OAuth/OIDC Client): từ 3.0.0 trước 3.44.0, từ 4.0.0 trước 4.0.19.

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

  • miniorange_oauth_client 3.x: bị ảnh hưởng từ 3.0.0 trước 3.44.0. Advisory của Drupal mô tả nhánh tương ứng là 8.x-3.x cho Drupal 9 và Drupal 10, đồng thời chỉ định nâng cấp lên 8.x-3.44.
  • miniorange_oauth_client 4.x: bị ảnh hưởng từ 4.0.0 trước 4.0.19. Advisory chỉ định bản sửa 4.0.19 cho Drupal 9, Drupal 10 và Drupal 11.
  • Nhánh 7.x-1.x: advisory của Drupal cũng yêu cầu người dùng nhánh này nâng cấp lên 7.x-1.355. Bản ghi chuẩn hóa không cung cấp ranh giới phiên bản thấp nhất hoặc đầy đủ khoảng phiên bản bị ảnh hưởng cho nhánh này, vì vậy không nên suy diễn thêm phạm vi.

Chi tiết kỹ thuật

Module Drupal này hỗ trợ xác thực người dùng thông qua Identity Provider hoặc OAuth Server. Lỗi xảy ra vì các query parameter gửi đến callback URL không được escape đầy đủ khi module hiển thị thông báo lỗi, đặc biệt khi phản hồi không có parameter code. Đây là lỗi CWE-79 trong thành phần xử lý và kết xuất thông báo lỗi của luồng callback OAuth/OIDC. Bản ghi mô tả khả năng truy cập qua mạng, không yêu cầu đặc quyền và cần người dùng tương tác; tuy nhiên, advisory không xác định từng parameter bị ảnh hưởng, hàm thực thi, đường dẫn callback cụ thể hoặc payload khai thác.

Khả năng khai thác

Bản ghi chuẩn hóa mô tả lỗ hổng có thể được tiếp cận qua mạng, độ phức tạp thấp, không yêu cầu xác thực hoặc đặc quyền, nhưng cần người dùng tương tác. Điều này phù hợp với kịch bản trong đó một người dùng mở callback hoặc trang thông báo lỗi có query parameter được xử lý không an toàn. Cơ chế phân phối yêu cầu độc hại và cách buộc trình duyệt của nạn nhân tải trang chưa được công bố trong bằng chứng hiện có. Bản ghi không đánh dấu có public exploit; thông tin này không chứng minh rằng lỗ hổng chưa từng bị khai thác. Không có chiến dịch, nạn nhân hoặc chỉ dấu xâm nhập cụ thể nào được xác lập.

Tác động kỹ thuật

Nếu khai thác thành công, script có thể chạy trong security context của trình duyệt người dùng khi họ hiển thị trang lỗi callback. Bản ghi chuẩn hóa mô tả tác động thấp đến confidentiality và integrity, không ghi nhận tác động đến availability, đồng thời xác định scope có thể thay đổi do mã chạy trong ngữ cảnh của người dùng hoặc ứng dụng đích. Tác động phụ thuộc vào quyền của người dùng, dữ liệu hiện diện trong phiên và các cơ chế bảo vệ trình duyệt. Lỗi này không tự nó chứng minh khả năng thực thi mã phía máy chủ hoặc nâng đặc quyền Drupal.

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

Lỗ hổng có thể làm script không đáng tin cậy chạy trong trình duyệt của người dùng khi họ xem trang hoặc thông báo lỗi callback bị ảnh hưởng. Tác động thực tế có thể bao gồm đọc một phần dữ liệu mà trình duyệt của nạn nhân được phép truy cập, thay đổi nội dung hiển thị hoặc thực hiện hành động thay mặt người dùng trong phạm vi phiên trình duyệt đó. Rủi ro cao hơn đối với các site dùng module làm cổng đăng nhập liên kết với IdP hoặc OAuth Server. Bằng chứng hiện có không xác nhận một vụ lộ dữ liệu, chiếm tài khoản, thực thi mã trên máy chủ hoặc gián đoạn dịch vụ cụ thể.

Cách khắc phục

  1. Kiểm kê module miniorange_oauth_client trên tất cả Drupal site và xác định nhánh Drupal cùng nhánh module đang sử dụng.
  2. Với nhánh 3.x, nâng cấp lên 3.44.0 theo bản ghi chuẩn hóa, tương ứng với bản advisory ghi là 8.x-3.44 cho Drupal 9 và Drupal 10.
  3. Với nhánh 4.x, nâng cấp lên 4.0.19. Advisory áp dụng hướng dẫn này cho Drupal 9, Drupal 10 và Drupal 11.
  4. Với nhánh 7.x-1.x, nâng cấp lên 7.x-1.355 theo hướng dẫn của advisory.
  5. Evidence hiện có không cung cấp workaround đã được xác nhận. Nếu chưa thể cập nhật, cần đánh giá riêng mức độ phơi nhiễm của callback OAuth/OIDC và theo dõi các request bất thường, nhưng các biện pháp này không thay thế bản sửa.

Cách phát hiện

  1. Kiểm kê các Drupal site đang cài module miniorange_oauth_client, bao gồm các site dùng OAuth hoặc OpenID Connect để đăng nhập.
  2. Xác định nhánh và phiên bản module đang triển khai, sau đó đối chiếu với các ranh giới bị ảnh hưởng và bản sửa được nêu trong phần affected summary.
  3. Trong log web, rà soát các request tới callback URL của module có query parameter bất thường hoặc thiếu parameter code, nhưng chỉ coi đây là tín hiệu rà soát thận trọng vì advisory không cung cấp IOC hoặc mẫu request cụ thể.
  4. Kiểm tra các phản hồi lỗi được tạo bởi luồng callback để xác nhận query parameter không được đưa trực tiếp vào HTML hoặc thông báo lỗi chưa escape.
  5. Sau khi cập nhật, xác nhận phiên bản thực tế trên từng máy chủ và kiểm tra lại luồng đăng nhập OAuth/OIDC. Việc không thấy request đáng ngờ trong log không chứng minh hệ thống an toàn.
Nguồn (18)
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.