macrozheng mall version 1.0.3 and prior contains an authentication vulnerability in the mall-portal password reset workflow that allows an unauthenticated attacker to reset arbitrary user account passwords using only a victim’s telephone number. The password reset flow exposes the one-time password (OTP) directly in the API response and validates password reset requests solely by comparing the provided OTP to a value stored by telephone number, without verifying user identity or ownership of the telephone number. This enables remote account takeover of any user with a known or guessable telephone number.
macrozheng mall <= 1.0.3 Unauthenticated Password Reset via OTP Disclosure
Problem type
Affected products
macrozheng
<= 1.0.3 - AFFECTED
References
https://github.com/macrozheng/mall/issues/946
https://www.macrozheng.com/
https://www.vulncheck.com/advisories/macrozheng-mall-unauthenticated-password-reset-via-otp-disclosure
GitHub Security Advisories
GHSA-3h52-r54r-fvgf
macrozheng mall version 1.0.3 and prior contains an authentication vulnerability in the mall...
https://github.com/advisories/GHSA-3h52-r54r-fvgfmacrozheng mall version 1.0.3 and prior contains an authentication vulnerability in the mall-portal password reset workflow that allows an unauthenticated attacker to reset arbitrary user account passwords using only a victim’s telephone number. The password reset flow exposes the one-time password (OTP) directly in the API response and validates password reset requests solely by comparing the provided OTP to a value stored by telephone number, without verifying user identity or ownership of the telephone number. This enables remote account takeover of any user with a known or guessable telephone number.
https://nvd.nist.gov/vuln/detail/CVE-2026-25858
https://github.com/macrozheng/mall/issues/946
https://www.macrozheng.com
https://www.vulncheck.com/advisories/macrozheng-mall-unauthenticated-password-reset-via-otp-disclosure
https://github.com/advisories/GHSA-3h52-r54r-fvgf
JSON source
https://cveawg.mitre.org/api/cve/CVE-2026-25858Click to expand
{
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"cveMetadata": {
"cveId": "CVE-2026-25858",
"assignerOrgId": "83251b91-4cc7-4094-a5c7-464a1b83ea10",
"assignerShortName": "VulnCheck",
"dateUpdated": "2026-02-07T21:45:41.186Z",
"dateReserved": "2026-02-06T19:12:03.463Z",
"datePublished": "2026-02-07T21:45:41.186Z",
"state": "PUBLISHED"
},
"containers": {
"cna": {
"providerMetadata": {
"orgId": "83251b91-4cc7-4094-a5c7-464a1b83ea10",
"shortName": "VulnCheck",
"dateUpdated": "2026-02-07T21:45:41.186Z"
},
"title": "macrozheng mall <= 1.0.3 Unauthenticated Password Reset via OTP Disclosure",
"descriptions": [
{
"lang": "en",
"value": "macrozheng mall version 1.0.3 and prior contains an authentication vulnerability in the mall-portal password reset workflow that allows an unauthenticated attacker to reset arbitrary user account passwords using only a victim’s telephone number. The password reset flow exposes the one-time password (OTP) directly in the API response and validates password reset requests solely by comparing the provided OTP to a value stored by telephone number, without verifying user identity or ownership of the telephone number. This enables remote account takeover of any user with a known or guessable telephone number.",
"supportingMedia": [
{
"type": "text/html",
"base64": false,
"value": "macrozheng mall version 1.0.3 and prior contains an authentication vulnerability in the mall-portal password reset workflow that allows an unauthenticated attacker to reset arbitrary user account passwords using only a victim’s telephone number. The password reset flow exposes the one-time password (OTP) directly in the API response and validates password reset requests solely by comparing the provided OTP to a value stored by telephone number, without verifying user identity or ownership of the telephone number. This enables remote account takeover of any user with a known or guessable telephone number."
}
]
}
],
"affected": [
{
"vendor": "macrozheng",
"product": "mall",
"repo": "https://github.com/macrozheng/mall",
"defaultStatus": "unknown",
"versions": [
{
"version": "0",
"status": "affected",
"versionType": "semver",
"lessThanOrEqual": "1.0.3"
}
]
}
],
"problemTypes": [
{
"descriptions": [
{
"lang": "en",
"description": "CWE-640 Weak Password Recovery Mechanism for Forgotten Password",
"cweId": "CWE-640",
"type": "CWE"
}
]
}
],
"references": [
{
"url": "https://github.com/macrozheng/mall/issues/946",
"tags": [
"issue-tracking"
]
},
{
"url": "https://www.macrozheng.com/",
"tags": [
"product"
]
},
{
"url": "https://www.vulncheck.com/advisories/macrozheng-mall-unauthenticated-password-reset-via-otp-disclosure",
"tags": [
"third-party-advisory"
]
}
],
"metrics": [
{
"format": "CVSS",
"scenarios": [
{
"lang": "en",
"value": "GENERAL"
}
]
}
],
"credits": [
{
"lang": "en",
"value": "Lennon Chia",
"type": "finder"
}
]
}
}
}