CVE-2025-27980

6.5 MEDIUM

📋 TL;DR

Cashbook v4.0.3 contains an arbitrary file read vulnerability in the /api/entry/flow/invoice/show endpoint. Attackers can exploit this to read sensitive files from the server filesystem. All users running the vulnerable version are affected.

💻 Affected Systems

Products:
  • cashbook
Versions: v4.0.3
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects the specific API endpoint with the invoice parameter.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete server compromise through reading sensitive configuration files, SSH keys, database credentials, or other critical system files leading to lateral movement.

🟠

Likely Case

Exfiltration of sensitive business data, configuration files, or user information stored on the server filesystem.

🟢

If Mitigated

Limited impact if proper file permissions, web server restrictions, and network segmentation are implemented.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Simple path traversal attack via the invoice parameter. No authentication required.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown

Vendor Advisory: Unknown

Restart Required: No

Instructions:

No official patch available. Consider upgrading to a newer version if available or implementing workarounds.

🔧 Temporary Workarounds

Web Server Input Validation

all

Implement input validation at the web server level to block path traversal attempts.

# For Apache: Add to .htaccess
RewriteCond %{QUERY_STRING} invoice=.*\.\./ [NC]
RewriteRule ^ - [F]

Application Firewall Rule

all

Block requests containing path traversal sequences in the invoice parameter.

# Example WAF rule to block ../ patterns in query string

🧯 If You Can't Patch

  • Restrict access to the vulnerable endpoint using network ACLs or authentication
  • Implement strict file system permissions to limit what the web server can read

🔍 How to Verify

Check if Vulnerable:

Test by accessing /api/entry/flow/invoice/show?invoice=../../../../etc/passwd and checking for file contents in response.

Check Version:

Check application version in admin panel or configuration files

Verify Fix Applied:

Attempt the same test and verify that file contents are not returned (should show error or empty response).

📡 Detection & Monitoring

Log Indicators:

  • HTTP requests to /api/entry/flow/invoice/show with ../ patterns in query string
  • Unusual file access patterns from web server process

Network Indicators:

  • HTTP GET requests with path traversal sequences in query parameters

SIEM Query:

source="web_logs" AND uri_path="/api/entry/flow/invoice/show" AND query_string="*../*"

🔗 References

📤 Share & Export