CVE-2025-54947
Java vulnerability analysis and mitigation

Overview

CVE-2025-54947 is a hard-coded encryption key vulnerability in Apache StreamPark, a real-time streaming application management platform. The system uses a fixed, immutable cryptographic key for encryption rather than dynamically generating or securely configuring it, allowing attackers to obtain the key through reverse engineering or code analysis and subsequently decrypt sensitive data or forge encrypted information. Affected versions span Apache StreamPark 2.0.0 through 2.1.6; version 2.1.7 contains the fix. The vulnerability was publicly disclosed on December 12, 2025, with credit to researcher omkarparth@gmail.com. NVD assigns a CVSS v3.1 base score of 9.8 (Critical), while CISA-ADP provides a more conservative score of 5.3 (Medium) (GitHub Advisory, Openwall OSS-Sec).

Technical details

The root cause is classified under CWE-321 (Use of Hard-coded Cryptographic Key) and CWE-798 (Use of Hard-coded Credentials): the application embeds a fixed, unchangeable encryption key directly in its codebase rather than generating it dynamically or loading it from a secure configuration store (GitHub Advisory). An attacker can extract the key by performing static analysis or reverse engineering of the StreamPark application JAR/source code (available publicly on GitHub at apache/streampark, commit 39034db references the fix). Once the key is known, the attacker can decrypt any data encrypted by the application or craft forged encrypted tokens/payloads without needing valid credentials. No authentication or user interaction is required, and the attack is executable over the network with low complexity (Openwall OSS-Sec).

Impact

Successful exploitation allows an unauthenticated remote attacker to decrypt sensitive data protected by StreamPark's encryption (e.g., stored credentials, configuration secrets, tokens) and to forge encrypted information, potentially enabling unauthorized system access. The NVD CVSS assessment rates confidentiality, integrity, and availability impacts all as High, reflecting the potential for full compromise of the StreamPark deployment and any downstream systems whose credentials are managed by it (GitHub Advisory). In environments where StreamPark manages Flink or Spark job credentials and cluster access, lateral movement to connected big data infrastructure is a realistic risk.

Exploitation steps

  1. Reconnaissance: Identify internet-facing Apache StreamPark instances (versions 2.0.0–2.1.6) using tools like Shodan or Censys, or by inspecting Maven dependency manifests in target environments.
  2. Key Extraction: Download the publicly available Apache StreamPark source code or compiled JAR from the Apache/GitHub repository. Perform static analysis (e.g., using grep, jadx, or jd-gui) to locate the hard-coded AES encryption key embedded in the codebase (referenced in commit 39034db as the patched location).
  3. Data Interception or Access: Obtain encrypted data from the StreamPark application — this may include database-stored encrypted credentials, API tokens, or configuration values accessible via the StreamPark UI, API endpoints, or directly from the backend database.
  4. Decryption: Use the extracted hard-coded key with the appropriate cipher mode (reported as AES-ECB) to decrypt the intercepted ciphertext, revealing plaintext credentials or sensitive configuration data.
  5. Token Forgery / Unauthorized Access: Optionally, craft forged encrypted tokens or session data using the known key to impersonate users or bypass authentication mechanisms within StreamPark, gaining unauthorized administrative access.
  6. Lateral Movement: Use recovered credentials (e.g., Flink cluster credentials, database passwords, cloud access keys) to pivot into connected big data infrastructure managed by StreamPark (Openwall OSS-Sec, GitHub Advisory).

Indicators of compromise

  • Logs: Unusual or repeated unauthenticated API requests to StreamPark endpoints that return encrypted data fields; access log entries from unexpected IP addresses querying configuration or credential-related API paths.
  • File System: Presence of StreamPark JAR files being copied or transferred outside the server environment; unexpected scripts performing AES decryption operations on the host.
  • Network: Outbound connections from the StreamPark server to unknown external hosts following access to credential-storing endpoints; data exfiltration patterns (large outbound transfers) from the StreamPark host.
  • Application: Unexpected administrative actions (new user creation, job configuration changes, cluster credential modifications) in StreamPark audit logs, particularly from unfamiliar source IPs or at unusual times.
  • Process: Unexpected processes performing database queries against the StreamPark backend database from non-standard accounts or hosts.

Mitigation and workarounds

The primary remediation is to upgrade Apache StreamPark to version 2.1.7, which replaces the hard-coded encryption key with a dynamically generated or securely configurable key (Openwall OSS-Sec, GitHub Advisory). After upgrading, organizations should rotate all credentials and secrets that were previously encrypted by the vulnerable versions, as those values must be considered compromised. Additionally, restrict network access to StreamPark management interfaces to trusted networks only, and conduct a security audit of any credentials stored or managed by affected deployments. No official configuration-based workaround has been published for versions prior to 2.1.7.

Community reactions

The vulnerability received coverage from several cybersecurity news outlets including SecurityOnline, CyberSecurityNews, CyberPress, and UnderCodeNews, highlighting the risk of data decryption and token forgery via the hard-coded AES-ECB key. The Hacker News included it in their weekly security recap for the week of December 15, 2025. Social media discussion was noted on Bluesky and Mastodon/Infosec.exchange, with the security community flagging the critical CVSS score and the ease of key extraction from the open-source codebase. CISA-ADP provided a notably lower CVSS score (5.3 Medium) compared to NVD's 9.8 Critical, reflecting some disagreement on the practical exploitability and impact scope.

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