Okta Java SDK CVE-2025-67505
HIGHSeverity by source
AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:L
AC:H because winning the concurrency race is unreliable and not directly attacker-forced; C/I/A lowered to L because impact only materializes conditionally in specific consuming-app authz patterns; S:C as the SDK defect affects the hosting application's decisions.
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
3DescriptionCVE.org
Okta Java Management SDK facilitates interactions with the Okta management API. In versions 11.0.0 through 20.0.0, race conditions may arise from concurrent requests using the ApiClient class. This could cause a status code or response header from one request’s response to influence another request’s response. This issue is fixed in version 20.0.1.
AnalysisAI
Okta Java SDK versions 11.0.0 through 20.0.0 allow concurrent ApiClient requests to cross-contaminate response status codes and headers, which can undermine access-control decisions in multithreaded applications. This is a timing-dependent race condition (CWE-362) that is not remotely exploitable against default deployments; exploitation requires an application that invokes ApiClient concurrently and bases authorization on its response status or headers. No public exploit or active exploitation has been identified, and EPSS is low at 0.21%, but a vendor patch is available in version 20.0.1 (GHSA text says 21.0.0+).
Technical ContextAI
The Okta Java Management SDK (okta-sdk-java) is a Java library for interacting with Okta's management API. Its ApiClient class handles HTTP requests, and in versions 11.0.0 through 20.0.0 (CPE cpe:2.3:a:okta:java_management_sdk:*:*:*:*:*:*:*:*) the invokeAPI method lacked proper synchronization. This introduced a race condition classified as CWE-362 (Concurrent Execution using Shared Resource with Improper Synchronization), where concurrent threads could interleave such that one request's response status code or header is read from shared mutable state by another request. The root cause is unsynchronized access to shared response state within ApiClient. The vendor fixed this by adding the synchronized keyword to invokeAPI in commit abf4f128, serializing access. The flaw is timing-dependent and only manifests when an application uses a single ApiClient instance across multiple threads and makes security decisions based on the returned status or headers.
RemediationAI
Upgrade the Okta Java Management SDK to version 20.0.1 or later (the GHSA also references 21.0.0+ as a fix; confirm the appropriate version for your dependency manager). The patch, available from the vendor, adds synchronization to the ApiClient.invokeAPI method to prevent cross-request contamination. If an immediate upgrade is not feasible, avoid sharing a single ApiClient instance across multiple threads in security-sensitive paths, or wrap all ApiClient calls with external synchronization (e.g., using a lock) to serialize access-though this can degrade performance and is error-prone. Additionally, review applications to ensure they do not base access-control decisions solely on HTTP response status codes or headers from ApiClient unless those values are isolated per request. Consult the advisory at https://github.com/okta/okta-sdk-java/security/advisories/GHSA-j5gq-897m-2rff and the fix commit at https://github.com/okta/okta-sdk-java/commit/abf4f128a0441f90cb7efcdcf4bde1aef8703243 for details.
Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m
Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti
Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent
Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug
JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up
Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up
The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow
Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla
The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during
Same weakness CWE-362 – Race Condition
View allSame technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today