Skip to main content

OpenList CVE-2026-102663

| EUVDEUVD-2026-97775 MEDIUM
Information Exposure (CWE-200)
2026-10-12 GitHub_M
4.3
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as restricted low-privileged user
  2. Exploit
    Send crafted /api/fs/search request to global Bleve index
  3. Execution
    Sibling path /base2 passes HasPrefix prefix check
  4. Impact
    Leak sibling file metadata and enumerate via Total count

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK

2 techniques across 2 tactics: Collection, Discovery

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

Exploitation Conditions

Exploitation requires: (1) the admin-configured Bleve search index mode to be enabled and the index built - the flaw lives in the Bleve search path (internal/search/bleve/search.go and server/handles/search.go); (2) an authenticated low-privileged user account whose BasePath is restricted (PR:L); and (3) a sensitive sibling directory whose name shares the victim's BasePath as a string prefix (e.g. BasePath /base and target /base2), so the non-separator-aware strings.HasPrefix check mis-authorizes it. Limiting factors that reduce real-world risk: authentication is mandatory, the Bleve engine is not the universal default, the exploitable condition hinges on specific sibling-directory naming, and disclosure is limited to file metadata/existence and the backend Total match count rather than full file contents (though metadata may be returned directly if folder-level passwords are not set).

Impact

This is a genuine but low-to-medium priority issue. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N = 4.3 Medium) is internally consistent with the description and GHSA advisory: a network-reachable but authenticated (PR:L) low-privileged user can trigger it with no user interaction, and impact is limited to low confidentiality (C:L) with no integrity or availability effect - matching CWE-200 information disclosure. A detailed proof-of-concept is published in the GHSA advisory, so publicly available exploit code exists; however, there is no CISA KEV listing and no EPSS score was provided, so there is no evidence of active or widespread exploitation. The signals do not conflict, but they are modest across the board: the flaw only leaks file metadata and existence/Total-count information (not file contents directly), requires an already-authenticated restricted user, and depends on the Bleve search engine being enabled and on an attacker-exploitable sibling-directory naming condition. Net assessment: a real, confirmed authorization-bypass/information-disclosure bug worth patching, but not an emergency - the combination of required authentication, limited impact, and non-default feature dependency keeps real-world risk low despite the network attack vector.

Exploit ScenarioDerived

A low-privileged OpenList user whose BasePath is restricted to /base authenticates and sends a search request against the global index. Because the sibling directory /base2 passes the non-separator-aware strings.HasPrefix(node.Parent, user.BasePath) check, the user retrieves metadata for files such as /base2/secret_financial_report.pdf outside their namespace, or infers the existence of hidden files via the unfiltered Total count. A complete step-by-step PoC is published in the GHSA advisory, so working exploit code is publicly available.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 12, 2026

Metadata and file-existence disclosure in OpenList versions through 4.2.3 allows an authenticated low-privileged user with a restricted BasePath to bypass authorization and view search results for sibling directories when Bleve search indexing is enabled. The flaw stems from a non-separator-aware strings.HasPrefix check that mis-authorizes paths like /base2 as contained within /base, and the Bleve backend’s unfiltered Total count leaks match existence even when individual results are filtered. A public proof-of-concept exists, though exploitation requires the Bleve engine to be configured, a specific sibling-directory naming collision, and authentication; the CVSS score is 4.3 (low-to-medium severity).

RemediationAI

Upgrade OpenList to version 4.2.4, which replaces the flawed strings.HasPrefix checks with a path-separator-aware utils.IsSubPath function and re-validates sharing paths that may fall outside a user’s BasePath. Apply the vendor patch from commits 59bd3431408578f420895457554700cc9a52375a and 84ecda35aae2bd0020474086e6ddfd3aa2340679, or use the official release at https://github.com/OpenListTeam/OpenList/releases/tag/v4.2.4. If immediate upgrade is not possible, disable Bleve search indexing (switch the Search Index Mode to a non-Bleve option); note this reduces search functionality. Another compensating control is to ensure that no sibling directory names share a string prefix with any restricted user’s BasePath (e.g., rename /base2 to /other), but this is an operational workaround with limited reliability. Folder-level passwords do not prevent the Total count leak, so they are not a full mitigation. Vendor-released patch: 4.2.4.

Affected VersionsENISA

OpenList < 4.2.4

Affected Packages

go github.com/openlistteam/openlist no fix
go github.com/openlistteam/openlist/v3 no fix
go github.com/openlistteam/openlist/v4 fix: 4.2.4
euvd openlist fix: 4.2.4

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 4 packages in go, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

OpenList is a Go-based file list program that supports multiple storage backends; the vulnerability resides in its search API when integrated with the Bleve full-text search engine. The authorization check in server/handles/search.go used strings.HasPrefix(node.Parent, user.BasePath), which does not treat path separators as boundaries, so a restricted user with BasePath '/base' could match the parent path '/base2'. Separately, internal/search/bleve/search.go searches the global index without applying the request's Parent boundary, and even if the application later removes unauthorized items from the Content array via CanAccess checks, it still returns the raw Total count from the backend. This combination (CWE-200) leaks file metadata or existence information. The root cause class is improper authorization and information exposure through insecure path validation. The CPE cpe:2.3:a:openlistteam:openlist:*:*:*:*:*:*:*:* covers all versions prior to the fix. The patch replaces strings.HasPrefix with utils.IsSubPath and re-validates sharing paths, addressing the non-separator-aware comparison.

Know when Openlist 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 (GitHub_M) PRIMARY 4.3 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
vuln.today AI 4.3 MEDIUM

Authenticated restricted user (PR:L) over the network (AV:N) with no interaction; impact is limited metadata/existence disclosure (C:L) with no integrity or availability effect.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
None

Lifecycle Timeline

1
Patch available
Oct 12, 2026 - 20:18 EUVD

DescriptionCVE.org

OpenList is a file list program that supports multiple storage backends. Prior to 4.2.4, the OpenList search API uses a non-separator-aware strings.HasPrefix comparison as a path containment authorization check when authorizing globally indexed Bleve results against a restricted user's BasePath. When Bleve search is enabled and a restricted authenticated user searches the global index for content in a sibling path, the user causes a globally indexed sibling-path result to pass the prefix check. The strings.HasPrefix(node.Parent, user.BasePath) predicate allows a sibling path such as /base2 to be treated as contained by /base. Unauthorized file metadata or file-existence information can be disclosed, and the backend Total value can reveal a match even when another access check removes the individual result. This issue is fixed in version 4.2.4.

Threat Intelligence Overview

EPSS Score
0.2%
Top 89% exploitable
Prevalence
Low
niche self-hosted open-source file-list server, limited enterprise footprint
Data Quality
6 sources
Confidence: High

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 0.2%
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

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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