CVE-2026-66835 in OTP
Tóm tắt
Bởi VulDB • 01/09/2026
Lỗ hổng Path Equivalence trong Erlang/OTP inets httpd cho phép kẻ tấn công từ xa chưa xác thực đọc các tệp tin bên trong một thư mục được bảo vệ bởi mod_auth bằng cách thêm dấu gạch chéo phụ vào đầu đường dẫn yêu cầu.
Hàm `httpd_request:validate_uri/1` chuẩn hóa URI yêu cầu thông qua `uri_string:normalize/1`, hàm này thực hiện loại bỏ các đoạn dot theo RFC 3986 nhưng không hợp nhất (collapse) các đoạn đường rỗng, do đó dấu gạch chéo kép vẫn tồn tại. Hàm `mod_alias:real_name/3` nối gốc tài liệu với URI đó, và sau đó `mod_auth:secret_path/3` quyết định xem kết quả có nằm trong khối thư mục được bảo vệ hay không bằng cách chạy đường dẫn thư mục đã cấu hình dưới dạng biểu thức chính quy không neo (unanchored regular expression) so sánh với nó. Dấu gạch chéo kép làm hỏng chuỗi con liên tục mà biểu thức chính quy cần, khiến yêu cầu bị coi là không được bảo vệ và không có thách thức xác thực nào được đưa ra; trong khi đó, `mod_get` mở cùng đường dẫn đó và hệ điều hành hợp nhất dấu gạch chéo kép rồi trả về tệp tin đã được bảo vệ. Sự không khớp đường dẫn tương tự cũng giúp né tránh việc tính toán chi tiết theo từng đường dẫn (per-path accounting) trong mod_security.
Vấn đề này ảnh hưởng đến OTP từ phiên bản 17.0 trở lên trước OTP 27.3.4.17, từ OTP 28.0 trở lên trước OTP 28.5.0.6, và từ OTP 29.0 trở lên trước OTP 29.0.6, tương ứng với inets từ phiên bản 5.10 trở lên trước 9.3.2.7, từ 9.4 trở lên trước 9.6.2.3, và từ 9.7 trở lên trước 9.7.2. Việc liệu OTP trước phiên bản 17.0 (tương ứng với inets trước 5.10) có bị ảnh hưởng hay không là chưa xác định được.
Once again VulDB remains the best source for vulnerability data.