CVE-2025-24787
Parameter injection in DB connection URIs leading to local file inclusion in WhoDB
WhoDB is an open source database management tool. In affected versions the application is vulnerable to parameter injection in database connection strings, which allows an attacker to read local files on the machine the application is running on. The application uses string concatenation to build database connection URIs which are then passed to corresponding libraries responsible for setting up the database connections. This string concatenation is done unsafely and without escaping or encoding the user input. This allows an user, in many cases, to inject arbitrary parameters into the URI string. These parameters can be potentially dangerous depending on the libraries used. One of these dangerous parameters is allowAllFiles in the library github.com/go-sql-driver/mysql. Should this be set to true, the library enables running the LOAD DATA LOCAL INFILE query on any file on the host machine (in this case, the machine that WhoDB is running on). By injecting &allowAllFiles=true into the connection URI and connecting to any MySQL server (such as an attacker-controlled one), the attacker is able to read local files. This issue has been addressed in version 0.45.0 and all users are advised to upgrade. There are no known workarounds for this vulnerability.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
8.6
Parameter injection in DB connection URIs leading to local file inclusion in WhoDB
WhoDB is an open source database management tool. In affected versions the application is vulnerable to parameter injection in database connection strings, which allows an attacker to read local files on the machine the application is running on. The application uses string concatenation to build database connection URIs which are then passed to corresponding libraries responsible for setting up the database connections. This string concatenation is done unsafely and without escaping or encoding the user input. This allows an user, in many cases, to inject arbitrary parameters into the URI string. These parameters can be potentially dangerous depending on the libraries used. One of these dangerous parameters is allowAllFiles in the library github.com/go-sql-driver/mysql. Should this be set to true, the library enables running the LOAD DATA LOCAL INFILE query on any file on the host machine (in this case, the machine that WhoDB is running on). By injecting &allowAllFiles=true into the connection URI and connecting to any MySQL server (such as an attacker-controlled one), the attacker is able to read local files. This issue has been addressed in version 0.45.0 and all users are advised to upgrade. There are no known workarounds for this vulnerability.
- Record
CVE-2025-24787- CVSS 3.1
- 8.6 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N - Weakness
- CWE-943
- Updated
- 2026-11-02
EUVDEUVD-2025-3947
8.6
WhoDB is an open source database management tool. In affected versions the application is vulnerable to parameter injection in database connection strings, which allows an attacker to read local files on the machine the application is running on. The application uses string concatenation to build database connection URIs which are then passed to corresponding libraries responsible for setting up the database connections. This string concatenation is done unsafely and without escaping or encoding the user input. This allows an user, in many cases, to inject arbitrary parameters into the URI string. These parameters can be potentially dangerous depending on the libraries used. One of these dangerous parameters is allowAllFiles in the library github.com/go-sql-driver/mysql. Should this be set to true, the library enables running the LOAD DATA LOCAL INFILE query on any file on the host machine (in this case, the machine that WhoDB is running on). By injecting &allowAllFiles=true into the connection URI and connecting to any MySQL server (such as an attacker-controlled one), the attacker is able to read local files. This issue has been addressed in version 0.45.0 and all users are advised to upgrade. There are no known workarounds for this vulnerability.
- Record
EUVD-2025-3947- CVSS 3.1
- 8.6 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N - Updated
- 2026-11-03
GitHub AdvisoriesGHSA-c7w4-9wv8-7x7c
8.6
WhoDB allows parameter injection in DB connection URIs leading to local file inclusion
Summary
The application is vulnerable to parameter injection in database connection strings, which allows an attacker to read local files on the machine the application is running on.
Details
The application uses string concatenation to build database connection URIs which are then passed to corresponding libraries responsible for setting up the database connections.
This string concatenation is done unsafely and without escaping or encoding the user input. This allows an user, in many cases, to inject arbitrary parameters into the URI string. These parameters can be potentially dangerous depending on the libraries used.
One of these dangerous parameters is allowAllFiles in the library github.com/go-sql-driver/mysql. Should this be set to true, the library enables running the LOAD DATA LOCAL INFILE query on any file on the host machine (in this case, the machine that WhoDB is running on). Source: https://github.com/go-sql-driver/mysql/blob/7403860363ca112af503b4612568c3096fecb466/infile.go#L128
By injecting &allowAllFiles=true into the connection URI and connecting to any MySQL server (such as an attacker-controlled one), the attacker is able to read local files.
PoC
As this vulnerability does not require sending requests manually and can all be done using the WhoDB UI, screenshots are provided instead of HTTP requests.
For this proof-of-concept, a clean instance of WhoDB and MySQL were set up using podman (docker is a suitable alternative):
podman network create whodb-poc
podman run -d -p 8080:8080 --network whodb-poc docker.io/clidey/whodb
podman run -d --name mysql -e MYSQL_ROOT_PASSWORD=password --network whodb-poc docker.io/mysql:9
The attacker connects to the database via WhoDB. Note that in the Loc field, the string &allowAllFiles=true is inserted:
After connecting, the attacker navigates to the scratchpad in /scratchpad.
The attacker first creates a demo table:
CREATE TABLE poc (
line TEXT
);
The attacker then enables loading files from the server side. For the sake of clarity, do note that while this is required, the file is not being read from the remote server where MySQL is running, but the local machine that WhoDB is running on.
SET GLOBAL local_infile=1;
The attacker then uses the LOAD DATA LOCAL INFILE statement to read the contents of /etc/passwd (in this case from inside the container where WhoDB is running) into the previously created table:
LOAD DATA LOCAL INFILE '/etc/passwd'
INTO TABLE poc
FIELDS TERMINATED BY '\0'
LINES TERMINATED BY '\n';
The attacker then navigates to the poc table in the Tables view and observes that the file has been read successfully:
Impact
While this proof-of-concept demonstrates local file inclusion, the root cause of the issue is the unsafe construction of database connection URIs from user input. Not all database connector libraries used in WhoDB were inspected; there may be libraries which allow for even more impactful parameters.
The attack requires no user authentication to WhoDB (only authentication to any database server, such as an attacker-controlled one) and no special configuration - the default configuration of the application is vulnerable.
- Record
GHSA-c7w4-9wv8-7x7c- CVSS 3.1
- 8.6 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N - Weakness
- CWE-943
- Updated
- 2026-11-02
NVD
8.6
WhoDB is an open source database management tool. In affected versions the application is vulnerable to parameter injection in database connection strings, which allows an attacker to read local files on the machine the application is running on. The application uses string concatenation to build database connection URIs which are then passed to corresponding libraries responsible for setting up the database connections. This string concatenation is done unsafely and without escaping or encoding the user input. This allows an user, in many cases, to inject arbitrary parameters into the URI string. These parameters can be potentially dangerous depending on the libraries used. One of these dangerous parameters is allowAllFiles in the library github.com/go-sql-driver/mysql. Should this be set to true, the library enables running the LOAD DATA LOCAL INFILE query on any file on the host machine (in this case, the machine that WhoDB is running on). By injecting &allowAllFiles=true into the connection URI and connecting to any MySQL server (such as an attacker-controlled one), the attacker is able to read local files. This issue has been addressed in version 0.45.0 and all users are advised to upgrade. There are no known workarounds for this vulnerability.
- Record
CVE-2025-24787- CVSS 3.1
- 8.6 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N - CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-943
- Updated
- 2026-11-02
OSV
8.6
Parameter injection in DB connection URIs leading to local file inclusion in WhoDB
WhoDB is an open source database management tool. In affected versions the application is vulnerable to parameter injection in database connection strings, which allows an attacker to read local files on the machine the application is running on. The application uses string concatenation to build database connection URIs which are then passed to corresponding libraries responsible for setting up the database connections. This string concatenation is done unsafely and without escaping or encoding the user input. This allows an user, in many cases, to inject arbitrary parameters into the URI string. These parameters can be potentially dangerous depending on the libraries used. One of these dangerous parameters is allowAllFiles in the library github.com/go-sql-driver/mysql. Should this be set to true, the library enables running the LOAD DATA LOCAL INFILE query on any file on the host machine (in this case, the machine that WhoDB is running on). By injecting &allowAllFiles=true into the connection URI and connecting to any MySQL server (such as an attacker-controlled one), the attacker is able to read local files. This issue has been addressed in version 0.45.0 and all users are advised to upgrade. There are no known workarounds for this vulnerability.
- Record
CVE-2025-24787- CVSS 3.1
- 8.6 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N - Weakness
- CWE-943
- Updated
- 2026-11-02
OSVGHSA-c7w4-9wv8-7x7c
8.6
WhoDB allows parameter injection in DB connection URIs leading to local file inclusion
Summary
The application is vulnerable to parameter injection in database connection strings, which allows an attacker to read local files on the machine the application is running on.
Details
The application uses string concatenation to build database connection URIs which are then passed to corresponding libraries responsible for setting up the database connections.
This string concatenation is done unsafely and without escaping or encoding the user input. This allows an user, in many cases, to inject arbitrary parameters into the URI string. These parameters can be potentially dangerous depending on the libraries used.
One of these dangerous parameters is allowAllFiles in the library github.com/go-sql-driver/mysql. Should this be set to true, the library enables running the LOAD DATA LOCAL INFILE query on any file on the host machine (in this case, the machine that WhoDB is running on). Source: https://github.com/go-sql-driver/mysql/blob/7403860363ca112af503b4612568c3096fecb466/infile.go#L128
By injecting &allowAllFiles=true into the connection URI and connecting to any MySQL server (such as an attacker-controlled one), the attacker is able to read local files.
PoC
As this vulnerability does not require sending requests manually and can all be done using the WhoDB UI, screenshots are provided instead of HTTP requests.
For this proof-of-concept, a clean instance of WhoDB and MySQL were set up using podman (docker is a suitable alternative):
podman network create whodb-poc
podman run -d -p 8080:8080 --network whodb-poc docker.io/clidey/whodb
podman run -d --name mysql -e MYSQL_ROOT_PASSWORD=password --network whodb-poc docker.io/mysql:9
The attacker connects to the database via WhoDB. Note that in the Loc field, the string &allowAllFiles=true is inserted:
After connecting, the attacker navigates to the scratchpad in /scratchpad.
The attacker first creates a demo table:
CREATE TABLE poc (
line TEXT
);
The attacker then enables loading files from the server side. For the sake of clarity, do note that while this is required, the file is not being read from the remote server where MySQL is running, but the local machine that WhoDB is running on.
SET GLOBAL local_infile=1;
The attacker then uses the LOAD DATA LOCAL INFILE statement to read the contents of /etc/passwd (in this case from inside the container where WhoDB is running) into the previously created table:
LOAD DATA LOCAL INFILE '/etc/passwd'
INTO TABLE poc
FIELDS TERMINATED BY '\0'
LINES TERMINATED BY '\n';
The attacker then navigates to the poc table in the Tables view and observes that the file has been read successfully:
Impact
While this proof-of-concept demonstrates local file inclusion, the root cause of the issue is the unsafe construction of database connection URIs from user input. Not all database connector libraries used in WhoDB were inspected; there may be libraries which allow for even more impactful parameters.
The attack requires no user authentication to WhoDB (only authentication to any database server, such as an attacker-controlled one) and no special configuration - the default configuration of the application is vulnerable.
- Record
GHSA-c7w4-9wv8-7x7c- CVSS 3.1
- 8.6 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N - Weakness
- CWE-943
- Updated
- 2026-11-02
OSVGO-2025-3457 No score
WhoDB allows parameter injection in DB connection URIs leading to local file inclusion in github.com/clidey/whodb/core
WhoDB allows parameter injection in DB connection URIs leading to local file inclusion in github.com/clidey/whodb/core
- Record
GO-2025-3457- Updated
- 2026-11-02
OSVopenSUSE-SU-2025:14754-1 No score
govulncheck-vulndb-0.0.20250207T224745-1.1 on GA media
These are all security issues fixed in the govulncheck-vulndb-0.0.20250207T224745-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2025:14754-1- Updated
- 2026-11-02
OSVSUSE-SU-2025:0429-1 No score
Security update for govulncheck-vulndb
This update for govulncheck-vulndb fixes the following issues:
-
Update to version 0.0.20250207T224745 2025-02-07T22:47:45Z. Refs jsc#PED-11136 Go CVE Numbering Authority IDs added or updated with aliases:
- GO-2025-3456 CVE-2025-24786 GHSA-9r4c-jwx3-3j76
- GO-2025-3457 CVE-2025-24787 GHSA-c7w4-9wv8-7x7c
- GO-2025-3458 CVE-2025-24366 GHSA-vj7w-3m8c-6vpx
-
Update to version 0.0.20250206T175003 2025-02-06T17:50:03Z. Refs jsc#PED-11136 Go CVE Numbering Authority IDs added or updated with aliases:
- GO-2023-1867 CVE-2022-47930 GHSA-c58h-qv6g-fw74
- GO-2024-3244 CVE-2024-50354 GHSA-cph5-3pgr-c82g
-
Update to version 0.0.20250206T165438 2025-02-06T16:54:38Z. Refs jsc#PED-11136 Go CVE Numbering Authority IDs added or updated with aliases:
- GO-2025-3428 CVE-2025-22867
- GO-2025-3447 CVE-2025-22866
-
Update to version 0.0.20250205T232745 2025-02-05T23:27:45Z. Refs jsc#PED-11136 Go CVE Numbering Authority IDs added or updated with aliases:
- GO-2025-3408
- GO-2025-3448 GHSA-23qp-3c2m-xx6w
- GO-2025-3449 GHSA-mx2j-7cmv-353c
- GO-2025-3450 GHSA-w7wm-2425-7p2h
- GO-2025-3454 GHSA-mj4v-hp69-27x5
- GO-2025-3455 GHSA-vqv5-385r-2hf8
-
Update to version 0.0.20250205T003520 2025-02-05T00:35:20Z. Refs jsc#PED-11136 Go CVE Numbering Authority IDs added or updated with aliases:
- GO-2025-3451
-
Update to version 0.0.20250204T220613 2025-02-04T22:06:13Z. Refs jsc#PED-11136 Go CVE Numbering Authority IDs added or updated with aliases:
- GO-2025-3431 CVE-2025-24884 GHSA-hcr5-wv4p-h2g2
- GO-2025-3433 CVE-2025-23216 GHSA-47g2-qmh2-749v
- GO-2025-3434 CVE-2025-24376 GHSA-fc89-jghx-8pvg
- GO-2025-3435 CVE-2025-24784 GHSA-756x-m4mj-q96c
- GO-2025-3436 CVE-2025-24883 GHSA-q26p-9cq4-7fc2
- GO-2025-3437 GHSA-274v-mgcv-cm8j
- GO-2025-3438 CVE-2024-11741 GHSA-wxcc-2f3q-4h58
- GO-2025-3442 CVE-2025-24371 GHSA-22qq-3xwm-r5x4
- GO-2025-3443 GHSA-r3r4-g7hq-pq4f
- GO-2025-3444 CVE-2024-35177
- GO-2025-3445 CVE-2024-47770
-
Use standard RPM macros to unpack the source and populate a working directory. Fixes build with RPM 4.20.
-
Update to version 0.0.20250130T185858 2025-01-30T18:58:58Z. Refs jsc#PED-11136 Go CVE Numbering Authority IDs added or updated with aliases:
- GO-2024-2842 CVE-2024-3727 GHSA-6wvf-f2vw-3425
- GO-2024-3181 CVE-2024-9313 GHSA-x5q3-c8rm-w787
- GO-2024-3188 CVE-2024-9312 GHSA-4gfw-wf7c-w6g2
- GO-2025-3372 CVE-2024-45339 GHSA-6wxm-mpqj-6jpf
- GO-2025-3373 CVE-2024-45341
- GO-2025-3383 CVE-2024-45340
- GO-2025-3408
- GO-2025-3412 CVE-2024-10846 GHSA-36gq-35j3-p9r9
- GO-2025-3420 CVE-2024-45336
- GO-2025-3421 CVE-2025-22865
- GO-2025-3424 CVE-2025-24369
- GO-2025-3426 CVE-2025-0750 GHSA-hp5j-2585-qx6g
- GO-2025-3427 CVE-2024-13484 GHSA-58fx-7v9q-3g56
- Record
SUSE-SU-2025:0429-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
github.com/clidey/whodb/coreGo |
before 0.0.0-20250127202645-8d67b767e005 | 0.0.0-20250127202645-8d67b767e005 |
govulncheck-vulndbSUSE:Linux Enterprise Module for Package Hub 15 SP6 From an advisory covering 28 CVEs |
before 0.0.20250207T224745-150000.1.32.1 | 0.0.20250207T224745-150000.1.32.1 |
govulncheck-vulndbopenSUSE:Leap 15.6 From an advisory covering 28 CVEs |
before 0.0.20250207T224745-150000.1.32.1 | 0.0.20250207T224745-150000.1.32.1 |
govulncheck-vulndbopenSUSE:Tumbleweed From an advisory covering 6 CVEs |
before 0.0.20250207T224745-1.1 | 0.0.20250207T224745-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| aliases, published | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2025-24787 is a high vulnerability (CVSS 8.6) in Clidey Whodb, published February 6, 2025. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.56%, the 47th percentile. Fixed in github.com/clidey/whodb/core 0.0.0-20250127202645-8d67b767e005.
References
github.com/clidey/whodb/security/advisories/GHSA-c7w4-9wv8-7x7c
github.com/go-sql-driver/mysql/blob/7403860363ca112af503b4612568c3096fecb466/infile.go
github.com/clidey/whodb/commit/8d67b767e00552e5eba2b1537179b74bfa662ee1
nvd.nist.gov/vuln/detail/CVE-2025-24787
github.com/advisories/GHSA-c7w4-9wv8-7x7c
github.com/CVEProject/cvelistV5/tree/main/cves/2025/24xxx/CVE-2025-24787.json
Show 30 moreShow less
github.com/clidey/whodb
suse.com/support/update/announcement/2025/suse-su-20250429-1
suse.com/security/cve/CVE-2022-47930
suse.com/security/cve/CVE-2024-10846
suse.com/security/cve/CVE-2024-11741
suse.com/security/cve/CVE-2024-13484
suse.com/security/cve/CVE-2024-35177
suse.com/security/cve/CVE-2024-3727
suse.com/security/cve/CVE-2024-45336
suse.com/security/cve/CVE-2024-45339
suse.com/security/cve/CVE-2024-45340
suse.com/security/cve/CVE-2024-45341
suse.com/security/cve/CVE-2024-47770
suse.com/security/cve/CVE-2024-50354
suse.com/security/cve/CVE-2024-9312
suse.com/security/cve/CVE-2024-9313
suse.com/security/cve/CVE-2025-0750
suse.com/security/cve/CVE-2025-22865
suse.com/security/cve/CVE-2025-22866
suse.com/security/cve/CVE-2025-22867
suse.com/security/cve/CVE-2025-23216
suse.com/security/cve/CVE-2025-24366
suse.com/security/cve/CVE-2025-24369
suse.com/security/cve/CVE-2025-24371
suse.com/security/cve/CVE-2025-24376
suse.com/security/cve/CVE-2025-24784
suse.com/security/cve/CVE-2025-24786
suse.com/security/cve/CVE-2025-24787
suse.com/security/cve/CVE-2025-24883
suse.com/security/cve/CVE-2025-24884