Exploit
CVE-2024-47882

Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') (CWE-79)

Published: Oct 24, 2024

010
CVSS 6.1EPSS 0.05%Medium
CVE info copied to clipboard

Summary

OpenRefine, a free and open-source tool for working with messy data, contains a vulnerability in versions prior to 3.8.3. The built-in "Something went wrong!" error page includes exception messages and tracebacks without properly escaping HTML tags. This enables potential injection into the page if an attacker can reliably produce an error with an attacker-influenced message. The primary attack vector appears to be convincing a victim to import a malicious file, which may be challenging. However, out-of-tree extensions that use 'respondWithErrorPage' may introduce additional attack surfaces.

Impact

The vulnerability allows for the execution of arbitrary JavaScript in the victim's browser, which can lead to a range of impacts. The attacker can potentially perform any action that the user can do within the browser context. This includes accessing and modifying sensitive information, manipulating the browser's DOM, and potentially interacting with other web applications the user has access to. The vulnerability has a high integrity impact and a low confidentiality impact, indicating that while data modification is a significant risk, data exposure is less severe but still possible. The CVSS v3.1 base score is 6.1, indicating a medium severity level. The attack vector is network-based, requires low attack complexity, and no privileges, but does require user interaction. The scope is changed, meaning the vulnerable component impacts resources beyond its security scope.

Exploitation

One proof-of-concept exploit is available on github.com. There is no evidence of proof of exploitation at the moment.

Patch

A patch is available. The vulnerability was fixed in OpenRefine version 3.8.3, released on October 24, 2024. The patch addresses the HTML escaping issue in the error page.

Mitigation

1. Update OpenRefine to version 3.8.3 or later as soon as possible. 2. Implement strict input validation and output encoding to prevent cross-site scripting attacks. 3. Use Content Security Policy (CSP) headers to restrict the execution of scripts from unauthorized sources. 4. Educate users about the risks of importing untrusted projects or files into OpenRefine. 5. Implement browser security features like X-XSS-Protection headers. 6. Regularly update and patch all associated software and dependencies. 7. Consider implementing additional security measures such as sandboxing for imported projects. 8. If using out-of-tree extensions, review their use of 'respondWithErrorPage' and ensure proper HTML escaping is in place.

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N

Timeline

Vendor Advisory

GitHub Advisories released a security advisory.

Oct 24, 2024 at 6:11 AM
First Article

Feedly found the first article mentioning CVE-2024-47882. See article

Oct 24, 2024 at 6:24 PM / GitHub Advisory Database
CVSS Estimate

Feedly estimated the CVSS score as HIGH

Oct 24, 2024 at 6:24 PM
CVE Assignment

NVD published the first details for CVE-2024-47882

Oct 24, 2024 at 9:15 PM
CVSS Estimate

Feedly estimated the CVSS score as MEDIUM

Oct 24, 2024 at 9:36 PM
EPSS

EPSS Score was set to: 0.05% (Percentile: 16.6%)

Oct 25, 2024 at 10:07 AM
CVSS

A CVSS base score of 6.1 has been assigned.

Oct 28, 2024 at 2:30 PM / nvd
Proof of Concept (PoC) Released

A proof of concept exploit has been released

Oct 28, 2024 at 5:12 PM
Static CVE Timeline Graph

Affected Systems

Openrefine/openrefine
+null more

Exploits

https://github.com/OpenRefine/OpenRefine/security/advisories/GHSA-j8hp-f2mj-586g
+null more

Patches

Github Advisory
+null more

Attack Patterns

CAPEC-209: XSS Using MIME Type Mismatch
+null more

Vendor Advisory

[GHSA-j8hp-f2mj-586g] OpenRefine's error page lacks escaping, leading to potential Cross-site Scripting on import of malicious project
The Command.respondWithErrorPage (through HttpUtilities.respondWithErrorPage) function renders the Velocity template error.vt, which contains the $message and $stack variables, which are included in the response as-is: https://github.com/OpenRefine/OpenRefine/blob/master/main/webapp/modules/core/error.vt#L52-L53 However, the message can contain HTML tags, which would then be interpreted by the browser. Flows that report errors as application/json responses are not interpreted by the browser and so not affected by this issue.

News

CVE-2024-47882 Exploit
CVE Id : CVE-2024-47882 Published Date: 2024-10-28T14:26:00+00:00 OpenRefine is a free, open source tool for working with messy data. Prior to version 3.8.3, the built-in "Something went wrong!" error page includes the exception message and exception traceback without escaping HTML tags, enabling injection into the page if an attacker can reliably produce an error with an attacker-influenced message. It appears that the only way to reach this code in OpenRefine itself is for an attacker to somehow convince a victim to import a malicious file, which may be difficult. However, out-of-tree extensions may add their own calls to `respondWithErrorPage`. Version 3.8.3 has a fix for this issue. inTheWild added a link to an exploit: https://github.com/OpenRefine/OpenRefine/security/advisories/GHSA-j8hp-f2mj-586g
CVE Alert: CVE-2024-47882
Everyone that supports the site helps enable new functionality. It appears that the only way to reach this code in OpenRefine itself is for an attacker to somehow convince a victim to import a malicious file, which may be difficult.
CVE-2024-47882
Medium Severity Description OpenRefine is a free, open source tool for working with messy data. Prior to version 3.8.3, the built-in "Something went wrong!" error page includes the exception message and exception traceback without escaping HTML tags, enabling injection into the page if an attacker can reliably produce an error with an attacker-influenced message. It appears that the only way to reach this code in OpenRefine itself is for an attacker to somehow convince a victim to import a malicious file, which may be difficult. However, out-of-tree extensions may add their own calls to `respondWithErrorPage`. Version 3.8.3 has a fix for this issue. Read more at https://www.tenable.com/cve/CVE-2024-47882
CVE-2024-47882 | OpenRefine up to 3.8.2 Exception Message cross site scripting (GHSA-j8hp-f2mj-586g)
A vulnerability classified as problematic was found in OpenRefine up to 3.8.2 . This vulnerability affects unknown code of the component Exception Message Handler . The manipulation leads to cross site scripting. This vulnerability was named CVE-2024-47882 . The attack can be initiated remotely. There is no exploit available. It is recommended to upgrade the affected component.
CVE-2024-47882
Gravedad 3.1 (CVSS 3.1 Base Score) Gravedad 3.1 Txt Gravedad 3.1 (CVSS 3.1 Base Score)
See 8 more articles and social media posts

CVSS V3.1

Attack Vector:Network
Attack Complexity:Low
Privileges Required:None
User Interaction:Required
Scope:Changed
Confidentiality:Low
Integrity:Low
Availability Impact:None

Categories

Be the first to know about critical vulnerabilities

Collect, analyze, and share vulnerability reports faster using AI