CVE-2024-49760

7.1 HIGH

📋 TL;DR

OpenRefine versions before 3.8.3 contain a path traversal vulnerability in the load-language command that allows attackers to read arbitrary JSON files on the file system. This affects all users running vulnerable versions of OpenRefine, particularly those with internet-facing instances or untrusted user access.

💻 Affected Systems

Products:
  • OpenRefine
Versions: All versions prior to 3.8.3
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: All default installations of affected versions are vulnerable. The vulnerability requires access to the load-language command endpoint.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Sensitive configuration files, credentials, or other JSON-formatted data could be exfiltrated from the server, potentially leading to full system compromise.

🟠

Likely Case

Attackers can read application configuration files, localization files, or other JSON data stored in accessible directories.

🟢

If Mitigated

With proper network segmentation and access controls, impact is limited to reading non-sensitive JSON files within the application directory.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

The vulnerability is straightforward to exploit by manipulating the lang parameter with directory traversal sequences like ../../etc/passwd

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.8.3

Vendor Advisory: https://github.com/OpenRefine/OpenRefine/security/advisories/GHSA-qfwq-6jh6-8xx4

Restart Required: Yes

Instructions:

1. Download OpenRefine 3.8.3 or later from the official repository. 2. Stop the OpenRefine service. 3. Replace the existing installation with the new version. 4. Restart the OpenRefine service.

🔧 Temporary Workarounds

Network Access Restriction

all

Restrict network access to OpenRefine instances to trusted users only

Disable Load-Language Endpoint

all

If language loading functionality is not needed, disable or block access to the vulnerable endpoint

🧯 If You Can't Patch

  • Implement strict network access controls to limit who can reach OpenRefine instances
  • Run OpenRefine with minimal file system permissions and in a chroot/jail environment

🔍 How to Verify

Check if Vulnerable:

Check OpenRefine version. If version is less than 3.8.3, the system is vulnerable.

Check Version:

Check the OpenRefine web interface or startup logs for version information

Verify Fix Applied:

Verify that OpenRefine version is 3.8.3 or higher and test that path traversal attempts on the load-language endpoint are properly blocked.

📡 Detection & Monitoring

Log Indicators:

  • Unusual requests to load-language endpoint with suspicious parameters containing ../ sequences
  • Failed attempts to access files outside expected directories

Network Indicators:

  • HTTP requests to /command/core/load-language with lang parameter containing path traversal sequences

SIEM Query:

web.url:*load-language* AND (web.param.lang:*../* OR web.param.lang:*..\*)

🔗 References

📤 Share & Export