CVE-2024-49760
NoneCVSS
—
EPSS
0.6%
Published
Oct 24, 2024
CISA due date
—
Cloudanix analysis
A flaw in OpenRefine lets attackers read files they shouldn't by tricking the tool into loading the wrong data files.
- Exploitation
- Remote Authenticated
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Data Exposure
- Component
- Application
- Class
- Path Traversal
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The load-language command constructs a file path from the lang parameter without validating it stays within the expected translations directory, enabling arbitrary JSON file reads via path traversal.
Why it matters to the business
Attackers may read sensitive configuration or data files stored as JSON on the server, leading to information disclosure that could aid further attacks; low EPSS and no known exploitation reduce immediate urgency but affected OpenRefine instances remain exposed until patched.
How an attack unfolds
An attacker sends a malicious lang parameter containing path traversal sequences to the load-language endpoint, causing the application to load and return contents of arbitrary JSON files from the filesystem.
How to fix it
Upgrade to version 3.8.3 or apply the fix in commit d70d9114a8c021a233f0c13c73a0a7784276f2a4; the listed systemd package on SUSE is unrelated to this OpenRefine issue.
How to confirm the fix worked
Verify the application version is 3.8.3 or later; attempt to access a file outside the translations directory using the load-language command and confirm it is rejected.
Typical attack path
- Identify the vulnerable OpenRefine instance and locate the load-language endpoint
- Craft a request with a lang parameter using ../ sequences or absolute paths to target desired JSON files
- Submit the request and inspect the response for unauthorized file contents
How to detect it
Inspect web server logs for requests to the load-language endpoint with suspicious lang parameters containing path traversal sequences like .. or absolute paths.
What your security team should do
- Upgrade all OpenRefine instances to the fixed version immediately
- Review and restrict network access to the load-language endpoint
- Audit logs for suspicious requests to the affected command
The record
OpenRefine is a free, open source tool for working with messy data. The load-language command expects a `lang` parameter from which it constructs the path of the localization file to load, of the form `translations-$LANG.json`. But when doing so in versions prior to 3.8.3, it does not check that the resulting path is in the expected directory, which means that this command could be exploited to read other JSON files on the file system. Version 3.8.3 addresses this issue.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Maven | org.openrefine:openrefine | 0 | 3.8.3 |
| Debian:12 | openrefine | 0 | No fix |
| Debian:13 | openrefine | 0 | No fix |
| Ubuntu:22.04:LTS | openrefine | 0 | No fix |
| Ubuntu:24.04:LTS | openrefine | 0 | No fix |
| Ubuntu:24.10 | openrefine | 0 | No fix |
| Ubuntu:Pro:22.04:LTS | openrefine | 0 | 3.5.2-1ubuntu0.1~esm1 |
| Ubuntu:Pro:24.04:LTS | openrefine | 0 | 3.7.7-1ubuntu0.1~esm1 |
Related vulnerabilities
- CVE-2024-47882 OpenRefine is a free, open source tool for working with messy data. Also affects org.openrefine:openrefine
- CVE-2024-47880 OpenRefine is a free, open source tool for working with messy data. Also affects org.openrefine:openrefine
- CVE-2024-47878 OpenRefine is a free, open source tool for working with messy data. Also affects openrefine
- CVE-2024-47879 OpenRefine is a free, open source tool for working with messy data. Also affects openrefine
- CVE-2024-47881 OpenRefine is a free, open source tool for working with messy data. Also affects openrefine