CVE-2026-72843
CriticalCVSS 9.8Summary
In EverShop, the customer update route is declared as public, causing the admin authentication middleware to call next() without checking the caller, and no customer-session middleware guards the route. An unauthenticated request with a known customer uuid can overwrite the customer's email and password, taking over the account. Version 2.2.1 changes the route to private.
Risk Assessment
An unauthenticated attacker can take over customer accounts, potentially leading to theft of personal data and unauthorized actions in the system.
Recommendation
Update EverShop to version 2.2.1 or later, which changes the route to private, and review logs for unauthorized account changes.
Original NVD description (English source)
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".

