CVE-2025-14052
Executive Summary
CVE-2025-14052 is an Improper Access Control vulnerability in the youlaitech youlai-mall application, versions 1.0.0 and 2.0.0. The flaw resides in the /mall-ums/app-api/v1/members/ endpoint, specifically within the getMemberById function. By manipulating the memberId parameter, an unauthenticated remote attacker can access member data without proper authorization. The vendor has been contacted but has not responded, and a public exploit has been disclosed, increasing the risk of active exploitation. The EPSS score is currently 0.0%, indicating low exploitation probability at this time, but the public disclosure raises the threat level.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Supply Chain & Package Security
This vulnerability affects a Java/Spring-based application (youlai-mall). No direct NPM, PyPI, Go, or Ruby packages are involved. However, the application may be distributed as a Docker image or deployed via Maven. Users should verify the integrity of their deployment artifacts and check for any unofficial patches or forks.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
- Base Score: 6.3 (Medium)
- Attack Vector: Network (AV:N) – Exploitable remotely.
- Attack Complexity: Low (AC:L) – No special conditions required.
- Privileges Required: None (PR:N) – No authentication needed.
- User Interaction: None (UI:N) – No user action required.
- Scope: Unchanged (S:U) – Impact confined to the vulnerable component.
- Confidentiality Impact: Low (C:L) – Limited member data exposure.
- Integrity Impact: Low (I:L) – Potential data modification.
- Availability Impact: Low (A:L) – Potential service degradation.
Threat Level: Medium. The public exploit and lack of vendor response make this a credible threat, though the EPSS score suggests low immediate exploitation.
Deep Dive & Mechanics
The vulnerability is a classic case of Improper Access Control (CWE-284) . The endpoint /mall-ums/app-api/v1/members/ exposes a getMemberById function that accepts a memberId parameter. The application fails to verify whether the requesting user has the right to access the requested member's data. This allows an attacker to enumerate member IDs and retrieve sensitive information such as names, contact details, or account metadata.
Root Cause: The backend controller likely lacks an authorization check (e.g., Spring Security @PreAuthorize or manual session validation) before returning member data. The function may assume that the caller is already authenticated and authorized, but the endpoint is exposed without proper guards.
Attack Flow:
- Attacker identifies the vulnerable endpoint via reconnaissance.
- Attacker sends a GET request to
/mall-ums/app-api/v1/members/{memberId}with a numeric ID. - The server returns the member's data without checking if the attacker is authorized.
- Attacker iterates through member IDs to harvest data.
Vulnerable vs. Patched Code
Since no official patch exists, the following is a hypothetical fix based on best practices.
Vulnerable Code (Java/Spring Boot):
@RestController
@RequestMapping("/mall-ums/app-api/v1/members")
public class MemberController {
@GetMapping("/{memberId}")
public Member getMemberById(@PathVariable Long memberId) {
// No authorization check
return memberService.findById(memberId);
}
}
Patched Code (Hypothetical):
@RestController
@RequestMapping("/mall-ums/app-api/v1/members")
public class MemberController {
@GetMapping("/{memberId}")
@PreAuthorize("hasRole('ADMIN') or #memberId == authentication.principal.id")
public Member getMemberById(@PathVariable Long memberId) {
return memberService.findById(memberId);
}
}
The patched version uses Spring Security's @PreAuthorize to ensure only admins or the member themselves can access the data.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- Target running youlai-mall 1.0.0 or 2.0.0.
- Network access to the
/mall-ums/app-api/v1/members/endpoint.
Exploit Steps:
- Identify the target base URL (e.g.,
http://target.com). - Send a GET request to enumerate member IDs:
curl -X GET "http://target.com/mall-ums/app-api/v1/members/1" - Iterate through IDs to extract data:
for i in {1..100}; do curl -s "http://target.com/mall-ums/app-api/v1/members/$i" done
Expected Output: JSON response containing member details (e.g., {"id":1,"name":"John Doe","email":"john@example.com"}).
Blue Team (Detection & Response)
Detection:
- Monitor for repeated GET requests to
/mall-ums/app-api/v1/members/with sequential or random numeric IDs. - Alert on anomalous access patterns from a single IP.
Response:
- Immediately block the attacking IP at the WAF or firewall.
- Review application logs for unauthorized access to member data.
- If possible, temporarily disable the endpoint or add authentication.
- Contact the vendor for an official patch or apply a virtual patch via WAF.
Indicators of Compromise (IOCs)
- Network IOCs:
- HTTP GET requests to
/mall-ums/app-api/v1/members/{integer}from unauthenticated sources. - Sequential or brute-force patterns in the
memberIdparameter.
- HTTP GET requests to
- File IOCs:
- Application logs showing repeated access to the vulnerable endpoint without a valid session token.
- Behavioral IOCs:
- Unusual data exfiltration from the
/mall-ums/app-api/v1/members/path.
- Unusual data exfiltration from the
Detection Engineering
YARA Rule
rule CVE_2025_14052_Access_Control {
meta:
description = "Detects exploitation attempts for CVE-2025-14052 in youlai-mall"
author = "Valters IT"
date = "2025-04-10"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2025-14052"
strings:
$s1 = "/mall-ums/app-api/v1/members/" ascii wide nocase
$s2 = "memberId" ascii wide nocase
condition:
any of ($s*) and #s1 > 5
}
Sigma Rule
title: CVE-2025-14052 - Improper Access Control in youlai-mall
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects repeated access to the vulnerable member endpoint without authentication
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
service: access
detection:
selection:
cs-method: 'GET'
cs-uri-stem|startswith: '/mall-ums/app-api/v1/members/'
cs-uri-query|contains: 'memberId'
condition: selection | count() > 10 by src_ip
falsepositives:
- Legitimate admin enumeration
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-14052 - youlai-mall Improper Access Control"; flow:to_server; content:"GET"; http_method; content:"/mall-ums/app-api/v1/members/"; http_uri; pcre:"/\/mall-ums\/app-api\/v1\/members\/\d+/"; classtype:attempted-recon; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the endpoint if not required: Block
/mall-ums/app-api/v1/members/at the WAF or reverse proxy. - Add authentication: Implement Spring Security or similar to require a valid session token for all API calls.
- Rate limiting: Apply rate limiting to prevent brute-force enumeration.
Long-term Fix:
- Apply the hypothetical patch shown in the "Vulnerable vs. Patched Code" section.
- Conduct a full security audit of all API endpoints for similar access control issues.
- Monitor the vendor's repository for an official patch.
Workaround:
- If patching is not possible, restrict access to the endpoint via IP whitelisting or VPN.
Valters IT