CVE-2025-52022

5.3 MEDIUM

📋 TL;DR

This vulnerability allows unauthenticated remote attackers to trigger detailed error messages that disclose internal file paths, code snippets, and stack traces by sending specially crafted HTTP requests to public API endpoints. This information exposure could aid attackers in further exploitation. The vulnerability affects the PHP backend of gemsloyalty.aptsys.com.sg through version 2025-05-28.

💻 Affected Systems

Products:
  • gemsloyalty.aptsys.com.sg PHP backend
Versions: through 2025-05-28
Operating Systems: Any OS running PHP
Default Config Vulnerable: ⚠️ Yes
Notes: Affects public API endpoints accessible via HTTP GET/POST requests.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers use disclosed information to map the application structure, identify other vulnerabilities, and potentially gain unauthorized access to sensitive data or systems.

🟠

Likely Case

Attackers gather reconnaissance information about the application's internal structure, which could facilitate targeted attacks or social engineering.

🟢

If Mitigated

Information exposure is limited, but attackers still gain some insight into application architecture.

🌐 Internet-Facing: HIGH
🏢 Internal Only: LOW

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires sending specially crafted HTTP requests to trigger error conditions.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: http://aptsys.com

Restart Required: No

Instructions:

1. Contact vendor for updated version after 2025-05-28. 2. Apply vendor-provided patches. 3. Test in staging environment before production deployment.

🔧 Temporary Workarounds

Disable Detailed Error Reporting

all

Configure PHP to suppress detailed error messages in production environments.

php.ini: display_errors = Off
php.ini: log_errors = On
php.ini: error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT

Implement Custom Error Handler

all

Create a custom error handler that returns generic error messages without sensitive details.

set_error_handler(function($errno, $errstr, $errfile, $errline) { error_log("Error: $errstr in $errfile on line $errline"); http_response_code(500); echo 'An error occurred'; });

🧯 If You Can't Patch

  • Implement web application firewall (WAF) rules to block requests triggering error messages
  • Restrict access to affected endpoints using network controls or authentication

🔍 How to Verify

Check if Vulnerable:

Send malformed HTTP requests to public API endpoints and check if detailed error messages with internal paths are returned.

Check Version:

Check application version or contact vendor for version information.

Verify Fix Applied:

Test with same malformed requests and verify only generic error messages are returned.

📡 Detection & Monitoring

Log Indicators:

  • Unusual HTTP requests to API endpoints
  • Increased error log entries with stack traces
  • Requests with malformed parameters

Network Indicators:

  • HTTP requests with unusual parameters to API endpoints
  • Responses containing PHP error messages

SIEM Query:

source="web_server_logs" AND (message="*PHP*" OR message="*stack trace*" OR message="*internal path*")

🔗 References

📤 Share & Export