Spring Security là một trong những core feature quan trọng của Spring Framework, nó giúp chúng ta phân quyền và xác thực người dùng trước khi cho phép họ truy cập vào các tài nguyên. Mới đây, Spring Security đã xử lý hai lỗ hổng có thể đang bị khai thác được gán mã định danh lần lượt là CVE-2023-34034 và CVE-2023-34035.
Lỗ hổng đầu tiên có mã định danh là CVE-2023-34034, có điểm CVSS là 8,8 và xảy ra khi ký tự “**” được sử dụng làm mẫu trong cấu hình Spring Security cho WebFlux, dẫn đến sự không khớp trong việc khớp mẫu giữa Spring Security và Spring WebFlux và hacker có thể lợi dụng để tấn công hệ thống.
Các phiên bản Spring Security bị ảnh hưởng:
- Từ 6.1.0 đến 6.1.1
- Từ 6.0.0 đến 6.0.4
- Từ 5.8.0 đến 5.8.4
- Từ 5.7.0 đến 5.7.9
- Từ 5.6.0 đến 5.6.11
Người dùng có thể nâng cấp lên các phiên bản Spring Security: 6.1.2+ , 6.0.5+ , 5.8.5+ , 5.7.10 + và 5.6.12 +; những phiên bản này yêu cầu Spring Framework 6.0.11+, 5.3.29+ và 5.2.25+.
Lỗ hổng thứ hai có mã định danh là CVE-2023-34035, xuất hiện trong các phiên bản Spring Security từ 5.8 đến trước 5.8.5, 6.0 đến trước 6.0.5 và 6.1 đến trước 6.1.2. Những phiên bản này có thể bị lỗi cấu hình phân quyền nếu ứng dụng dùng thành phần requestMatchers(String) và nhiều servlet – trong đó có DispatcherServlet của Spring MVC, một thành phần ánh xạ các HTTP endpoint tới các phương thức trên các lớp có chú thích @Controller. Nếu khai thác thành công, hacker có thể truy cập vào các tài nguyên, chức năng hoặc tính năng cụ thể.
Người dùng nên nâng cấp lên các phiên bản để đảm bảo an toàn thông tin
- Người dùng phiên bản 5.8.x nên cập nhật lên 5.8.5
- Người dùng phiên bản 6.0.x nên cập nhật lên 6.0.5
- Người dùng phiên bản 6.1.x nên cập nhật lên 6.1.2
Ngoài ra, thông báo lỗi khi khởi động cung cấp manh mối quan trọng. Chẳng hạn, nếu requestMatchers(String) trỏ đến một điểm cuối MVC không phải Spring, /endpoint, nó sẽ được thay đổi thành requestMatchers(newAntPathRequestMatcher(“/endpoint”)).
Mặc dù Spring Security đóng vai trò là lá chắn cho các ứng dụng dựa trên Spring, nhưng các lỗ hổng này nhấn mạnh tầm quan trọng của việc giám sát liên tục và cập nhật kịp thời trong việc duy trì tính toàn vẹn bảo mật của ứng dụng.