Summary
CVE-2026-102361 is a critical missing-authentication vulnerability in mall4j, an open-source e-commerce platform maintained by gz-yami. The PUT /user/updatePwd endpoint allows an unauthenticated attacker to reset the password of any storefront account by supplying that account’s identifier in the request body, resulting in full account takeover. The issue affects mall4j through version 4.0 and carries a CVSS score of 9.3 (Critical).
Technical details
- Root cause: The
updatePwdmethod inUserRegisterController(part of theyami-shop-apimodule) processes password-change requests without verifying that the caller is authenticated as, or otherwise authorized to act on behalf of, the target account. - Trigger conditions: The handler looks up the target user record by identifier, decrypts the attacker-supplied new password, encodes it, and writes it to the database — with no session/token check tying the request to the account owner.
- Attack vector: Network-based (AV:N), no privileges or user interaction required. An attacker sends a crafted
PUT /user/updatePwdrequest containing a target user’s identifier and an arbitrary new password. - Impact: Complete account takeover of any storefront user, exposing customer orders and personal data, and enabling further fraud or lateral abuse of the compromised account.
Affected software
- mall4j (gz-yami/mall4j), all versions through 4.0
Severity
- CVSS v3.1 Base Score: 9.1 (Critical) —
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N - CVSS v4.0 Score (as rated): 9.3 (Critical) —
AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N - CWE-306: Missing Authentication for Critical Function
Mitigation and recommended actions
- Immediate: Upgrade mall4j to a version where the
/user/updatePwdendpoint enforces authentication and verifies that the requester owns the target account. Check the gz-yami/mall4j repository for a patched release addressing this endpoint, as no fixed version number has been published at the time of writing. - If no patch is available: Restrict or disable public access to the
/user/updatePwdendpoint at the network/WAF layer until a fix is applied, and add server-side logic requiring a valid authenticated session (or a signed password-reset token tied to the account) before any password change is processed. - Monitor authentication logs for unexpected password-change activity on the storefront and force a password reset/re-authentication for accounts that may have been affected.

