CVE-2024-47881

8.1 HIGH

📋 TL;DR

This vulnerability in OpenRefine's database extension allows attackers to load arbitrary SQLite extension DLLs, potentially leading to remote code execution on the server. Attackers need network access to the OpenRefine instance. Affects OpenRefine versions 3.4-beta through 3.8.2.

💻 Affected Systems

Products:
  • OpenRefine
Versions: 3.4-beta through 3.8.2
Operating Systems: All platforms running OpenRefine
Default Config Vulnerable: ⚠️ Yes
Notes: Requires the database extension to be enabled and accessible via network.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full server compromise with attacker gaining complete control over the OpenRefine instance and potentially the underlying host system.

🟠

Likely Case

Remote code execution allowing data theft, system manipulation, or lateral movement within the network.

🟢

If Mitigated

Limited impact if proper network segmentation and access controls prevent unauthorized connections.

🌐 Internet-Facing: HIGH - Internet-facing instances are directly exposed to potential exploitation.
🏢 Internal Only: MEDIUM - Internal instances still vulnerable to insider threats or compromised internal systems.

🎯 Exploit Status

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

Exploitation requires network access but no authentication. The vulnerability is in SQLite integration configuration.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.8.3

Vendor Advisory: https://github.com/OpenRefine/OpenRefine/security/advisories/GHSA-87cf-j763-vvh8

Restart Required: Yes

Instructions:

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

🔧 Temporary Workarounds

Disable database extension

all

Remove or disable the database extension if not required for functionality.

Remove the database extension from OpenRefine's extensions directory

Network access restrictions

linux

Restrict network access to OpenRefine instances using firewall rules.

iptables -A INPUT -p tcp --dport 3333 -s trusted_network -j ACCEPT
iptables -A INPUT -p tcp --dport 3333 -j DROP

🧯 If You Can't Patch

  • Implement strict network access controls to limit connections to trusted sources only.
  • Monitor for unusual SQLite extension loading attempts and network connections to OpenRefine instances.

🔍 How to Verify

Check if Vulnerable:

Check OpenRefine version: if between 3.4-beta and 3.8.2 inclusive, the system is vulnerable.

Check Version:

Check the OpenRefine web interface or startup logs for version information.

Verify Fix Applied:

Confirm OpenRefine version is 3.8.3 or later and verify the 'enable_load_extension' property is properly restricted.

📡 Detection & Monitoring

Log Indicators:

  • SQLite extension loading attempts
  • Unusual database operations
  • Error messages related to extension loading

Network Indicators:

  • Unexpected connections to OpenRefine default port (3333)
  • SQLite extension file transfers

SIEM Query:

source="openrefine.log" AND ("load_extension" OR "SQLite extension")

🔗 References

📤 Share & Export