Giới thiệu chung
Dữ liệu gốcLỗ hổng trong sản phẩm Oracle Java SE, Oracle GraalVM for JDK, Oracle GraalVM Enterprise Edition của Oracle Java SE (thành phần: JSSE). Các phiên bản được hỗ trợ bị ảnh hưởng là Oracle Java SE: 8u511-b32, 8u511-perf-b32, 11.0.33.0.2, 17.0.21.0.2, 21.0.13.0.2, 25.0.5.0.2, 27.0.1.0.2; Oracle GraalVM for JDK: 17.0.21.0.2 và 21.0.13.0.2; Oracle GraalVM Enterprise Edition: 21.3.20.0.2. Lỗ hổng dễ khai thác cho phép kẻ tấn công chưa được xác thực có quyền truy cập mạng qua nhiều giao thức xâm phạm Oracle Java SE, Oracle GraalVM for JDK, Oracle GraalVM Enterprise Edition. Các cuộc tấn công thành công có thể dẫn đến quyền tạo, xóa hoặc sửa trái phép đối với dữ liệu quan trọng hoặc toàn bộ dữ liệu mà Oracle Java SE, Oracle GraalVM for JDK, Oracle GraalVM Enterprise Edition có thể truy cập, cũng như quyền truy cập trái phép vào dữ liệu quan trọng hoặc quyền truy cập hoàn toàn vào toàn bộ dữ liệu mà Oracle Java SE, Oracle GraalVM for JDK, Oracle GraalVM Enterprise Edition có thể truy cập. Lưu ý: Có thể khai thác lỗ hổng này bằng cách sử dụng các API trong Component được chỉ định, chẳng hạn thông qua một web service cung cấp dữ liệu cho các API. Lỗ hổng này cũng áp dụng cho các triển khai Java, thường là các máy khách chạy ứng dụng Java Web Start trong sandbox hoặc Java applet trong sandbox, tải và chạy mã không tin cậy, chẳng hạn mã đến từ Internet, và dựa vào Java sandbox để bảo mật. CVSS 3.1 Base Score 9.1 (Confidentiality and Integrity impacts). CVSS Vector: (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N).
Sản phẩm và phạm vi ảnh hưởng
- Oracle Java SE: Các phiên bản bị ảnh hưởng là
8u511-b32,8u511-perf-b32,11.0.33.0.2,17.0.21.0.2,21.0.13.0.2,25.0.5.0.2và27.0.1.0.2. - Oracle GraalVM for JDK: Các phiên bản bị ảnh hưởng là
17.0.21.0.2và21.0.13.0.2. - Oracle GraalVM Enterprise Edition: Phiên bản bị ảnh hưởng là
21.3.20.0.2. - Các bản sửa Oracle Java SE được xác nhận trong release notes: Oracle xác nhận bản sửa trong
8u511 b33,11.0.33.0.3,17.0.21.0.3,21.0.13.0.3,25.0.5.0.3và27.0.1.0.3. - Release notes được trả về không xác nhận riêng một phiên bản sửa lỗi cụ thể cho nhánh
8u511-perfhoặc cho từng bản phát hành GraalVM. Không nên suy ra rằng mọi nhánh mới hơn hoặc nhánh song song đều không bị ảnh hưởng nếu chưa đối chiếu Patch Availability Document của Oracle.
Chi tiết kỹ thuật
Oracle Java SE, Oracle GraalVM for JDK và Oracle GraalVM Enterprise Edition bị ảnh hưởng tại thành phần JSSE. Oracle mô tả việc khai thác thông qua các API của thành phần này, chẳng hạn một web service cung cấp dữ liệu cho API; risk matrix cũng xác định nhiều giao thức có thể liên quan. Kẻ tấn công có thể gửi dữ liệu qua mạng mà không cần xác thực, nhưng advisory không công bố API, hàm, định dạng dữ liệu hoặc đường đi xử lý cụ thể tạo ra lỗi. Bản cập nhật của Oracle loại bỏ các root CA bị ảnh hưởng liên quan đến eMudhra khỏi trust store của JDK, cho thấy lỗi có liên quan đến xử lý niềm tin chứng chỉ trong JSSE, nhưng đây là suy luận từ cách khắc phục chứ không phải mô tả đầy đủ cơ chế lỗi. Chi tiết triển khai chính xác và điều kiện dữ liệu tối thiểu để kích hoạt lỗi vẫn chưa được công bố.
Khả năng khai thác
- Khả năng tiếp cận: Có thể khai thác qua mạng bằng nhiều giao thức và thông qua các API JSSE; một web service cung cấp dữ liệu cho API là ví dụ được Oracle nêu.
- Xác thực và tương tác: Kẻ tấn công không cần xác thực và không cần tương tác của người dùng trong kịch bản mạng được mô tả.
- Độ phức tạp: Oracle đánh giá việc khai thác là dễ thực hiện với độ phức tạp thấp.
- Triển khai máy khách: Lỗ hổng cũng áp dụng cho các triển khai Java chạy trong sandbox, đặc biệt là Java Web Start hoặc Java applet tải và chạy mã không tin cậy.
- Tình trạng khai thác: Bản ghi chuẩn hóa đánh dấu không có public exploit và không xác nhận trạng thái known-exploited. Điều này không chứng minh rằng lỗ hổng chưa từng bị khai thác.
Tác động kỹ thuật
Lỗ hổng có thể cho phép kẻ tấn công từ xa không cần xác thực vượt qua kỳ vọng bảo vệ của JSSE và thực hiện các thao tác trái phép trên dữ liệu mà tiến trình Java có thể truy cập. Hậu quả kỹ thuật được Oracle mô tả gồm đọc dữ liệu quan trọng, truy cập toàn bộ dữ liệu khả dụng, cũng như tạo, xóa hoặc sửa dữ liệu. Vì phạm vi được mô tả là không thay đổi, quyền của tiến trình bị xâm phạm có thể quyết định giới hạn dữ liệu thực tế bị ảnh hưởng, nhưng bản ghi không cung cấp thêm chi tiết về quyền hệ điều hành hoặc quyền ứng dụng. Tổ chức có thể phải điều tra tính toàn vẹn của dữ liệu, rà soát các dịch vụ dùng JSSE và xử lý lỗi tương thích chứng chỉ sau khi áp dụng bản sửa. Không có hậu quả về tính sẵn sàng được xác nhận trong bằng chứng hiện có.
Tác động đến tổ chức
- Dữ liệu: Một cuộc tấn công thành công có thể làm mất tính bảo mật của dữ liệu mà runtime hoặc ứng dụng sử dụng, đồng thời cho phép tạo, xóa hoặc sửa dữ liệu quan trọng.
- Quyền truy cập: Phạm vi ảnh hưởng có thể bao gồm toàn bộ dữ liệu mà Oracle Java SE hoặc GraalVM bị ảnh hưởng có thể truy cập, không chỉ dữ liệu của riêng thành phần JSSE.
- Dịch vụ exposed: Các máy chủ cung cấp dữ liệu cho API JSSE qua mạng cần được ưu tiên kiểm tra vì không yêu cầu thông tin xác thực theo mô tả của Oracle.
- Máy khách: Các máy khách còn chạy mã không tin cậy trong Java sandbox cũng có thể nằm trong phạm vi ảnh hưởng.
- Giới hạn: Bản ghi không mô tả hậu quả về tính sẵn sàng và không cung cấp bằng chứng về một vụ rò rỉ, sửa đổi dữ liệu hoặc xâm nhập cụ thể.
Cách khắc phục
- Ưu tiên cập nhật Oracle Java SE: Đưa các nhánh Java SE bị ảnh hưởng lên bản có bản sửa đã được Oracle xác nhận tương ứng:
8u511 b33,11.0.33.0.3,17.0.21.0.3,21.0.13.0.3,25.0.5.0.3hoặc27.0.1.0.3, tùy nhánh đang triển khai. Với8u511-perf-b32, cần xác nhận bản perf build sửa lỗi tương ứng trong tài liệu phát hành của Oracle thay vì tự suy ra từ bản JDK chuẩn. - Xử lý GraalVM: Cập nhật Oracle GraalVM for JDK và Oracle GraalVM Enterprise Edition theo bản Java tương ứng và Patch Availability Document mà Oracle liên kết trong advisory. Các nguồn được kiểm tra không nêu một phiên bản sửa lỗi GraalVM riêng, vì vậy không nên tự gán một ranh giới phiên bản cho hai sản phẩm này.
- Nếu chưa thể cập nhật: Áp dụng mitigation được Oracle khuyến nghị cho sự cố root CA bị ảnh hưởng liên quan đến eMudhra. Không tự coi việc chỉnh sửa trust store là biện pháp hoàn chỉnh nếu chưa đối chiếu hướng dẫn của Oracle và tác động đến các chuỗi chứng chỉ đang sử dụng.
- Kiểm thử sau thay đổi: Kiểm tra các kết nối TLS và quy trình xác minh JAR có phụ thuộc vào các root certificate bị loại bỏ. Xác nhận các chứng chỉ hợp lệ của tổ chức vẫn được thay thế hoặc cấu hình theo hướng dẫn của bên quản lý chứng chỉ.
- Giảm phạm vi phơi nhiễm: Tạm thời hạn chế các endpoint hoặc dịch vụ không cần thiết cung cấp dữ liệu cho API JSSE, đồng thời loại bỏ các triển khai Java sandbox cũ không còn yêu cầu nghiệp vụ.
Cách phát hiện
- Kiểm kê runtime: Xác định mọi cài đặt Oracle Java SE, Oracle GraalVM for JDK và Oracle GraalVM Enterprise Edition, bao gồm các runtime được nhúng trong máy chủ, ứng dụng desktop, dịch vụ web và môi trường build.
- Đối chiếu phiên bản: So sánh phiên bản thực tế với các nhánh bị ảnh hưởng trong mục affected_summary. Không chỉ kiểm tra JDK hệ thống, vì ứng dụng có thể sử dụng một JRE hoặc JDK riêng.
- Kiểm tra trust store: Kiểm tra
cacertsvà các trust store tùy biến để tìm các root certificate liên quan đến eMudhra và Comodo mà các bản cập nhật của Oracle loại bỏ. Sự hiện diện của chúng là tín hiệu cần điều tra, nhưng việc không thấy chúng không tự chứng minh an toàn nếu runtime đã được đóng gói lại hoặc ứng dụng dùng trust store riêng. - Rà soát đường vào: Xác định các dịch vụ cung cấp dữ liệu cho API JSSE và các máy khách còn chạy Java Web Start hoặc Java applet trong sandbox với mã không tin cậy.
- Kiểm tra sau cập nhật: Rà soát lỗi TLS handshake và lỗi xác minh JAR có thể phát sinh sau khi các root certificate bị loại bỏ. Đây là kiểm tra tương thích sau cập nhật, không phải IOC đã được Oracle công bố.
- Oracle không công bố log event, IOC hoặc chữ ký phát hiện riêng cho việc khai thác lỗ hổng này.