# CVE-2024-27317: Apache Pulsar: Pulsar Functions Worker's Archive Extraction Vulnerability Allows Unauthorized File Modification

> Authenticated attackers can exploit directory traversal in Pulsar Functions Worker to create or modify files outside the intended extraction directory.

- **Severity:** High 8.4 (`CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:L`)
- **Exploited in the wild:** Not known
- **Login needed:** Any signed-in user
- **Attackable:** Over the internet
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 12 Mar 2024
- **Updated:** 13 Feb 2025
- **Also known as:** GHSA-jg2g-4rjg-cmqh

## What is CVE-2024-27317?

CVE-2024-27317 is a high-severity path traversal vulnerability in Apache Pulsar, published on 12 Mar 2024. Any signed-in user can exploit it over the network, with no action from the victim.

### Official description

In Pulsar Functions Worker, authenticated users can upload functions in jar or nar files. These files, essentially zip files, are extracted by the Functions Worker. However, if a malicious file is uploaded, it could exploit a directory traversal vulnerability. This occurs when the filenames in the zip files, which aren't properly validated, contain special elements like "..", altering the directory path. This could allow an attacker to create or modify files outside of the designated extraction directory, potentially influencing system behavior. This vulnerability also applies to the Pulsar Broker when it is configured with "functionsWorkerEnabled=true".

This issue affects Apache Pulsar versions from 2.4.0 to 2.10.5, from 2.11.0 to 2.11.3, from 3.0.0 to 3.0.2, from 3.1.0 to 3.1.2, and 3.2.0. 

2.10 Pulsar Function Worker users should upgrade to at least 2.10.6.
2.11 Pulsar Function Worker users should upgrade to at least 2.11.4.
3.0 Pulsar Function Worker users should upgrade to at least 3.0.3.
3.1 Pulsar Function Worker users should upgrade to at least 3.1.3.
3.2 Pulsar Function Worker users should upgrade to at least 3.2.1.

Users operating versions prior to those listed above should upgrade to the aforementioned patched versions or newer versions.

Weakness: CWE-22 (Improper Limitation of a Pathname to a Restricted Directory)

## Which versions are affected by CVE-2024-27317?

10 open source packages ship an affected version, including org.apache.pulsar:pulsar-functions-worker. It affects 1 product.


| Package | Ecosystem | Affected | Fixed in |
| --- | --- | --- | --- |
| `org.apache.pulsar:pulsar-functions-worker` | Maven | From 2.11.0 | 2.11.4 |
| `org.apache.pulsar:pulsar-functions-worker` | Maven | From 2.11.0 | 2.11.4 |
| `org.apache.pulsar:pulsar-functions-worker` | Maven | From 2.4.0 | 2.10.6 |
| `org.apache.pulsar:pulsar-functions-worker` | Maven | From 2.4.0 | 2.10.6 |
| `org.apache.pulsar:pulsar-functions-worker` | Maven | From 3.0.0 | 3.0.3 |
| `org.apache.pulsar:pulsar-functions-worker` | Maven | From 3.0.0 | 3.0.3 |
| `org.apache.pulsar:pulsar-functions-worker` | Maven | From 3.1.0 | 3.1.3 |
| `org.apache.pulsar:pulsar-functions-worker` | Maven | From 3.1.0 | 3.1.3 |
| `org.apache.pulsar:pulsar-functions-worker` | Maven | From 3.2.0 | 3.2.1 |
| `org.apache.pulsar:pulsar-functions-worker` | Maven | From 3.2.0 | 3.2.1 |

Products: Apache Pulsar.

## How do I fix CVE-2024-27317?

Upgrade org.apache.pulsar:pulsar-functions-worker to a fixed version for your release line: 2.11.4, 2.10.6, 3.0.3 or 3.1.3.

## Is CVE-2024-27317 being exploited?

There is no known exploitation of CVE-2024-27317 in the wild and no public exploit code.

## Other vulnerabilities in Apache Pulsar

- [CVE-2021-22160](https://insights.sbomify.com/CVE-2021-22160/): Authentication with JWT allows use of “none”-algorithm (critical 9.8)
- [CVE-2023-30429](https://insights.sbomify.com/CVE-2023-30429/): Apache Pulsar: Incorrect Authorization for Function Worker when using mTLS Authentication through Pulsar Proxy (critical 9.6)
- [CVE-2024-27135](https://insights.sbomify.com/CVE-2024-27135/): Apache Pulsar: Improper Input Validation in Pulsar Function Worker allows Remote Code Execution (high 8.5)
- [CVE-2024-27894](https://insights.sbomify.com/CVE-2024-27894/): Apache Pulsar: Pulsar Functions Worker Allows Unauthorized File Access and Unauthorized HTTP/HTTPS Proxying (high 8.5)
- [CVE-2022-34321](https://insights.sbomify.com/CVE-2022-34321/): Apache Pulsar: Improper Authentication for Pulsar Proxy Statistics Endpoint (high 8.2)

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2024-27317 and fix it if it is affected.

What it is: CVE-2024-27317 is a high-severity path traversal vulnerability in Apache Pulsar, published on 12 Mar 2024. Any signed-in user can exploit it over the network, with no action from the victim.
Exploitation: There is no known exploitation of CVE-2024-27317 in the wild and no public exploit code.

Affected packages and fixed versions:
- org.apache.pulsar:pulsar-functions-worker (Maven): affected from 2.11.0; fixed in 2.11.4
- org.apache.pulsar:pulsar-functions-worker (Maven): affected from 2.11.0; fixed in 2.11.4
- org.apache.pulsar:pulsar-functions-worker (Maven): affected from 2.4.0; fixed in 2.10.6
- org.apache.pulsar:pulsar-functions-worker (Maven): affected from 2.4.0; fixed in 2.10.6
- org.apache.pulsar:pulsar-functions-worker (Maven): affected from 3.0.0; fixed in 3.0.3
- org.apache.pulsar:pulsar-functions-worker (Maven): affected from 3.0.0; fixed in 3.0.3
- org.apache.pulsar:pulsar-functions-worker (Maven): affected from 3.1.0; fixed in 3.1.3
- org.apache.pulsar:pulsar-functions-worker (Maven): affected from 3.1.0; fixed in 3.1.3
- org.apache.pulsar:pulsar-functions-worker (Maven): affected from 3.2.0; fixed in 3.2.1
- org.apache.pulsar:pulsar-functions-worker (Maven): affected from 3.2.0; fixed in 3.2.1

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2024-27317/ (Markdown: https://insights.sbomify.com/CVE-2024-27317/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2024-27317
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2024-27317
- OSV: https://osv.dev/vulnerability/CVE-2024-27317

---
From sbomify Insights: https://insights.sbomify.com/CVE-2024-27317/
Summaries are generated and may contain mistakes; the official description above is the record.
