Skip to content
Heist/ feed
Back to feed
High

OpenMage LTS has Customer File Upload Extension Blocklist Bypass that Leads to Remote Code Execution

Type: advisorySources: OSV

Magento Long Term Support (LTS) is an unofficial, community-driven project provides an alternative to the Magento Community Edition e-commerce platform with a high level of backward compatibility. Prior to version 20.17.0, the product custom option file upload in OpenMage LTS uses an incomplete blocklist (`forbidden_extensions = php,exe`) to prevent dangerous file uploads. This blocklist can be trivially bypassed by using alternative PHP-executable extensions such as `.phtml`, `.phar`, `.php3`, `.php4`, `.php5`, `.php7`, and `.pht`. Files are stored in the publicly accessible `media/custom_options/quote/` directory, which lacks server-side execution restrictions for some configurations, enabling Remote Code Execution if this directory is not explicitly denied script execution. Version 20.17.0 patches the issue.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-40488
Confirmed fixed CVEs
Not specified
Updated in this feed
5 Nov 2026, 16:54 UTC · Revision 1

Source evidence

OpenMage LTS has Customer File Upload Extension Blocklist Bypass that Leads to Remote Code Execution

core-osv · Original source

Published 20 Apr 2026, 16:23 UTC

Magento Long Term Support (LTS) is an unofficial, community-driven project provides an alternative to the Magento Community Edition e-commerce platform with a high level of backward compatibility. Prior to version 20.17.0, the product custom option file upload in OpenMage LTS uses an incomplete blocklist (`forbidden_extensions = php,exe`) to prevent dangerous file uploads. This blocklist can be trivially bypassed by using alternative PHP-executable extensions such as `.phtml`, `.phar`, `.php3`, `.php4`, `.php5`, `.php7`, and `.pht`. Files are stored in the publicly accessible `media/custom_options/quote/` directory, which lacks server-side execution restrictions for some configurations, enabling Remote Code Execution if this directory is not explicitly denied script execution. Version 20.17.0 patches the issue.

osv:CVE-2026-40488
Complete source record
{
  "id": "059ef9756438fd698f44de4fc43a904e4f544b25802514c6fdda1bef1ab63630",
  "url": "https://osv.dev/vulnerability/CVE-2026-40488",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "OpenMage LTS has Customer File Upload Extension Blocklist Bypass that Leads to Remote Code Execution",
    "summary": "Magento Long Term Support (LTS) is an unofficial, community-driven project provides an alternative to the Magento Community Edition e-commerce platform with a high level of backward compatibility. Prior to version 20.17.0, the product custom option file upload in OpenMage LTS uses an incomplete blocklist (`forbidden_extensions = php,exe`) to prevent dangerous file uploads. This blocklist can be trivially bypassed by using alternative PHP-executable extensions such as `.phtml`, `.phar`, `.php3`, `.php4`, `.php5`, `.php7`, and `.pht`. Files are stored in the publicly accessible `media/custom_options/quote/` directory, which lacks server-side execution restrictions for some configurations, enabling Remote Code Execution if this directory is not explicitly denied script execution. Version 20.17.0 patches the issue.",
    "evidence": "osv:CVE-2026-40488",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-40488",
      "aliases": [
        "CVE-2026-40488",
        "GHSA-3j5q-7q7h-2hhv"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/openmage/magento-lts",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "f4dd542b878613b9f40f39e9d7e862dec085defd"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "20.17.0"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "cpe": "cpe:2.3:a:openmage:magento:*:*:*:*:lts:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "20.17.0"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v20.16.0",
            "v20.15.0",
            "v20.14.0",
            "v20.13.0",
            "v20.12.2",
            "v20.12.1",
            "v20.12.0",
            "v20.11.0",
            "v20.10.1",
            "v21.0.0-beta2",
            "v20.10.0",
            "v20.9.0",
            "v20.8.0",
            "v20.7.0",
            "v20.6.0",
            "v20.5.0",
            "v20.4.0",
            "v20.3.0",
            "v20.2.0",
            "v20.1.1",
            "v20.1.0",
            "v20.1.0-rc7",
            "v20.1.0-rc6",
            "v20.1.0-rc5",
            "v20.1.0-rc4",
            "v20.1.0-rc3",
            "v20.1.0-rc2",
            "v20.1.0-rc1",
            "v20.0.18",
            "v20.0.17",
            "v20.0.16",
            "v20.0.15",
            "v20.0.13",
            "v20.0.12",
            "v20.0.11",
            "v20.0.10",
            "v20.0.8",
            "v20.0.7",
            "v20.0.6",
            "v20.0.5",
            "v20.0.4",
            "v20.0.3",
            "v20.0.2",
            "v20.0.1",
            "v20.0.0",
            "v19.4.4",
            "v19.4.3",
            "v19.4.2",
            "v19.4.1",
            "v19.4.0",
            "1.9.0.1",
            "1.9.1.1",
            "1.9.1.0-lts",
            "1.9.0.0",
            "1.8.1.0",
            "1.7.0.2",
            "1.7.0.1",
            "1.7.0.0",
            "1.6.1.0",
            "1.6.0.0",
            "1.6.0.0-rc2",
            "1.6.0.0-rc1",
            "1.6.0.0-beta1",
            "1.6.0.0-alpha1",
            "1.5.1.0",
            "1.5.0.1",
            "1.5.0.0",
            "1.5.0.0-rc2",
            "1.5.0.0-rc1",
            "1.5.0.0-beta2",
            "1.5.0.0-beta1",
            "1.5.0.0-alpha2",
            "1.5.0.0-alpha1",
            "1.4.2.0",
            "1.4.1.1",
            "1.4.1.0",
            "1.4.0.1",
            "1.3.2.4",
            "1.4.0.0",
            "1.4.0.0-rc1",
            "1.4.0.0-beta1",
            "1.4.0.0-alpha3",
            "1.4.0.0-alpha2",
            "1.4.0.0-alpha1",
            "1.3.2.3",
            "1.3.2.2",
            "1.3.2.1",
            "1.3.2",
            "1.3.1.1",
            "1.3.1",
            "1.3.0",
            "1.2.1.2",
            "1.2.1",
            "1.2.0.3",
            "1.2.0.2",
            "1.2.0.1",
            "1.2.0",
            "1.1.8",
            "1.1.7",
            "1.1.6",
            "1.1.5",
            "1.1.4",
            "1.1.3",
            "1.1.2",
            "1.1.1"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-40488.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:44.491414539Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/40xxx/CVE-2026-40488.json",
        "https://github.com/OpenMage/magento-lts/security/advisories/GHSA-3j5q-7q7h-2hhv",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-40488"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-434"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/40xxx/CVE-2026-40488.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-40488",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 512476,
  "published_at": "2026-04-20T16:23:07.429+00:00"
}