---
id: "CVE-2026-112005"
kind: "vulnerability"
aliases: ["CVE-2026-112005"]
title: "WhoDB 0.104.0 before 0.135.0 contains a path traversal vulnerability that allows remote attackers to read and write\u2026"
severity: "critical"
cvss: 9.2
epss: null
exploited: false
status: "open"
category: "package"
products: [{"name": "whodb", "fixed": ["0.135.0"], "affected": ">= 0.104.0, < 0.135.0", "ecosystem": "go"}]
ecosystems: []
tags: ["docker", "duckdb", "package", "self-hosted", "whodb"]
not_affected_if: ["no-duckdb-connections", "not-internet-exposed", "version-0.135.0-or-later", "version-below-0.104.0"]
published_at: "2026-10-18T12:17:12+00:00"
first_seen_at: "2026-10-23T21:57:15+00:00"
updated_at: "2026-10-23T23:26:35+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-112005", "first_seen_at": "2026-10-23T21:57:15+00:00"}, {"source": "analyst", "url": null, "first_seen_at": "2026-10-23T23:26:35+00:00"}]
---

# WhoDB 0.104.0 before 0.135.0 contains a path traversal vulnerability that allows remote attackers to read and write…

WhoDB (database admin web UI) lets an unauthenticated user open a DuckDB session and then run SQL (read_text, read_blob, COPY TO, ATTACH) in the query editor. That reads any file the WhoDB process can read and writes files anywhere it can write. The attacker can read /data/session.key and whodb.db, then decrypt every logged-in user's stored database credentials offline. WhoDB CE has no user accounts and listens on all interfaces by default. A full public PoC is in the vendor advisory.

_Summary, check and fix written by a model from the sources; labelled as such._

## Affected

- go:whodb affected >= 0.104.0, < 0.135.0 fixed 0.135.0

## How to check

Run: docker inspect --format '{{.Config.Image}}' <container>, or check the image tag; any WhoDB 0.104.0 to 0.134.x is vulnerable. You are reachable if the WhoDB port (default 8080) is open to anyone untrusted, since DuckDB login needs no credential. Test: log in with source type DuckDB and run SELECT content FROM read_text('/data/session.key'); only on your own instance.

## Fix

Upgrade to WhoDB 0.135.0 or later (docker pull clidey/whodb:0.135.0). If an exposed instance ran an affected version, rotate the database credentials users logged in with and delete session.key so a new one is generated (cautious step, the vendor doesn't state it). Until upgraded, don't expose WhoDB to untrusted networks. The release also fixes GHSA-jcvx-4v4m-p5v9 (TestSourceConnection bypass).

## Timeline

- 2026-10-23T21:57:15+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-112005
- 2026-10-23T23:26:35+00:00 analyst — Read vendor GHSA-x3h5-pr45-fx4r (clidey/whodb, includes full PoC) and 0.135.0 release notes. Affected >=0.104.0 <0.135.0, fixed 0.135.0. No exploitation seen; X has ~2 posts, none worth saving. NVD page was empty; CVE.org shows CVSS4 9.2.

## Documents

- [advisory] GHSA-x3h5-pr45-fx4r: WhoDB DuckDB host file read/write (with PoC) https://github.com/clidey/whodb/security/advisories/GHSA-x3h5-pr45-fx4r
- [fix] WhoDB 0.135.0 release https://newreleases.io/project/github/clidey/whodb/release/0.135.0
- [poc] GHSA-x3h5-pr45-fx4r: WhoDB DuckDB host file read/write (with PoC) https://github.com/clidey/whodb/security/advisories/GHSA-x3h5-pr45-fx4r

## From the sources

WhoDB 0.104.0 before 0.135.0 contains a path traversal vulnerability that allows remote attackers to read and write arbitrary host files by running DuckDB filesystem functions through the query editor. Attackers can log in to a DuckDB file without credentials and use read_text, read_blob, COPY ... TO or ATTACH to steal session.key and stored database credentials or overwrite files.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
