CVE-2025-41111

7.5 HIGH

📋 TL;DR

An authorization bypass vulnerability in CanalDenuncia.app allows attackers to access other users' confidential information by manipulating the 'id_denuncia' parameter in API requests. This affects all users of the vulnerable application who have submitted reports through the platform. The vulnerability exposes sensitive user data without requiring proper authentication.

💻 Affected Systems

Products:
  • CanalDenuncia.app
Versions: All versions prior to patch
Operating Systems: Any OS running the web application
Default Config Vulnerable: ⚠️ Yes
Notes: Affects the web application backend API endpoint specifically. Mobile apps or other frontends using this API are also vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Mass data breach exposing all user-submitted reports, comments, and potentially personally identifiable information across the entire platform.

🟠

Likely Case

Targeted data extraction where attackers access specific users' report details and comments, potentially leading to privacy violations and information disclosure.

🟢

If Mitigated

Unauthorized access attempts are logged and blocked, with no data exposure beyond what users are authorized to view.

🌐 Internet-Facing: HIGH - The vulnerable endpoint is accessible via POST requests, making it exploitable from anywhere on the internet.
🏢 Internal Only: MEDIUM - Even if behind internal networks, authenticated users could exploit this to access unauthorized data.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires sending crafted POST requests but does not require authentication. The vulnerability is straightforward to exploit with basic web testing tools.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown specific version - check vendor advisory

Vendor Advisory: https://www.incibe.es/en/incibe-cert/notices/aviso/multiple-vulnerabilities-canaldenunciaapp

Restart Required: Yes

Instructions:

1. Contact CanalDenuncia.app vendor for patched version. 2. Apply the security update to the web application. 3. Restart the application server. 4. Verify the fix by testing the vulnerable endpoint.

🔧 Temporary Workarounds

Web Application Firewall Rule

all

Block or monitor requests to the vulnerable endpoint with parameter manipulation patterns

WAF specific - configure rule to block POST requests to '/backend/api/buscarComentariosByDenuncia.php' with suspicious id_denuncia parameters

Temporary Endpoint Disable

linux

Disable the vulnerable API endpoint until patched

# Apache: RewriteRule ^/backend/api/buscarComentariosByDenuncia\.php$ - [F]
# Nginx: location ~* /backend/api/buscarComentariosByDenuncia\.php { return 403; }

🧯 If You Can't Patch

  • Implement strict authorization checks in application code to validate user permissions before processing id_denuncia parameter
  • Deploy network segmentation to restrict access to the vulnerable endpoint and implement comprehensive logging/monitoring

🔍 How to Verify

Check if Vulnerable:

Send POST request to /backend/api/buscarComentariosByDenuncia.php with id_denuncia parameter set to another user's report ID. If you receive data you shouldn't have access to, the system is vulnerable.

Check Version:

Check application version through admin interface or contact vendor for version information

Verify Fix Applied:

Repeat the vulnerable test after patching. The system should return authorization error or empty response when attempting to access unauthorized data.

📡 Detection & Monitoring

Log Indicators:

  • Multiple failed authorization attempts on buscarComentariosByDenuncia.php
  • Unusual access patterns to report IDs outside user's normal range
  • POST requests with manipulated id_denuncia parameters

Network Indicators:

  • Unusual traffic spikes to the vulnerable endpoint
  • Repeated POST requests with sequential or random id_denuncia values

SIEM Query:

source="web_server" AND url="/backend/api/buscarComentariosByDenuncia.php" AND (parameter="id_denuncia" AND value NOT IN authorized_user_reports)

🔗 References

📤 Share & Export