CVE-2025-28399
Executive Summary
CVE-2025-28399 is a privilege escalation vulnerability discovered in Erick xmall, an e-commerce platform, version 1.1 and earlier. The flaw resides in the updateAddress method of the Address Controller class, allowing a remote, unauthenticated attacker to escalate their privileges without proper authorization checks. This vulnerability can lead to unauthorized access to sensitive user data, modification of addresses, and potential account takeover. No official patch has been released, and no public proof-of-concept (PoC) code is currently available. The vulnerability is classified under MITRE ATT&CK tactic T1068 (Exploitation for Privilege Escalation).
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 is not associated with a package manager (NPM, PyPI, Go, Ruby). It is a custom application vulnerability in the Erick xmall platform.
CVSS Breakdown & Threat Level
The CVSS score is listed as 0.0, indicating that a full vector has not been assigned by NVD. However, based on the description and impact, a reasonable assessment would be:
- Attack Vector (AV): Network (N) – The attack is exploitable remotely.
- Attack Complexity (AC): Low (L) – No special conditions are required.
- Privileges Required (PR): None (N) – No authentication is needed.
- User Interaction (UI): None (N) – No user action is required.
- Scope (S): Unchanged (U) – The vulnerable component and the impacted component are the same.
- Confidentiality (C): High (H) – Privilege escalation can lead to access to sensitive data.
- Integrity (I): High (H) – An attacker can modify address data.
- Availability (A): Low (L) – The vulnerability primarily affects data integrity and confidentiality, not availability.
Estimated CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L
Estimated Base Score: 8.6 (High)
Threat Level: High. The lack of authentication requirements and the potential for privilege escalation make this a critical risk for any deployment of Erick xmall v1.1 or earlier.
Deep Dive & Mechanics
The vulnerability is located in the Address Controller class, specifically within the updateAddress method. This method is responsible for updating a user's address information. The flaw is a classic case of improper access control (CWE-269). The method likely fails to verify that the authenticated user (or the session making the request) has the necessary permissions to modify the target address. An attacker can craft a direct request to the updateAddress endpoint, bypassing any frontend authorization checks, and modify the address of any user, including administrators.
Attack Flow:
- Reconnaissance: The attacker identifies the endpoint for updating addresses, likely something like
/api/address/updateor/address/updateAddress. - Request Crafting: The attacker sends a POST or PUT request to this endpoint with parameters such as
userId,addressId, and new address details. - Exploitation: The server processes the request without verifying that the requesting user has the right to modify the specified address. The attacker can set
userIdto an administrator's ID. - Privilege Escalation: By modifying an administrator's address, the attacker may be able to trigger a password reset or other account recovery mechanisms that rely on the address, leading to full account takeover.
Vulnerable vs. Patched Code
Since no patch is available, we can only hypothesize the vulnerable code pattern and the required fix.
Vulnerable Code (Hypothetical):
// AddressController.java
@PostMapping("/updateAddress")
public ResponseEntity<?> updateAddress(@RequestBody Address address) {
// Missing authorization check
addressService.update(address);
return ResponseEntity.ok("Address updated");
}
Patched Code (Hypothetical):
// AddressController.java
@PostMapping("/updateAddress")
public ResponseEntity<?> updateAddress(@RequestBody Address address, Principal principal) {
// Retrieve the current authenticated user
User currentUser = userService.findByUsername(principal.getName());
// Verify that the address belongs to the current user
if (!address.getUserId().equals(currentUser.getId())) {
return ResponseEntity.status(HttpStatus.FORBIDDEN).body("Access denied");
}
addressService.update(address);
return ResponseEntity.ok("Address updated");
}
Exploitation & Lab Setup
Red Team (Attacker)
Lab Setup:
- Deploy a vulnerable instance of Erick xmall v1.1 (e.g., using Docker or a local server).
- Create a test user account and an admin account.
- Use a tool like Burp Suite or Postman to interact with the API.
Exploitation Steps:
- Identify Endpoint: Intercept traffic or review the application's JavaScript to find the
updateAddressendpoint. Example:POST /api/address/update - Craft Request: Send a request with the following JSON body:
Replace{ "userId": 1, "addressId": 5, "street": "123 Attacker St", "city": "Hackville", "state": "CA", "zip": "90210" }userIdwith the ID of an administrator account. - Execute: Send the request without any authentication token or session. If the server responds with
200 OK, the vulnerability is confirmed. - Escalate: Use the modified address to trigger a password reset for the admin account, gaining full control.
Blue Team (Defender)
Detection:
- Monitor for unusual API calls to address update endpoints from unauthenticated sources.
- Look for requests where the
userIdparameter does not match the session user. - Implement logging for all address modification requests.
Mitigation:
- Apply input validation and authorization checks on the server side.
- Use a Web Application Firewall (WAF) to block requests with mismatched user IDs.
- Conduct a code review to ensure all controller methods enforce proper access control.
Indicators of Compromise (IOCs)
- Network IOCs:
- Unusual POST requests to
/api/address/updateor similar endpoints. - Requests containing a
userIdparameter that differs from the authenticated user's ID. - Repeated attempts to modify addresses for high-privilege accounts (e.g., admin).
- Unusual POST requests to
- Log IOCs:
- Log entries showing address updates without a corresponding user session.
- Multiple failed password reset attempts following address changes.
- File IOCs:
- Modified database entries in the
addresstable whereuser_idis an admin.
- Modified database entries in the
Detection Engineering
YARA Rule
rule Detect_CVE_2025_28399_Exploit {
meta:
description = "Detects exploit attempts for CVE-2025-28399 in Erick xmall"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-28399"
strings:
$s1 = "updateAddress" ascii wide nocase
$s2 = "userId" ascii wide nocase
$s3 = "addressId" ascii wide nocase
condition:
all of them
}
Sigma Rule
title: Detect CVE-2025-28399 Exploitation Attempt
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects HTTP requests targeting the updateAddress endpoint without proper authentication.
author: Valters IT
date: 2025/04/10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-stem: '/api/address/update'
cs-uri-query: '*userId=*'
condition: selection
falsepositives:
- Legitimate admin actions
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-28399 - Erick xmall Privilege Escalation Attempt"; flow:to_server; content:"POST"; http_method; content:"/api/address/update"; http_uri; content:"userId"; http_client_body; classtype:attempted-admin; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Isolate Vulnerable Systems: If possible, take the affected Erick xmall instances offline or restrict network access.
- Apply Virtual Patching: Use a WAF to block requests to the
updateAddressendpoint that do not include a valid session token or that have mismatched user IDs. - Monitor Logs: Review server logs for any signs of exploitation.
Long-Term Fix:
- Code Review: The vendor (Erick) must perform a thorough code review of all controller methods to ensure proper authorization checks are in place.
- Implement Access Control: Add server-side checks to verify that the authenticated user owns the resource being modified.
- Update Framework: Ensure the application uses a secure framework that enforces access control by default (e.g., Spring Security with method-level security).
- User Education: Advise users to enable multi-factor authentication (MFA) to mitigate account takeover risks.
Workaround:
- Disable the
updateAddressendpoint entirely if it is not critical for business operations. - Implement a custom filter to validate that the
userIdin the request matches the authenticated user's ID.
Report generated by Valters IT DevSecOps & CTI Division
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.