CyberSecBulletin
CVE-2024-27317NVD status: Analyzed

Apache Pulsar: Improper Limitation of a Pathname to a Restricted Directory

CVE-2024-27317 is a critical-severity improper limitation of a pathname to a restricted directory vulnerability in Apache Pulsar from Apache, with a CVSS 3.1 base score of 9.9 out of 10. It can be exploited remotely over the network by an attacker with a low-privileged account, without any action from a user. The record lists versions 2.10.6, 2.11.4, 3.0.3 as the first without the flaw, so updating Apache Pulsar to one of those releases or later removes the exposure. There is no confirmed exploitation so far. EPSS estimates a 56.9% chance of exploitation within 30 days, which is in the top 0.92% of all scored CVEs.

Patch now

Exploitation in the next 30 days is more likely than not, according to EPSS.

What to do

  1. Update Apache Pulsar to 2.10.6 or 2.11.4 or 3.0.3 or 3.1.3, whichever matches your release line, or a later version.
  2. Update pulsar to 2.10.6 or 2.11.4 or 3.0.3 or 3.1.3, whichever matches your release line, or a later version.
  3. Read the advisory on lists.apache.org for workarounds and exact fixed builds.

Affected products and versions

VendorProductAffected versionsFixed in
ApacheApache Pulsar2.4.0 up to, but not including, 2.10.6; 2.11.0 up to, but not including, 2.11.4; 3.0.0 up to, but not including, 3.0.3; 3.1.0 up to, but not including, 3.1.3; 3.2.0 up to, but not including, 3.2.12.10.6, 2.11.4, 3.0.3, 3.1.3, 3.2.1
Apachepulsar2.4.0 up to, but not including, 2.10.6; 2.11.0 up to, but not including, 2.11.4; 3.0.0 up to, but not including, 3.0.3; 3.1.0 up to, but not including, 3.1.3; 3.2.0 up to, but not including, 3.2.12.10.6, 2.11.4, 3.0.3, 3.1.3, 3.2.1

Version data comes from the organisation that assigned the CVE. Confirm against the vendor advisory before deciding you are unaffected.

How the severity score breaks down

Attack vector
NetworkCan be exploited remotely over a network, including the internet.
Attack complexity
LowNo special conditions are needed; the attack works reliably.
Privileges required
LowA basic user account is enough.
User interaction
NoneNo action by a victim is required.
Scope
ChangedThe attack can reach beyond the vulnerable component into other systems.
Confidentiality
HighAll data handled by the component can be read.
Integrity
HighData or code can be modified at will.
Availability
HighThe component can be taken down completely.

Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H. Scored by NVD.

Scoring systemScoreSeverityScored by
CVSS 3.18.4HighCNA (apache.org)
CVSS 3.19.9CriticalNVD

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.

Source: the CVE record as published by its numbering authority, via NVD and CVE.org.

The underlying weakness: Improper Limitation of a Pathname to a Restricted Directory

The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.

How developers prevent this class of flaw

  • For any security checks that are performed on the client side, ensure that these checks are duplicated on the server side, in order to avoid CWE-602. Attackers can bypass the client-side checks by modifying values after the checks have been performed, or by changing the client to remove the client-side checks entirely. Then, these modified values would be submitted to the server.
  • Use a vetted library or framework that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid.
  • Use an application firewall that can detect attacks against this weakness. It can be beneficial in cases in which the code cannot be fixed (because it is controlled by a third party), as an emergency prevention measure while more comprehensive software assurance measures are applied, or to provide defense in depth.

More Improper Limitation of a Pathname to a Restricted Directory vulnerabilities (CWE-22)

Timeline

  1. CVE record published.
  2. CISA published its SSVC assessment (exploitation: none, automatable: no, technical impact: total).
  3. Record last changed materially (score, affected products, status or references).

References

Third-party and government advisories

Other vulnerabilities in Apache Pulsar

All Apache Pulsar vulnerabilities

Recent Improper Limitation of a Pathname to a Restricted Directory vulnerabilities

Spotted an error? Tell us.