Thực thi mã từ xa không xác thực trong OpenIdentityPlatform OpenAM qua endpoint /authservice

Lưu ý: Dữ liệu này chỉ có tính chất tham khảo, phục vụ nghiên cứu an ninh mạng.CyStack khuyến nghị người dùng không sử dụng các thông tin này nhằm các mục đích bất hợp pháp

Lỗ hổng CVE-2026-62379 là gì?

Lỗ hổng CVE-2026-62379 là lỗ hổng thuộc các loại Improper Control of Generation of Code ('Code Injection') và Use of Externally-Controlled Input to Select Classes or Code ('Unsafe Reflection'), ảnh hưởng tới OpenAM (phiên bản bị ảnh hưởng: < 16.1.2). Lỗ hổng này được xếp hạng ở mức Nghiêm trọng, với điểm CVSS 9.8. Các nguồn hiện có chưa ghi nhận lỗ hổng này bị khai thác.

Giới thiệu chung

Dữ liệu gốc

Open Access Management (OpenAM) là một giải pháp quản lý truy cập. Trước 16.1.2, endpoint PLL pre-authentication /authservice chấp nhận một phần tử XML CustomCallback có giá trị className dùng để chọn một Java class tùy ý cho AuthXMLUtils tải và khởi tạo mà không xác minh class đó triển khai DSAMECallbackInterface. Cấu hình mặc định để lộ endpoint mà không cần xác thực, cho phép attacker kiểm soát việc khởi tạo class và quá trình deserialize không an toàn một giá trị Subject đã được serialize để thực thi code trong tiến trình máy chủ. Việc bật sunRemoteAuthSecurityEnabled không ngăn được hoạt động parse và khởi tạo dễ bị tấn công vì kiểm tra của tùy chọn này diễn ra muộn hơn. Vấn đề này được sửa trong phiên bản 16.1.2.

Sản phẩm và phạm vi ảnh hưởng

  • Gói Maven org.openidentityplatform.openam:openam-core của OpenIdentityPlatform OpenAM bị ảnh hưởng ở các bản phát hành < 16.1.2; advisory của vendor mô tả phạm vi là tất cả bản phát hành đến và bao gồm 16.1.1.
  • Bản đã được nêu là đã sửa là 16.1.2.
  • Evidence được rà soát không độc lập xác lập trạng thái của các nhánh phát hành muộn hơn hoặc các nhánh song song. Không nên suy luận rằng một nhánh chưa được xác minh là không bị ảnh hưởng.

Chi tiết kỹ thuật

OpenIdentityPlatform OpenAM xử lý yêu cầu XML tại endpoint pre-authentication /authservice của giao thức PLL. Giá trị className trong phần tử CustomCallback do phía gửi kiểm soát được AuthXMLUtils dùng để tải và khởi tạo một Java class tùy ý mà không xác minh class đó triển khai DSAMECallbackInterface. Trên cấu hình mặc định, endpoint có thể được truy cập mà không cần xác thực, vì vậy dữ liệu XML do attacker kiểm soát có thể kích hoạt việc khởi tạo class trong tiến trình máy chủ.

Ngoài việc khởi tạo class tùy ý, luồng xử lý còn deserialize giá trị Subject đã được serialize mà không có cơ chế giới hạn class an toàn. Điều này có thể cho phép thực thi code trong tiến trình OpenAM khi dữ liệu được tạo phù hợp. Kiểm tra sunRemoteAuthSecurityEnabled diễn ra sau khi AuthXMLRequest.parseXML đã phân tích request và khởi tạo class, nên không ngăn được phần xử lý dễ bị tấn công. Bản sửa đổi bổ sung việc tải class mà không chạy static initializer, kiểm tra DSAMECallbackInterface trước khi khởi tạo và áp dụng allowlist cùng giới hạn đối với quá trình deserialize Subject. Evidence hiện có không xác định một gadget chain hoặc payload cụ thể.

Khả năng khai thác

Lỗ hổng có thể bị khai thác qua mạng thông qua endpoint /authservice của PLL. Theo cấu hình mặc định, attacker không cần xác thực, không cần user interaction và điều kiện khai thác được đánh giá là có độ phức tạp thấp. Yêu cầu độc hại cần chứa dữ liệu XML kiểm soát được, bao gồm phần tử CustomCallback với giá trị className phù hợp.

Record được cung cấp đánh dấu public_exploit là false và known_exploited là null, nhưng không có nghĩa là đã chứng minh không xảy ra khai thác. Public exploitation status vẫn chưa được thiết lập rõ trong evidence hiện có.

Tác động kỹ thuật

Khai thác thành công cho phép attacker thực thi code trong tiến trình OpenAM thông qua việc khởi tạo Java class do input bên ngoài chọn và quá trình deserialize Subject không an toàn. Hậu quả kỹ thuật có thể bao gồm đọc dữ liệu, thay đổi dữ liệu hoặc cấu hình mà tiến trình có quyền truy cập, và làm gián đoạn dịch vụ.

Vì endpoint có thể được truy cập trước xác thực trên cấu hình mặc định, tác động không bị giới hạn ở người dùng OpenAM đã đăng nhập. Việc chiếm quyền tiến trình có thể làm suy giảm độ tin cậy của các chức năng access management phụ thuộc vào máy chủ. Mức độ truy cập thực tế sau khai thác còn phụ thuộc vào quyền của tiến trình, phân đoạn mạng và các secret mà máy chủ có thể đọc; evidence không chứng minh một breach hoặc một chuỗi khai thác cụ thể.

Tác động đến tổ chức

Việc khai thác thành công có thể làm mất quyền kiểm soát máy chủ OpenAM, là thành phần thường xử lý các luồng authentication và authorization của tổ chức.

  • Attacker có thể thực thi code trong ngữ cảnh của tiến trình OpenAM, từ đó có khả năng đọc dữ liệu mà tiến trình được phép truy cập, thay đổi cấu hình hoặc dữ liệu dịch vụ, và gây gián đoạn dịch vụ.
  • Nếu OpenAM cung cấp nền tảng cho nhiều ứng dụng, việc máy chủ bị chiếm quyền có thể ảnh hưởng đến tính tin cậy của các quyết định đăng nhập, cấp quyền hoặc session do hệ thống tạo ra.
  • Hệ thống bị ảnh hưởng có thể cần cô lập, điều tra và rà soát credential, session hoặc secret mà tiến trình OpenAM có thể truy cập. Đây là hệ quả vận hành có khả năng xảy ra, không phải bằng chứng về một vụ xâm nhập cụ thể.
  • Record hiện có không nêu nạn nhân, chiến dịch, breach hoặc dữ liệu cụ thể đã bị truy cập.

Cách khắc phục

  1. Nâng cấp OpenIdentityPlatform OpenAM lên bản đã được vendor xác nhận sửa là 16.1.2.
  2. Nếu chưa thể nâng cấp, hạn chế hoặc chặn truy cập mạng bên ngoài tới /authservice. Advisory mô tả đây là biện pháp giảm thiểu đáng tin cậy duy nhất trong thời gian chờ nâng cấp.
  3. Có thể cân nhắc chặn tại reverse proxy hoặc WAF các request PLL chứa phần tử <CustomCallback className="...">, nhưng trước hết phải kiểm tra traffic thực tế để tránh làm hỏng các triển khai sử dụng callback hợp lệ.
  4. Không dựa vào sunRemoteAuthSecurityEnabled như một biện pháp thay thế cho nâng cấp hoặc hạn chế mạng. Kiểm tra token xảy ra sau khi request đã được parse và class được chỉ định đã bị khởi tạo, nên tùy chọn này không ngăn được đường xử lý dễ bị tấn công.
  5. Sau khi nâng cấp, xác minh rằng bản triển khai thực tế đã chạy code sửa lỗi, endpoint đã được bảo vệ theo chính sách mạng và các hệ thống chưa thể vá đã được theo dõi riêng.

Cách phát hiện

  1. Kiểm kê mọi triển khai OpenAM và xác minh phiên bản của gói org.openidentityplatform.openam:openam-core, ưu tiên các hệ thống còn nhận traffic từ mạng bên ngoài.
  2. Kiểm tra routing, reverse proxy và firewall để xác định endpoint /authservice có thể được truy cập trước xác thực hay không.
  3. Rà soát log HTTP và telemetry của ứng dụng cho các request bất thường tới /authservice, đặc biệt request chứa phần tử CustomCallback và thuộc tính className. Đây là kiểm tra phòng ngừa, không phải IOC đã được vendor xác nhận.
  4. Xác minh trạng thái sunRemoteAuthSecurityEnabled, nhưng không xem việc bật tùy chọn này là bằng chứng endpoint đã an toàn hoặc là biện pháp khắc phục.
  5. Rà soát các lỗi khởi tạo class, lỗi parse XML và dấu hiệu bất thường trong tiến trình OpenAM sau các request tới endpoint. Không có log sự kiện hoặc IOC cụ thể nào được cung cấp, và việc không thấy log không chứng minh hệ thống không bị khai thác.
Nguồn (13)
Tìm hiểu thêm

Kiểm tra chuyên sâu cùng giải pháp quản lý rủi ro Web toàn diện

Giải pháp CyStack VulnScan liên tục phát hiện tài sản, xác minh lỗ hổng và giúp đội ngũ bảo mật ưu tiên khắc phục cho toàn bộ doanh nghiệp.

Khám phá CyStack VulnScan