Auth bypass in Evershopcommerce Evershop
CVE-2026-72843
The customer update route in EverShop is declared with "access": "public" in packages/evershop/src/modules/customer/api/updateCustomer/route.json, which causes the admin authentication middleware to call next() without checking the caller, and no customer-session middleware guards the route; the only middleware in the chain parses the JSON body. The handler in updateCustomer.js then loads the customer by the uuid taken from the URL path and writes the supplied fields back to that record, hashing a password if one is provided, without verifying that the caller owns the record. An unauthenticated request carrying a known customer uuid can therefore overwrite that customer's email address and password and read back the updated record from the 200 response, taking over the account and locking out its owner. Customer uuids are exposed through order confirmation email links and administrative URLs. Version 2.2.1 changes the route to "access": "private".
Vulnerability class: Broken Access Control
CVSS v3 metric
CVSS v3 base score 9.8 (Critical). Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H.
Affected products
Weakness classification (CWE)
References
- disclosure@vulncheck.com (product)
- route declared public at v2.1.2 (technical-description)
- handler updating by path uuid with no ownership check at v2.1.2 (technical-description)
- GitHub Issue #952 (issue-tracking)
- EverShop v2.2.1 Release Notes (release-notes)
- VulnCheck Advisory: EverShop Missing Authorization on PATCH /api/customers/:id Allows Unauthenticated Account Takeover (third-party-advisory)
Frequently asked questions
- What is CVE-2026-72843?
- CVE-2026-72843 is a critical-severity vulnerability in Evershopcommerce Evershop, classified under Missing Authorization. CVSS score: 9.8/10. Published 2026-08-20.
- How severe is CVE-2026-72843?
- Critical severity. CVSS v3 base score is 9.8 out of 10.