GHSA-qqh2-wvmv-h72m
HIGHOpenRefine vulnerable to arbitrary file read in project import with mysql jdbc url attack
EPSS Exploitation Probability
EPSS (Exploit Prediction Scoring System) is a daily probability model maintained by FIRST.org. It estimates the likelihood a CVE will be exploited in production environments within the next 30 days, derived from real-world threat intelligence signals.
Blast Radius
org.openrefine:databaseReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects Maven packages — download data is not available via public APIs for these ecosystems.
Description
Summary
An arbitrary file read vulnerability allows any unauthenticated user to read the file on the server._
Details
Hi,Team, i find openrefine support to import data from database,When use mysql jdbc to connect to database,It is vulnerable to jdbc url attacks,for example,unauthenticated attacker can read the file on the server. There are some differences in utilization depending on the version of the mysql-connector dependency on the server side.
- mysql-connector-java version > 8.14
The default value of
allowLoadLocalInfileon the server side is false in this case.We need to manually set this value to true in the connection string.
Since the way to get the databaseurl incom/google/refine/extension/database/mysql/MySQLConnectionManager.javais to splice the individual configurations directly, we can set theallowLoadLocalInfileparameter after the other parameters(for example thedatabaseNameparameter ).


- mysql-connector-java version <= 8.14
The default value of
allowLoadLocalInfileon the server side is true in this case.so wo don't need do anything,Just connect to our malicious server.
PoC
env:
centos 7
openrefine 3.7.4
jdk11
mysql-connector-java version 8.30.0
you can use the tool https://github.com/4ra1n/mysql-fake-server to running a malicious mysql server.

for example,to read the /etc/passwd file.
set the username to base64ZmlsZXJlYWRfL2V0Yy9wYXNzd2Q= and Database name to test?allowLoadLocalInfile=true# (for mysql-connector-java version <= 8.14,just setting the database name normally) and test to connect your malicious mysql server.
you can get the file in your fake-server-files directory.

Impact
An arbitrary file read vulnerability allows any unauthenticated user to read the file on the server._
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| ☕Maven | org.openrefine:database | all versions | 3.7.5 |
Research use only. For defensive security, authorized penetration testing, and academic research only. Never execute exploit code against systems without explicit written authorization.
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for org.openrefine:database. O3's reachability analysis confirms whether the vulnerable code path is actually invoked in your application, so you act on real exposure instead of every transitive match.
Fix
Update org.openrefine:database to 3.7.5 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-qqh2-wvmv-h72m is resolved across your whole dependency graph.
Workarounds
If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.
How O3 protects you
O3 pinpoints whether GHSA-qqh2-wvmv-h72m is reachable in your code and exactly where to fix it, then blocks exploitation in production at runtime until the patched version is deployed.
Tailored to GHSA-qqh2-wvmv-h72m. Runtime protection reduces exposure until a permanent patch is applied and verified — it complements patching, it doesn't replace it.
Frequently Asked Questions
Is GHSA-qqh2-wvmv-h72m in your dependencies?
O3 detects GHSA-qqh2-wvmv-h72m across Maven dependencies and uses function-level reachability to confirm whether the vulnerable code path is actually reachable — not just present. No false positives.