Skip to content
Heist/ feed
Back to feed
Critical

Vendure asset server plugin has local file read vulnerability with AssetServerPlugin & LocalAssetStorageStrategy

Type: advisorySources: OSV

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. 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 `/../`.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2024-48914
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 18:18 UTC · Revision 1

Source evidence

Vendure asset server plugin has local file read vulnerability with AssetServerPlugin & LocalAssetStorageStrategy

core-osv · Original source

Published 15 Oct 2024, 16:08 UTC

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. 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 `/../`.

osv:CVE-2024-48914
Complete source record
{
  "id": "f4d302f515ed3c37c8a107887d4421ed9ef1e8ba28d8e18071ae2bb843c79f47",
  "url": "https://osv.dev/vulnerability/CVE-2024-48914",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Vendure asset server plugin has local file read vulnerability with AssetServerPlugin & LocalAssetStorageStrategy",
    "summary": "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. 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 `/../`.",
    "evidence": "osv:CVE-2024-48914",
    "products": [],
    "severity": "critical",
    "structured": {
      "id": "CVE-2024-48914",
      "aliases": [
        "CVE-2024-48914",
        "GHSA-r9mq-3c9r-fmjq"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/vendurehq/vendure",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "483dca6a13f4708ae9fc60f5ca8239aafcab0edb"
                },
                {
                  "introduced": "a23b3ae5d4675eb459bb646ba7dd4ab0b085eb08"
                },
                {
                  "fixed": "ec9b08af26dceac87e1e160ce414fdcf8c2a95c9"
                },
                {
                  "fixed": "e2ee0c43159b3d13b51b78654481094fdd4850c5"
                },
                {
                  "fixed": "e4b58af6822d38a9c92a1d8573e19288b8edaa1c"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "2.3.3"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "introduced": "3.0.0"
                      },
                      {
                        "fixed": "3.0.5"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "fixed": "e2ee0c43159b3d13b51b78654481094fdd4850c5"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "e4b58af6822d38a9c92a1d8573e19288b8edaa1c"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v2.3.2",
            "v3.0.4",
            "v3.0.3",
            "v2.3.1",
            "v3.0.2",
            "v2.3.0",
            "v3.0.1",
            "v3.0.0",
            "v2.2.7",
            "v2.2.6",
            "v2.2.5",
            "v2.2.4",
            "v2.2.3",
            "v2.2.2",
            "v2.2.1",
            "v2.2.0",
            "v2.2.0-next.8",
            "v2.2.0-next.7",
            "v2.2.0-next.6",
            "v2.2.0-next.5",
            "v2.2.0-next.4",
            "v2.2.0-next.3",
            "v2.2.0-next.2",
            "v2.2.0-next.1",
            "v2.2.0-next.0",
            "v2.1.0",
            "v2.1.0-next.7",
            "v2.1.0-next.6",
            "v2.1.0-next.5",
            "v2.0.5",
            "v2.0.4",
            "v2.0.3",
            "v2.0.2",
            "v2.0.1",
            "v2.0.0",
            "v2.0.0-beta.3",
            "v2.0.0-beta.2",
            "v2.0.0-beta.1",
            "v2.0.0-beta.0",
            "v2.0.0-next.28",
            "v2.0.0-next.27",
            "v2.0.0-next.26",
            "v2.0.0-next.25",
            "v2.0.0-next.24",
            "v2.0.0-next.23",
            "v2.0.0-next.22",
            "v2.0.0-next.21",
            "v2.0.0-next.20",
            "v2.0.0-next.19",
            "v2.0.0-next.18",
            "v2.0.0-next.17",
            "v2.0.0-next.16",
            "v2.0.0-next.15",
            "v2.0.0-next.14",
            "v2.0.0-next.13",
            "v2.0.0-next.12",
            "v2.0.0-next.11",
            "v2.0.0-next.10",
            "v2.0.0-next.9",
            "v2.0.0-next.8",
            "v2.0.0-next.7",
            "v2.0.0-next.6",
            "v2.0.0-next.5",
            "v2.0.0-next.4",
            "v2.0.0-next.3",
            "v2.0.0-next.2",
            "v2.0.0-next.1",
            "v2.0.0-next.0",
            "v1.4.0",
            "v1.4.0-beta.0",
            "v1.3.2",
            "v1.3.1",
            "v1.3.0",
            "v1.2.3",
            "v1.2.2",
            "v1.2.1",
            "v1.2.0",
            "v1.1.0",
            "v1.0.0",
            "v1.0.0-rc.0",
            "v1.0.0-beta.11",
            "v1.0.0-beta.10",
            "v1.0.0-beta.8",
            "v1.0.0-beta.9",
            "v1.0.0-beta.7",
            "v1.0.0-beta.6",
            "v1.0.0-beta.5",
            "v1.0.0-beta.4",
            "v1.0.0-beta.3",
            "v1.0.0-beta.2",
            "v1.0.0-beta.1",
            "v0.16.1",
            "v0.16.0",
            "v0.15.2",
            "v0.15.1",
            "v0.15.0",
            "v0.13.0",
            "v0.12.4",
            "v0.12.3",
            "v0.12.2",
            "v0.12.1",
            "v0.11.1",
            "v0.11.0",
            "v0.10.1",
            "v0.10.0",
            "v0.9.0",
            "v0.8.2",
            "v0.8.1",
            "v0.8.0",
            "v0.7.0",
            "v0.6.5",
            "v0.6.4",
            "v0.6.2",
            "v0.6.1",
            "v0.6.0",
            "v0.5.1",
            "v0.5.0",
            "v0.4.0",
            "v0.3.4",
            "v0.3.3",
            "v0.3.1",
            "v0.3.0",
            "v0.2.1",
            "v0.2.0",
            "v0.1.2-beta.12",
            "v0.1.2-beta.11",
            "v0.1.2-beta.10",
            "v0.1.2-beta.8",
            "v0.1.2-beta.7",
            "v0.1.2-beta.6",
            "v0.1.2-beta.5",
            "v0.1.2-beta.4",
            "v0.1.2-beta.3",
            "v0.1.2-beta.2",
            "v0.1.2-beta.1",
            "v0.1.2-beta.0",
            "0.1.0-alpha.18",
            "0.1.0-alpha.16",
            "0.1.0-alpha.15",
            "0.1.0-alpha.14",
            "0.1.0-alpha.13",
            "0.1.0-alpha.12",
            "0.1.0-alpha.11",
            "0.1.0-alpha.10",
            "0.1.0-alpha.9",
            "0.1.0-alpha.8",
            "0.1.0-alpha.7",
            "0.1.0-alpha.6",
            "0.1.0-alpha.5",
            "0.1.0-alpha.4",
            "0.1.0-alpha.3"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2024-48914.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:38.221060150Z",
      "provider": "osv",
      "references": [
        "https://github.com/vendure-ecommerce/vendure/blob/801980e8f599c28c5059657a9d85dd03e3827992/packages/asset-server-plugin/src/plugin.ts#L352-L358",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/48xxx/CVE-2024-48914.json",
        "https://github.com/vendure-ecommerce/vendure/security/advisories/GHSA-r9mq-3c9r-fmjq",
        "https://nvd.nist.gov/vuln/detail/CVE-2024-48914",
        "https://github.com/vendure-ecommerce/vendure/commit/e2ee0c43159b3d13b51b78654481094fdd4850c5",
        "https://github.com/vendure-ecommerce/vendure/commit/e4b58af6822d38a9c92a1d8573e19288b8edaa1c"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-20",
          "CWE-22"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/48xxx/CVE-2024-48914.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2024-48914",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 505644,
  "published_at": "2024-10-15T16:08:29.033+00:00"
}