CVE-2025-60915

8.1 HIGH

📋 TL;DR

This vulnerability allows attackers to perform path traversal attacks via the size query parameter in Openatlas's /views/file.py endpoint. Attackers can potentially read arbitrary files on the server, including sensitive configuration files. All Openatlas installations before version 8.12.0 are affected.

💻 Affected Systems

Products:
  • Austrian Archaeological Institute Openatlas
Versions: All versions before 8.12.0
Operating Systems: Any OS running Openatlas
Default Config Vulnerable: ⚠️ Yes
Notes: Affects all default installations of Openatlas before v8.12.0. The vulnerability is in the core application code.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete server compromise through reading sensitive configuration files (database credentials, API keys, secrets) leading to data exfiltration, privilege escalation, or further attacks.

🟠

Likely Case

Exfiltration of configuration files containing database credentials or other sensitive information, potentially leading to data breaches.

🟢

If Mitigated

Limited file access restricted by proper input validation and file system permissions, preventing access to critical system files.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

The vulnerability requires only a crafted HTTP request to the vulnerable endpoint. Public proof-of-concept details are available in security advisories.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 8.12.0

Vendor Advisory: https://www.sec4you-pentest.com/schwachstelle/openatlas-schwachstelle-lfi-konfigurationsdatei-exfiltration/

Restart Required: Yes

Instructions:

1. Backup your Openatlas installation and database. 2. Download Openatlas version 8.12.0 or later from the official repository. 3. Replace the existing installation with the patched version. 4. Restart the web server/service. 5. Verify the fix by testing the vulnerable endpoint.

🔧 Temporary Workarounds

Input Validation Filter

all

Add server-side validation to reject path traversal sequences in the size parameter

Modify /views/file.py to sanitize the size parameter using path normalization and validation

Web Application Firewall Rule

all

Block requests containing path traversal patterns in query parameters

Add WAF rule to detect and block patterns like ../, ..\, %2e%2e%2f in query strings

🧯 If You Can't Patch

  • Implement strict web application firewall rules to block path traversal patterns in all requests
  • Restrict file system permissions for the Openatlas application user to limit accessible directories

🔍 How to Verify

Check if Vulnerable:

Test by sending a request to /views/file.py with a size parameter containing path traversal sequences (e.g., size=../../../etc/passwd) and checking if sensitive files are returned.

Check Version:

Check the Openatlas version in the application interface or configuration files, or run: python -c "import openatlas; print(openatlas.__version__)" if available

Verify Fix Applied:

After patching, repeat the vulnerable request and verify that path traversal attempts are blocked or return error responses instead of file contents.

📡 Detection & Monitoring

Log Indicators:

  • HTTP requests to /views/file.py with suspicious size parameters containing ../, ..\, or encoded equivalents
  • Unusual file access patterns from the web application user

Network Indicators:

  • HTTP requests with path traversal patterns in query parameters
  • Unusual outbound data transfers following file read attempts

SIEM Query:

source="web_server" AND uri_path="/views/file.py" AND (query_string="*../*" OR query_string="*..\\*" OR query_string="*%2e%2e%2f*")

🔗 References

📤 Share & Export