CVE-2024-47879
NoneCVSS
—
EPSS
0.4%
Published
Oct 24, 2024
CISA due date
—
Cloudanix analysis
A popular data-cleaning program can be tricked into running harmful instructions if someone who uses the program simply visits a malicious website.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Moderate
- Impact
- Remote Code Execution
- Component
- Application
- Class
- CSRF
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Missing CSRF protection on the preview-expression endpoint allows an attacker-supplied expression containing arbitrary Clojure or Python code to be executed against a known project that has at least one row.
Why it matters to the business
Attackers can run unauthorized code inside an organization's data-cleaning environment, risking data exposure, tampering, or further compromise of connected systems.
How an attack unfolds
An attacker first identifies a valid project identifier from a target OpenRefine instance, then hosts a malicious webpage containing a crafted form or script that posts an attacker-controlled expression to the preview-expression command; when an authenticated user visits the page the browser submits the request and the expression executes on the server.
How to fix it
Upgrade OpenRefine to version 3.8.3 or later; the fix is included in commit d70d9114a8c021a233f0c13c73a0a7784276f2a4. Apply the corresponding SUSE package updates for aspell where listed in affected products.
How to confirm the fix worked
Confirm the running version is 3.8.3 or newer, verify that preview-expression requests now require a valid CSRF token, and test that cross-origin POSTs without a token are rejected.
Typical attack path
- Reconnaissance to obtain a valid project ID from a reachable OpenRefine instance
- Creation of a malicious website that forges a POST to /command/core/preview-expression
- Social engineering to lure an authenticated user to the malicious site
- Browser submits the forged request carrying the victim's session
- Server evaluates the attacker-supplied Clojure or Python expression
How to detect it
Inspect web-server and application logs for POST requests to the preview-expression command originating from external referrers or lacking expected CSRF tokens; correlate with user activity around the time of suspected visits to untrusted sites.
What your security team should do
- Immediately upgrade all OpenRefine deployments to 3.8.3
- Review network logs for unexpected POSTs to preview-expression endpoints
- Educate users about the risk of visiting untrusted sites while logged into internal tools
The record
OpenRefine is a free, open source tool for working with messy data. Prior to version 3.8.3, lack of cross-site request forgery protection on the `preview-expression` command means that visiting a malicious website could cause an attacker-controlled expression to be executed. The expression can contain arbitrary Clojure or Python code. The attacker must know a valid project ID of a project that contains at least one row, and the attacker must convince the victim to open a malicious webpage. Version 3.8.3 fixes the issue.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Maven | org.openrefine:main | 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-49760 OpenRefine is a free, open source tool for working with messy data. Also affects openrefine
- CVE-2024-47882 OpenRefine is a free, open source tool for working with messy data. Also affects openrefine
- CVE-2024-47878 OpenRefine is a free, open source tool for working with messy data. Also affects openrefine
- CVE-2024-47880 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