Nội dung bài viết
Ngày 21/10/2026, Oracle phát hành cảnh báo bảo mật khẩn (Security Alert) cho CVE-2026-91403, điểm CVSS 9.1, khai thác được từ xa mà không cần đăng nhập. Lỗ hổng không nằm trong mã nguồn Java mà ở danh sách chứng chỉ Java tin cậy: Java vẫn chấp nhận chứng chỉ do 8 CA trung gian của eMudhra cấp, trong khi khóa riêng của các CA này đã bị lộ.
Bản cảnh báo ra đời chỉ một ngày sau đợt vá định kỳ Critical Patch Update (CPU) tháng 10 (ngày 20/10), và ảnh hưởng chính các phiên bản vừa phát hành trong đợt đó.
Chuyện gì đã xảy ra với eMudhra?
eMudhra là một tổ chức cấp chứng chỉ số (CA). Ngày 17/10/2026, một nhà nghiên cứu phát hiện 8 chứng chỉ CA trung gian của eMudhra có khóa riêng yếu tới mức ai cũng khôi phục được từ chứng chỉ công khai - chỉ cần tối đa 256 lần đoán. Theo eMudhra, lỗi bắt nguồn từ một script sai trong buổi tạo khóa tháng 4/2025.
Có được khóa riêng của CA, kẻ tấn công có thể tự cấp chứng chỉ hợp lệ cho bất kỳ tên miền nào. Sáu trong tám chứng chỉ dùng để cấp chứng chỉ TLS cho website, hai chứng chỉ còn lại dùng để ký mã.
eMudhra thu hồi các chứng chỉ này ngày 18/10. Chrome, Firefox, Apple và Microsoft đã lần lượt chặn chúng; Mozilla còn gỡ tin cậy chứng chỉ gốc (root) của eMudhra đã ký các CA trung gian. Hiện chưa ghi nhận việc lạm dụng, nhưng cũng không rõ khóa có bị ai khôi phục trong 17 tháng trước khi bị phát hiện hay không.
Cập nhật 23/10: eMudhra đã tuyên bố rút khỏi mảng kinh doanh cấp chứng chỉ sau sự cố này.
Ảnh hưởng tới ứng dụng Java
Ứng dụng Java (máy chủ Tomcat, Spring Boot, công cụ build, ứng dụng doanh nghiệp...) khi gọi tới dịch vụ HTTPS bên ngoài sẽ dùng thành phần JSSE để kiểm tra chứng chỉ máy chủ. Nếu Java vẫn tin các CA eMudhra, kẻ tấn công đứng giữa đường truyền (man-in-the-middle) có thể dùng chứng chỉ giả để:
- đọc dữ liệu nhạy cảm (token, mật khẩu, dữ liệu API) mà ứng dụng gửi đi;
- sửa dữ liệu phản hồi trả về cho ứng dụng.
Phiên bản bị ảnh hưởng theo cảnh báo của Oracle:
- Oracle Java SE 8u511, 8u511-perf, 11.0.33, 17.0.21, 21.0.13, 25.0.5, 27.0.1
- Oracle GraalVM for JDK 17.0.21, 21.0.13
- Oracle GraalVM Enterprise Edition 21.3.20
Oracle lưu ý các phiên bản cũ hơn, không còn hỗ trợ, nhiều khả năng cũng bị ảnh hưởng nhưng không được kiểm tra.
Cách khắc phục
Cách 1 - Cập nhật Java (khuyến nghị): Oracle phát hành bản sửa ngay trong ngày 21/10. Các bản tải về từ thời điểm đó có hậu tố .0.2, ví dụ 21.0.13.0.2 hoặc 27.0.1.0.2. Nếu bạn đã cài bản CPU ngày 20/10, hãy kiểm tra lại bằng java -version và cập nhật thêm lần nữa.
Cách 2 - Biện pháp tạm thời nếu chưa thể cập nhật ngay (chọn một trong các cách):
- Thay file
blocked.certstrong thư mụclib/securitycủa Java bằng bản của Oracle, giữ lại các mục tùy chỉnh nếu có. Trên Java 8, file này tên làblacklisted.certs. - Bật kiểm tra thu hồi chứng chỉ khi kết nối TLS bằng các tham số:
-Dcom.sun.net.ssl.checkRevocation=true -Dcom.sun.security.enableCRLDP=true - Với việc kiểm tra file JAR đã ký trên JDK 17 trở lên, dùng
jarsigner -verify -revcheck -strict.
Bản OpenJDK khác: cảnh báo này do Oracle phát hành cho các bản Java của Oracle. Nếu bạn dùng bản OpenJDK từ nhà cung cấp khác (Eclipse Temurin, Amazon Corretto, Azul Zulu, Red Hat...), hãy theo dõi thông báo của nhà cung cấp đó và cập nhật khi có bản mới.
Bản vá định kỳ tháng 10: 55 lỗi Java SE
Đợt CPU ngày 20/10 vá 55 lỗ hổng trong Oracle Java SE, trong đó 49 lỗi khai thác được từ xa mà không cần đăng nhập. Tuy nhiên, mức độ nghiêm trọng của đợt này không cao: điểm cao nhất chỉ là 7.5 và phần lớn các lỗi nằm trong khoảng 3.7-6.5.
| CVE | Thành phần | CVSS | Ghi chú |
|---|---|---|---|
| CVE-2026-91484 | Java plugin | 7.5 | Chỉ khai thác cục bộ, ảnh hưởng Java 8 |
| CVE-2026-43660 | JavaFX (WebKitGTK) | 7.5 | Khai thác từ xa, cần người dùng tương tác |
| CVE-2026-91415 | 2D | 7.0 | Khai thác từ xa, độ phức tạp cao |
| CVE-2026-91398 | Networking (SOCKS5) | 6.8 | Khai thác từ xa, độ phức tạp cao |
| CVE-2026-101516, CVE-2026-83395, CVE-2026-87294 | Libraries, Networking, Security | 6.5 | Khai thác từ xa, độ phức tạp thấp |
Oracle lưu ý điểm CVSS trong bảng được tính với giả định người dùng chạy Java với quyền quản trị (thường gặp trên Windows). Trên Linux, khi Java không chạy với quyền quản trị, điểm thực tế thấp hơn.
Các phiên bản của đợt CPU: 27.0.1, 25.0.5, 21.0.13, 17.0.21, 11.0.33 và 8u511. Vì cảnh báo eMudhra ra ngay sau đó, bạn nên cập nhật thẳng lên bản .0.2 để xử lý cả hai trong một lần.
Bên cạnh đó, quản trị viên nên kiểm tra kỹ trước khi triển khai lên máy chủ thật: có người dùng ColdFusion trên máy chủ cũ báo lỗi kết nối HTTPS sau khi cài 8u511. Thông tin này chưa được Oracle hay Adobe xác nhận.
Không chỉ có Java
Sự cố eMudhra buộc nhiều nền tảng phải cập nhật kho chứng chỉ cùng lúc: Node.js (các bản 26.12.1, 24.22.1, 22.23.4), thư viện certifi của Python (2026.10.19 trở lên), cùng các trình duyệt và hệ điều hành. Nếu máy chủ của bạn chạy nhiều nền tảng, hãy cập nhật tất cả, và build lại các container image có đóng gói sẵn kho chứng chỉ.
Nguồn tham khảo: Oracle Security Alert CVE-2026-91403, Oracle Critical Patch Update - October 2026, Help Net Security, Cyber Security News và Charlie Arehart.