Skip to main content

OpenRefine EUVDEUVD-2026-96347

| CVE-2026-108553 HIGH
Cross-Site Request Forgery (CSRF) (CWE-352)
2026-10-10 VulnCheck GHSA-3fgg-hmv4-hp49
7.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Lure OpenRefine user to malicious page
  2. Delivery
    Browser sends cross-origin GET to get-rows
  3. Exploit
    Crafted engine parameter injects Jython facet
  4. Execution
    OpenRefine evaluates Jython expression
  5. Impact
    Execute OS commands as OpenRefine user

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V3 - Web Frontend Security Anti-CSRF tokens, SameSite cookies
MITRE ATT&CK

1 technique across 1 tactic: Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the victim is running an OpenRefine instance (default listener on localhost:3333) with a project loaded and an active session, AND that the victim is lured into visiting an attacker-controlled web page while that instance is running - the browser then issues the cross-origin GET to the get-rows command with an attacker-crafted engine parameter carrying a Jython facet expression. Limiting factors: mandatory user interaction (victim must visit the malicious page, UI:P), the high attack complexity and present attack requirements (AC:H/AT:P) reflecting the need for a precisely crafted engine/facet payload, and dependence on Jython expression evaluation being available in the running build. These conditions make drive-by mass exploitation impractical and favor targeted delivery against known OpenRefine users; because the forged request runs in the victim's own browser context, the attacker needs no credentials of their own (PR:N).

Impact

This is a genuine high-impact issue but with meaningful real-world friction. The CVSS 4.0 vector (AV:N/AC:H/AT:P/PR:N/UI:P, score 7.7) describes a network-reachable but non-trivial attack: PR:N means no attacker-side authentication, yet the high complexity (AC:H), present attack requirements (AT:P), and required victim interaction (UI:P) all indicate exploitation is conditional rather than trivially wormable. The impact triad VC:H/VI:H/VA:H is consistent with the description's claim of OS command execution as the OpenRefine user - a full RCE outcome. Exploitation status: no public exploit identified at time of analysis (not in CISA KEV, no POC flag in the input, no EPSS score provided). This means the primary risk signal is the credible technical chain documented by VulnCheck and the OpenRefine GitHub issue, not confirmed active exploitation. Net assessment: a real, patch-worthy flaw (CSRF chained to RCE is serious), but the combination of required user interaction, the need for the victim to have OpenRefine actively running with a project loaded, and the absence of KEV/EPSS/POC evidence places it below drop-everything urgency. Prioritize for OpenRefine operators and multi-user/shared deployments; treat as moderate for isolated single-user desktop installs. No conflicting signals in the data, but note EPSS is absent, so probabilistic exploitation likelihood could not be weighed.

Exploit ScenarioDerived

An attacker crafts a web page that silently issues a cross-origin GET to a victim's locally running OpenRefine instance's get-rows command, embedding a malicious engine parameter containing a Jython facet expression. When a logged-in OpenRefine user with a project open visits the page, their browser sends the forged request, and OpenRefine evaluates the Jython expression, running operating-system commands as the OpenRefine process user. No public exploit code is identified at time of analysis, though VulnCheck has published a technical advisory describing the chain.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 10, 2026

Cross-site request forgery in OpenRefine through 3.10.1 lets a remote attacker run operating system commands as the OpenRefine user by luring that user's browser into issuing a crafted cross-origin GET to the local get-rows command with a malicious engine parameter that evaluates a Jython facet expression. Exploitation is not drive-by: it requires the victim to have OpenRefine running with a project loaded and an active session and to be induced into visiting an attacker-controlled page, and it depends on the target build bundling the Jython extension that provides the expression-evaluation path. There is no public exploit identified at time of analysis and the issue is not confirmed actively exploited (CISA KEV); the assessed CVSS:3.1 vector (AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H) reflects high attack complexity and mandatory user interaction offsetting the full confidentiality, integrity and availability impact on the OpenRefine host.

RemediationAI

No vendor-released patch is identified in the provided data; the source references point only to the upstream tracking issue (https://github.com/OpenRefine/OpenRefine/issues/7999) and the vulnerable code locations, so a fixed release version cannot be cited and monitoring that issue for a patched build is the first step. Because the exploit path is a forged cross-origin GET against the loopback listener, the most effective compensating control is to keep OpenRefine strictly bound to 127.0.0.1 and never expose its port on a routable interface, and to avoid using a general-purpose browser session for both OpenRefine and untrusted sites - run OpenRefine in a dedicated browser profile (or a separate browser) and close the instance when it is not needed, accepting the workflow inconvenience of switching profiles and the residual risk that any page open in that profile can still reach the local service. Where the Jython transformation feature is not required, remove or disable the Jython extension (extensions/jython) so the engine parameter can no longer reach JythonEvaluable; the trade-off is that all Jython-based transformations, facets and scripts in existing projects stop working. Additional hardening with trade-offs: front the UI with a reverse proxy or browser policy that enforces SameSite/Origin checks and blocks cross-origin requests to localhost (enterprise Private Network Access or a localhost-blocking extension may break legitimate local integrations), require an authentication layer or CSRF token on state-changing commands if a patched build provides one, and run OpenRefine under a low-privilege account with a restricted filesystem scope so that any successful command execution has limited blast radius at the cost of reduced convenience for legitimate file operations. Until a fix is released, treat any browsing of untrusted pages on a machine running OpenRefine with a loaded project as the primary risk to eliminate.

Affected VersionsENISA

OpenRefine 0 ≤3.10.1

Affected Packages

euvd openrefine no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The issue is a classic CWE-352 cross-site request forgery, but with a code-execution payload: OpenRefine's browser UI talks to a local Jetty/HTTP service (default 127.0.0.1:3333), and the get-rows command (GetRowsCommand.java, lines 174-186 at commit bde8a36) accepts an attacker-supplied 'engine' parameter that is deserialized into a facet engine. OpenRefine facet engines can embed arbitrary expressions, and the Jython extension (JythonEvaluable.java line 142) evaluates them through an embedded Jython interpreter; ListFacet.java (lines 327-339) is the facet path that feeds expression evaluation. Because the endpoint performs no CSRF token or cross-origin validation for this request shape, a page on any origin can force the victim's browser to issue the GET against the loopback listener, so the payload executes with the privileges of the OpenRefine process (typically the desktop user's account) rather than in the sandbox of the attacker's page. The CPE entry cpe:2.3:a:openrefine:openrefine:*:*:*:*:*:*:*:* identifies OpenRefine as the affected product but is not version-bounded in this feed; the description constrains the affected range to releases through 3.10.1. The independent analysis frames this as a genuine high-impact issue with meaningful real-world friction: UI:P/session and project prerequisites plus AC:H/AT:P (a precisely crafted engine/facet payload) mean mass exploitation is impractical and targeted delivery against known OpenRefine users is more likely.

Know when Openrefine gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 7.7 HIGH
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

CSRF needs no attacker auth (PR:N) but requires the victim to visit a page (UI:R) and a precisely crafted Jython payload (AC:H); RCE as the OpenRefine user gives full C:H/I:H/A:H with no scope change.

3.1 AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H
4.0 AV:N/AC:H/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
High
Attack Requirements
Present
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

OpenRefine through 3.10.1 contains a cross-site request forgery vulnerability in the get-rows command that allows remote attackers to execute Jython facet expressions. Attackers can lure a user to a malicious page issuing a cross-origin GET with a crafted engine parameter, executing operating system commands as the OpenRefine user.

Executive ViewAI

Why It Matters

OpenRefine versions through 3.10.1 are affected by a high-severity cross-site request forgery flaw that could let a remote attacker execute operating system commands as the OpenRefine user when a victim with an active session is lured to a malicious page. This affects data analysts and teams using OpenRefine on their workstations, potentially exposing local data and credentials and disrupting availability. No public exploit has been identified at time of analysis and no vendor-released patch is available, so leadership should treat this as a priority for mitigation and monitoring.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis; interim mitigations include disabling the Jython extension if not needed, restricting OpenRefine to localhost and blocking cross-origin browser access, keeping OpenRefine closed when not in use, running it under a least-privilege account or isolated VM/container, and monitoring for malicious get-rows requests with crafted engine parameters.

Threat Intelligence Overview

EPSS Score
0.2%
Top 93% exploitable
Prevalence
Low
niche open-source data-cleaning tool, limited production/enterprise server footprint
Social Media
2
Sightings
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Request Forgery exploits the automatic credential inclusion behavior of web browsers.

CVE-2023-41887 CRITICAL POC
9.8 Sep 15

OpenRefine is a powerful free, open source tool for working with messy data. Rated critical severity (CVSS 9.8), this vu

CVE-2024-47883 CRITICAL POC
9.1 Oct 24

The OpenRefine fork of the MIT Simile Butterfly server is a modular web application framework. Rated critical severity (

CVE-2024-47881 HIGH POC
8.8 Oct 24

OpenRefine is a free, open source tool for working with messy data. Rated high severity (CVSS 8.8), this vulnerability i

CVE-2024-47879 HIGH POC
8.8 Oct 24

OpenRefine is a free, open source tool for working with messy data. Rated high severity (CVSS 8.8), this vulnerability i

CVE-2024-23833 HIGH POC
7.5 Feb 12

OpenRefine is a free, open source power tool for working with messy data and improving it. Rated high severity (CVSS 7.5

CVE-2023-41886 HIGH POC
7.5 Sep 15

OpenRefine is a powerful free, open source tool for working with messy data. Rated high severity (CVSS 7.5), this vulner

CVE-2019-3580 HIGH POC
7.5 Jan 03

OpenRefine through 3.1 allows arbitrary file write because Directory Traversal can occur during the import of a crafted

CVE-2018-20157 HIGH POC
7.5 Dec 15

The data import functionality in OpenRefine through 3.1 allows an XML External Entity (XXE) attack through a crafted (zi

CVE-2024-47880 MEDIUM POC
6.9 Oct 24

OpenRefine is a free, open source tool for working with messy data. Rated medium severity (CVSS 6.9), this vulnerability

CVE-2018-19859 MEDIUM POC
6.5 Dec 05

OpenRefine before 3.2 beta allows directory traversal via a relative pathname in a ZIP archive. Rated medium severity (C

CVE-2024-47882 MEDIUM POC
6.1 Oct 24

OpenRefine is a free, open source tool for working with messy data. Rated medium severity (CVSS 6.1), this vulnerability

CVE-2024-47878 MEDIUM POC
6.1 Oct 24

OpenRefine is a free, open source tool for working with messy data. Rated medium severity (CVSS 6.1), this vulnerability

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy