CVE-2025-53960
Java vulnerability analysis and mitigation

Overview

CVE-2025-53960 is a weak cryptographic implementation vulnerability in Apache StreamPark where the application uses the user's password directly as the HMAC signing key (e.g., HS256) when issuing JSON Web Tokens (JWTs). This design flaw allows attackers to perform offline brute-force attacks against captured JWTs to recover user passwords, or to forge arbitrary identity tokens if the password is already known, ultimately enabling complete account takeover. The vulnerability affects Apache StreamPark versions 2.0.0 through 2.1.6 (before 2.1.7) and was publicly disclosed on December 4–12, 2025. It carries a CVSS v3.1 base score of 5.9 (Medium) and a CVSS v4.0 base score of 8.2 (High) (GitHub Advisory, OSS-Sec).

Technical details

The root cause is classified as CWE-1240 (Use of a Cryptographic Primitive with a Risky Implementation): StreamPark derives the HMAC secret key for JWT signing directly from the user's plaintext password rather than using a securely generated, independent secret. This means the JWT's signing key is only as strong as the user's password, and any attacker who intercepts a valid JWT can attempt offline dictionary or brute-force attacks against the HMAC signature to recover the password. Additionally, if the password is already known (e.g., via credential leak or reuse), an attacker can forge valid JWTs for any user, bypassing authentication entirely. The vulnerability requires no privileges and no user interaction, but does require the attacker to first obtain a valid JWT (e.g., via network interception or application-level access) (GitHub Advisory, OSS-Sec).

Impact

Successful exploitation leads to a high confidentiality impact: attackers can recover user passwords through offline JWT cracking or forge authentication tokens to impersonate any user, resulting in complete account takeover. Sensitive data accessible to the compromised account — including stream processing configurations, credentials stored within StreamPark, and administrative functions — may be exposed or manipulated. There is no direct availability or integrity impact on the system itself, but unauthorized access could enable lateral movement within the data pipeline infrastructure managed by StreamPark (GitHub Advisory, OSS-Sec).

Exploitation steps

  1. Obtain a valid JWT: Intercept network traffic between a StreamPark client and server (e.g., via a man-in-the-middle position or by authenticating with a low-privilege account) to capture a JWT issued by the vulnerable StreamPark instance.
  2. Identify the signing algorithm: Decode the JWT header (base64url) to confirm the algorithm is HS256 (or similar HMAC-based scheme), confirming the password-as-key pattern.
  3. Offline brute-force the HMAC key: Use a tool such as hashcat (mode 16500 for JWT) or john with a wordlist to perform an offline dictionary/brute-force attack against the JWT signature, recovering the user's password (which serves as the HMAC secret).
  4. Forge arbitrary JWTs: With the recovered password (signing key), craft a new JWT with a modified payload (e.g., changing the username or role claim to an administrator account) and sign it using the same HMAC key.
  5. Authenticate as target user: Submit the forged JWT in API requests to StreamPark to gain full access as the impersonated user, including administrative functions and stored credentials (GitHub Advisory, OSS-Sec).

Indicators of compromise

  • Network: Unusual or repeated API requests to StreamPark endpoints using JWTs with modified payload claims (e.g., different username or role than the original session); JWT tokens appearing for users who are not actively logged in.
  • Logs: StreamPark access logs showing successful authentication or privileged actions from unexpected IP addresses or at unusual times; multiple failed login attempts followed by sudden successful access (indicative of password recovery via JWT cracking).
  • Application Behavior: Administrative actions (e.g., configuration changes, credential access) performed by accounts that do not match expected user activity patterns; sessions originating from IPs inconsistent with the legitimate user's history.

Mitigation and workarounds

Apache has released StreamPark version 2.1.7, which resolves this vulnerability by replacing the password-derived HMAC key with a properly generated, independent secret key for JWT signing. All users running versions 2.0.0 through 2.1.6 should upgrade to 2.1.7 immediately. As interim mitigations, organizations should enforce strong, unique passwords for all StreamPark accounts (to increase brute-force resistance), restrict network access to the StreamPark API to trusted hosts, and rotate all user passwords after upgrading to invalidate any previously cracked keys (GitHub Advisory, Apache Mailing List).

Community reactions

The vulnerability was disclosed via the Apache security mailing list and oss-security, with credit given to researcher Omkar Parkhe (OSS-Sec). Community aggregators including Vulners, VulDB, and CIRCL's vulnerability lookup indexed the CVE shortly after disclosure. Social media activity on Bluesky noted the issue, and security blog infinitsec.net published a brief write-up highlighting the password-as-secret-key design flaw (Feedly). No major vendor statements beyond the Apache advisory have been issued.

Additional resources


SourceThis report was generated using AI

Related Java vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

GHSA-p279-2cqp-84jgCRITICAL9.6
  • Java logoJava
  • org.openidentityplatform.opendj:opendj-server-legacy
NoYesJul 24, 2026
GHSA-fp43-vj7g-pg92HIGH7.5
  • Java logoJava
  • org.omnifaces:omnifaces
NoYesJul 24, 2026
GHSA-7ppr-r889-mcf2HIGH7.5
  • Java logoJava
  • org.http4s:http4s-blaze-server_2.12
NoYesJul 24, 2026
GHSA-mhvj-jhpq-885vHIGH7.4
  • Java logoJava
  • org.http4s:http4s-blaze-server_2.13
NoYesJul 24, 2026
GHSA-46q4-43ph-c6frHIGH7.4
  • Java logoJava
  • org.http4s:blaze-http_2.12
NoYesJul 24, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management