CVE-2025-22984
Executive Summary
CVE-2025-22984 is an access control vulnerability in iceCMS v2.2.0, specifically in the /api/squareComment/DelectSquareById endpoint. This flaw allows unauthenticated attackers to access sensitive information by exploiting missing authorization checks. The vulnerability has a CVSS score of 0.0 (likely unassigned or placeholder), but based on the description, it could lead to unauthorized data disclosure. No official patch is available, and no exploit code or nuclei template has been published. The EPSS score is 0.0%, indicating low exploitation activity in the wild.
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 related to NPM, PyPI, Go, or Ruby packages. It is a standalone PHP application (iceCMS). No supply chain implications are identified.
CVSS Breakdown & Threat Level
- CVSS Score: 0.0 (unassigned)
- Attack Vector: Network (AV:N)
- Attack Complexity: Low (AC:L)
- Privileges Required: None (PR:N)
- User Interaction: None (UI:N)
- Scope: Unchanged (S:U)
- Confidentiality Impact: High (C:H)
- Integrity Impact: None (I:N)
- Availability Impact: None (A:N)
- Threat Level: Medium (due to potential data exposure)
Deep Dive & Mechanics
The vulnerability resides in the DelectSquareById function within the squareComment controller. The endpoint /api/squareComment/DelectSquareById is designed to delete a square comment by its ID, but it lacks proper authentication and authorization checks. An unauthenticated attacker can send a GET or POST request to this endpoint with a valid comment ID to retrieve sensitive information, such as user details, comment content, or internal system data. The root cause is the absence of a middleware or filter that verifies the user's identity and permissions before processing the request.
Vulnerable vs. Patched Code
Vulnerable Code (iceCMS v2.2.0):
// /api/squareComment/DelectSquareById
public function DelectSquareById($id) {
$comment = $this->model('SquareComment')->find($id);
if ($comment) {
// No authentication check
return json_encode($comment);
}
return json_encode(['error' => 'Not found']);
}
Patched Code (Hypothetical):
// /api/squareComment/DelectSquareById
public function DelectSquareById($id) {
// Authentication check
if (!$this->user->isLoggedIn()) {
return json_encode(['error' => 'Unauthorized']);
}
$comment = $this->model('SquareComment')->find($id);
if ($comment) {
// Authorization check
if ($comment->user_id != $this->user->id) {
return json_encode(['error' => 'Forbidden']);
}
return json_encode($comment);
}
return json_encode(['error' => 'Not found']);
}
Exploitation & Lab Setup
Red Team
- Reconnaissance: Identify iceCMS v2.2.0 instances using Shodan dorks:
iceCMSoriceCMS 2.2.0. - Exploitation: Send a GET request to the vulnerable endpoint with a valid comment ID:
curl -X GET "http://target.com/api/squareComment/DelectSquareById?id=1" - Data Extraction: The response will contain sensitive information if the comment exists. Iterate through IDs to extract all comments.
Blue Team
- Detection: Monitor for requests to
/api/squareComment/DelectSquareByIdwith unusual parameters or from unauthenticated sources. - Mitigation: Implement authentication and authorization checks on the endpoint. Use a Web Application Firewall (WAF) to block requests without valid session tokens.
- Honeypot: Deploy a fake endpoint that logs attacker IPs and behaviors.
Indicators of Compromise (IOCs)
- Network: HTTP requests to
/api/squareComment/DelectSquareByIdwithidparameter. - Logs: Unauthorized access attempts to the endpoint from external IPs.
- File: No specific file IOCs.
Detection Engineering
YARA Rule
rule iceCMS_AccessControl_Bypass {
meta:
description = "Detects requests to iceCMS vulnerable endpoint"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-22984"
strings:
$endpoint = "/api/squareComment/DelectSquareById"
$param = "id="
condition:
$endpoint and $param
}
Sigma Rule
title: IceCMS Unauthenticated Access to DelectSquareById
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects unauthenticated access to the vulnerable endpoint
author: Valters IT
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'GET'
cs-uri-stem: '/api/squareComment/DelectSquareById'
cs-uri-query|contains: 'id='
condition: selection
falsepositives:
- Legitimate authenticated requests
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-22984 IceCMS Unauthenticated Access"; flow:to_server; content:"/api/squareComment/DelectSquareById"; http_uri; content:"id="; http_uri; classtype:attempted-recon; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate: Disable or restrict access to the
/api/squareComment/DelectSquareByIdendpoint via web server configuration (e.g.,.htaccessor Nginx location block). - Short-term: Implement authentication and authorization checks in the application code as shown in the patched code example.
- Long-term: Conduct a full security audit of iceCMS v2.2.0 to identify similar access control issues. Upgrade to a patched version if available.
- Monitoring: Deploy the provided detection rules to identify exploitation attempts.
Valters IT
Securing Digital Frontiers
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.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.