Apache Spark proxy-user privilege escalation from malicious configuration class
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Privilege escalation
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · NVD. Fix status from CNA and GitHub. Impact type from CWE-269.
Summary
In Apache Spark versions prior to 3.4.0, applications using spark-submit can specify a 'proxy-user' to run as, limiting privileges. The application can execute code with the privileges of the submitting user, however, by providing malicious configuration-related classes on the classpath. This affects architectures relying on proxy-user, for example those using Apache Livy to manage submitted applications. Update to Apache Spark 3.4.0 or later, and ensure that spark.submit.proxyUser.allowCustomClasspathInClusterMode is set to its default of "false", and is not overridden by submitted applications.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| Apache | Apache Spark | before 3.4.0 | 3.4.0 | Patch available | CNA |
| — | org.apache.spark:spark-core_2.12 (Maven) | before 3.3.3 | 3.3.3 | Patch available | GHSA-329j-jfvr-rhr6 |
| — | org.apache.spark:spark-core_2.13 (Maven) | before 3.3.3 | 3.3.3 | Patch available | GHSA-329j-jfvr-rhr6 |
| — | pyspark (PyPI) | before 3.3.2 | 3.3.2 | Patch available | GHSA-329j-jfvr-rhr6 |
- Apache Spark VendorApache Affected before 3.4.0 Fixed in 3.4.0 Patch available CNA
- org.apache.spark:spark-core_2.12 (Maven) Vendor— Affected before 3.3.3 Fixed in 3.3.3 Patch available GHSA-329j-jfvr-rhr6
- org.apache.spark:spark-core_2.13 (Maven) Vendor— Affected before 3.3.3 Fixed in 3.3.3 Patch available GHSA-329j-jfvr-rhr6
- pyspark (PyPI) Vendor— Affected before 3.3.2 Fixed in 3.3.2 Patch available GHSA-329j-jfvr-rhr6
Remediation
- Fix · CNA Apache Spark (Apache Software Foundation) Fixed in 3.4.0
- Fix · GHSA-329j-jfvr-rhr6 org.apache.spark:spark-core_2.12 (Maven) Fixed in 3.3.3 Advisory →
- Fix · GHSA-329j-jfvr-rhr6 org.apache.spark:spark-core_2.13 (Maven) Fixed in 3.3.3 Advisory →
- Fix · GHSA-329j-jfvr-rhr6 pyspark (PyPI) Fixed in 3.3.2 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2023-22946
- 2026-10-03 Alias added: GHSA-329j-jfvr-rhr6
References
Advisory 2
Other 7
- https://github.com/apache/spark/pull/39474
- https://github.com/apache/spark/pull/41428
- https://github.com/apache/spark/commit/909da96e1471886a01a9e1def93630c4fd40e74a
- https://github.com/degant/spark/commit/bfba57724d2520e0fcaa7990f7257c21d11cd75a
- https://github.com/apache/spark
- https://github.com/pypa/advisory-database/tree/main/vulns/pyspark/PYSEC-2023-44.yaml
- https://issues.apache.org/jira/browse/SPARK-41958
More Apache Spark vulnerabilities
- TI-2022-14901 Apache Spark shell command injection vulnerability via Spark UI KEVCVSS 3.1HIGH 8.8
- TI-2023-15314 Apache Spark: Shell command injection via Spark UI CVSS 3.1HIGH 8.8
- TI-2020-07589 Missing authentication in Apache Spark CVSS 3.1CRITICAL 9.8
- TI-2020-16549 Uncontrolled resource consumption in Eclipse Jetty CVSS 3.1MEDIUM 5.3
- TI-2019-14677 HttpObjectDecoder.java in Netty before 4.1.44 allows a Content-Length header to be… CVSS 3.1CRITICAL 9.1
- TI-2018-08427 Improper authentication in Apache Spark CVSS 3.1MEDIUM 4.2
Sources
- CVE-2023-22946 · CVE Program
- CVE-2023-22946 · NVD
- FIRST EPSS
- GHSA-329j-jfvr-rhr6 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences