Duty Analyst: Joseph McCarthy

CVE-2026-40098

Published: 2026-04-20 17:16:35 | Last modified: 2026-04-23 17:46:42

MEDIUM CVSS 5.3
No EPSS data

Description

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 shared wishlist add-to-cart endpoint authorizes access with a public `sharing_code`, but loads the acted-on wishlist item by a separate global `wishlist_item_id` and never verifies that the item belongs to the shared wishlist referenced by that code. This lets an attacker use a valid shared wishlist code for wishlist A and a wishlist item ID belonging to victim wishlist B to import victim item B into the attacker's cart through the shared wishlist flow for wishlist A. Because the victim item's stored `buyRequest` is reused during cart import, the victim's private custom-option data is copied into the attacker's quote. If the product uses a file custom option, this can be elevated to cross-user file disclosure because the imported file metadata is preserved and the download endpoint is not ownership-bound. Version 20.17.0 patches the issue.

CVSS details

Severity
medium
Score
5.3
Vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

EPSS

This CVE is not currently listed in the EPSS dataset.

Show JSON
{
    "cve": {
        "id": "CVE-2026-40098",
        "cveTags": [],
        "metrics": {
            "cvssMetricV31": [
                {
                    "type": "Primary",
                    "source": "nvd@nist.gov",
                    "cvssData": {
                        "scope": "UNCHANGED",
                        "version": "3.1",
                        "baseScore": 5.4,
                        "attackVector": "NETWORK",
                        "baseSeverity": "MEDIUM",
                        "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N",
                        "integrityImpact": "LOW",
                        "userInteraction": "NONE",
                        "attackComplexity": "LOW",
                        "availabilityImpact": "NONE",
                        "privilegesRequired": "LOW",
                        "confidentialityImpact": "LOW"
                    },
                    "impactScore": 2.5,
                    "exploitabilityScore": 2.8
                }
            ],
            "cvssMetricV40": [
                {
                    "type": "Secondary",
                    "source": "security-advisories@github.com",
                    "cvssData": {
                        "Safety": "NOT_DEFINED",
                        "version": "4.0",
                        "Recovery": "NOT_DEFINED",
                        "baseScore": 5.3,
                        "Automatable": "NOT_DEFINED",
                        "attackVector": "NETWORK",
                        "baseSeverity": "MEDIUM",
                        "valueDensity": "NOT_DEFINED",
                        "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
                        "exploitMaturity": "NOT_DEFINED",
                        "providerUrgency": "NOT_DEFINED",
                        "userInteraction": "NONE",
                        "attackComplexity": "LOW",
                        "attackRequirements": "NONE",
                        "privilegesRequired": "LOW",
                        "subIntegrityImpact": "NONE",
                        "vulnIntegrityImpact": "LOW",
                        "integrityRequirement": "NOT_DEFINED",
                        "modifiedAttackVector": "NOT_DEFINED",
                        "subAvailabilityImpact": "NONE",
                        "vulnAvailabilityImpact": "NONE",
                        "availabilityRequirement": "NOT_DEFINED",
                        "modifiedUserInteraction": "NOT_DEFINED",
                        "modifiedAttackComplexity": "NOT_DEFINED",
                        "subConfidentialityImpact": "NONE",
                        "vulnConfidentialityImpact": "LOW",
                        "confidentialityRequirement": "NOT_DEFINED",
                        "modifiedAttackRequirements": "NOT_DEFINED",
                        "modifiedPrivilegesRequired": "NOT_DEFINED",
                        "modifiedSubIntegrityImpact": "NOT_DEFINED",
                        "modifiedVulnIntegrityImpact": "NOT_DEFINED",
                        "vulnerabilityResponseEffort": "NOT_DEFINED",
                        "modifiedSubAvailabilityImpact": "NOT_DEFINED",
                        "modifiedVulnAvailabilityImpact": "NOT_DEFINED",
                        "modifiedSubConfidentialityImpact": "NOT_DEFINED",
                        "modifiedVulnConfidentialityImpact": "NOT_DEFINED"
                    }
                }
            ]
        },
        "published": "2026-04-20T17:16:34.543",
        "references": [
            {
                "url": "https://github.com/OpenMage/magento-lts/security/advisories/GHSA-665x-ppc4-685w",
                "tags": [
                    "Vendor Advisory",
                    "Exploit",
                    "Mitigation"
                ],
                "source": "security-advisories@github.com"
            }
        ],
        "vulnStatus": "Analyzed",
        "weaknesses": [
            {
                "type": "Primary",
                "source": "security-advisories@github.com",
                "description": [
                    {
                        "lang": "en",
                        "value": "CWE-862"
                    }
                ]
            }
        ],
        "descriptions": [
            {
                "lang": "en",
                "value": "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 shared wishlist add-to-cart endpoint authorizes access with a public `sharing_code`, but loads the acted-on wishlist item by a separate global `wishlist_item_id` and never verifies that the item belongs to the shared wishlist referenced by that code. This lets an attacker use a valid shared wishlist code for wishlist A and a wishlist item ID belonging to victim wishlist B to import victim item B into the attacker's cart through the shared wishlist flow for wishlist A. Because the victim item's stored `buyRequest` is reused during cart import, the victim's private custom-option data is copied into the attacker's quote. If the product uses a file custom option, this can be elevated to cross-user file disclosure because the imported file metadata is preserved and the download endpoint is not ownership-bound. Version 20.17.0 patches the issue."
            }
        ],
        "lastModified": "2026-04-23T17:46:42.490",
        "configurations": [
            {
                "nodes": [
                    {
                        "negate": false,
                        "cpeMatch": [
                            {
                                "criteria": "cpe:2.3:a:openmage:magento:*:*:*:*:lts:*:*:*",
                                "vulnerable": true,
                                "matchCriteriaId": "D3D78A44-3FCF-4E81-9A3C-A66A99CC489D",
                                "versionEndExcluding": "20.17.0"
                            }
                        ],
                        "operator": "OR"
                    }
                ]
            }
        ],
        "sourceIdentifier": "security-advisories@github.com"
    }
}