Lỗ Hổng Bảo Mật Trong Module Apache mod_auth_openidc


Tổng quan về lỗ hổng:
Một lỗ hổng bảo mật trong module mod_auth_openidc của Apache đã được xác định, có thể làm lộ nội dung web được bảo vệ cho người dùng không được xác thực. Lỗ hổng này được theo dõi là CVE-2025-31492, có mức độ nghiêm trọng 8.2 trên thang điểm CVSSv4.

Ảnh hưởng:
Lỗi này ảnh hưởng đến các hệ thống được cấu hình với chỉ thị OIDCProviderAuthRequestMethod POST và chính sách xác thực Require valid-user mà không có gateway ở cấp độ ứng dụng (như reverse proxy hoặc load balancer) trong khi không kiểm soát đúng. Trong những điều kiện này, mod_auth_openidc không thể ngăn chặn việc truy cập trái phép vào các trang bảo vệ. Điều này có thể dẫn đến việc lộ thông tin cho người dùng không được xác thực, có khả năng làm suy yếu bảo mật của các ứng dụng dựa vào cơ chế xác thực OpenID.

Chi tiết kỹ thuật:
Lỗ hổng này phát sinh từ cách mà module tương tác với logic xử lý yêu cầu nội bộ của Apache. Khi một người dùng truy cập một nguồn tài nguyên bảo vệ, máy chủ trả về một phản hồi đa phần bao gồm không chỉ trạng thái HTTP và tiêu đề như mong đợi mà còn cả một biểu mẫu xác thực và nội dung của trang được bảo vệ, mặc dù người dùng vẫn chưa được xác thực. Hàm oidc_content_handler không kiểm tra mẫu yêu cầu cụ thể này, dẫn đến việc Apache vô tình bổ sung nội dung không được phép vào phản hồi.

Giải pháp và bản sửa lỗi:
Để khắc phục lỗ hổng này, OpenIDC đã phát hành bản sửa lỗi trong phiên bản mod_auth_openidc 2.4.16.11. Ngoài ra, một số biện pháp ứng phó khác được khuyến nghị cho những ai không thể ngay lập tức áp dụng bản sửa lỗi:

  • Chuyển sang GET: Sử dụng OIDCProviderAuthRequestMethod GET (mặc định) sẽ tránh được lỗi này.
  • Thêm một Gateway: Triển khai một gateway ở cấp độ ứng dụng hoặc reverse proxy sẽ che giấu dữ liệu sai từ người dùng không được xác thực.

Lỗ hổng này nhấn mạnh tầm quan trọng của việc đảm bảo cấu hình đúng và vá lỗi cho các module bảo mật để duy trì tính toàn vẹn của các ứng dụng web.