Skip to main content

Koodo Reader CVE-2026-121544

| EUVDEUVD-2026-115889 MEDIUM
Path Traversal (CWE-22)
2026-11-03 VulnCheck
6.9
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate to self-hosted OPDS server
  2. Delivery
    Upload books.db with ../ in cover value
  3. Exploit
    Request /opds/cover/{key} endpoint
  4. Execution
    Unsafe filepath.Join escapes upload directory
  5. Impact
    Read arbitrary server-accessible files

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK

2 techniques across 2 tactics: Discovery, Collection

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

Exploitation Conditions

Requires the optional self-hosted HTTP server (OPDS) mode of Koodo Reader to be enabled and reachable - this is not the default desktop-only usage. The attacker must be authenticated with privileges to upload a books.db (PR:H), supply a crafted 'cover' value containing ../ sequences, and then request /opds/cover/{key}. Impact is bounded to reading files accessible to the server process (read-only disclosure, no write/integrity or availability impact). Limiting factors: authenticated upload access is mandatory, the self-hosted server must be deployed and exposed, and only files the server process can already read are disclosed. Affects versions through 2.4.6; upgrading to the patched build (commit cbc79a1) is the vendor fix.

Impact

This is a medium-severity, authenticated information-disclosure flaw rather than a top-tier emergency. The supplied CVSS 4.0 vector (6.9) shows a network-reachable, low-complexity bug (AV:N/AC:L/AT:N) but requires high privileges (PR:H) and yields confidentiality impact only (VC:H, VI:N, VA:N), with no scope/subsequent-system impact - consistent with read-only path traversal (CWE-22). The vuln.today decision label is 'this_month', not 'act_now' or 'emergency', so the signals converge on prompt-but-not-urgent remediation. No EPSS score was provided in the input, so exploitation probability cannot be quantified here, and the vulnerability is NOT listed in CISA KEV - there is no evidence of active exploitation. No public exploit code was identified in the input; the strongest corroboration is a VulnCheck advisory plus the vendor patch commit and the exact vulnerable source lines (httpserver/opds.go). The main factor keeping real-world risk moderate is PR:H: an attacker must already be an authenticated user able to upload a books.db to the self-hosted server. Because the self-hosted HTTP server is an optional, non-default deployment mode, the exposed population is narrow. Net: credible and patch-worthy, but limited by the authentication requirement and read-only impact - not a widespread, pre-auth RCE scenario.

Exploit ScenarioDerived

An authenticated user of a self-hosted Koodo Reader HTTP server uploads a crafted books.db whose 'cover' value contains ../ traversal sequences, then requests /opds/cover/{key}; the server's unsanitized filepath.Join resolves outside the upload directory and returns files readable by the server process (e.g., configuration or credential files). The CVSS vector indicates network vector with low attack complexity but high privilege (authenticated upload) required. No public exploit code was identified at time of analysis; a VulnCheck advisory and the patch commit confirm the mechanism.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available

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

Alert me

AnalysisAIv1 – Nov 03, 2026

Path traversal in Koodo Reader 2.4.6 and earlier lets an authenticated user of the optional self-hosted HTTP server read arbitrary files outside the upload directory. The attacker uploads a crafted books.db whose 'cover' value contains ../ sequences and then requests /opds/cover/{key}, causing the server to serve a file readable by the Koodo Reader process; the same unsafe path construction affected the OPDS download handler. Exploitation requires the non-default OPDS/self-hosted mode to be deployed and reachable plus privileges sufficient to upload a database (PR:H), so impact is read-only disclosure of files the server process can already access. No public exploit code or confirmed active exploitation was identified at time of analysis, and the vendor fix is contained in commit cbc79a1.

RemediationAI

Upgrade Koodo Reader to a build that contains upstream commit cbc79a1ab5cbbd61c8252d6ab3cc6dbb694663b8 (https://github.com/koodo-reader/koodo-reader/commit/cbc79a1ab5cbbd61c8252d6ab3cc6dbb694663b8), which introduces resolveSafePath validation for the OPDS download handler and the matching cover path so that '../' values in books.db can no longer escape the upload directory. The comparison at https://github.com/koodo-reader/koodo-reader/compare/205539043b0a2afd9fd8bf99ef8434bd1833c2bf...cbc79a1ab5cbbd61c8252d6ab3cc6dbb694663b8 shows the full fix set; no tagged patched release version is stated in the available data, so verify the fix is present in the distribution you deploy. If upgrading is not immediately possible, the exposure can be reduced by not running the optional self-hosted HTTP/OPDS server, or by keeping it off untrusted networks, since the traversal is only reachable through that mode - at the cost of losing OPDS catalog functionality - and by tightening who may upload library databases such as books.db, which the attack requires.

Affected VersionsENISA

koodo-reader 0 ≤2.4.6

Affected Packages

euvd koodo_reader 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

Koodo Reader ships an optional Go-based HTTP server (httpserver package) that exposes an OPDS catalog for e-book distribution. In versions through 2.4.6, the OPDS cover handler (httpserver/opds.go, roughly lines 167-194 and 384-431) built filesystem paths by joining the upload directory with a cover value taken from the reader's books.db database, and the OPDS download handler did the same with the book key and format (filepath.Join(uploadDir, "book", b.Key+"."+format)). Because filepath.Join collapses '..' segments, a cover or key value containing ../ sequences escapes the intended upload directory, giving a directory-traversal read primitive (CWE-22). The upstream commit cbc79a1ab5cbbd61c8252d6ab3cc6dbb694663b8 addresses this by routing the download handler through a new resolveSafePath("book", ...) helper that validates the resolved path and returns 404 on failure, with the corresponding change applied to the cover path. The vulnerable state is reachable only when the optional self-hosted HTTP/OPDS mode is enabled and exposed; the default desktop-only usage never starts this server, and an attacker must already be authenticated with upload privileges to plant the malicious books.db.

Know when Koodo Reader 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 6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 4.9 MEDIUM

Network-reachable OPDS endpoint (AV:N/AC:L) but requires authenticated upload of books.db (PR:H); read-only file disclosure gives C:H with I:N/A:N and unchanged scope.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

Koodo Reader through 2.4.6 contains a path traversal vulnerability in the self-hosted HTTP server's OPDS handlers that allows authenticated attackers to read files outside the upload directory. Attackers can upload a crafted books.db with a cover value containing ../ sequences, then request /opds/cover/{key} to read files accessible to the server process.

Threat Intelligence Overview

Prevalence
Low
optional self-hosted server mode of a niche open-source ebook reader
Data Quality
5 sources
Confidence: Medium
EUVD NVD CVE.org Vulnrichment GitHub

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 MEDIUM
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

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