Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as restricted low-privileged user
-
ExploitSend crafted /api/fs/search request to global Bleve index
-
ExecutionSibling path /base2 passes HasPrefix prefix check
-
ImpactLeak 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
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.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
OpenList Frontend versions prior to 4.1.10 contain a path traversal vulnerability in file operation handlers that allows
Authenticated path traversal in OpenList's batch rename API allows any user with rename permission to move files outside
Path traversal in OpenList prior to v4.2.3 allows any authenticated user holding the PermAddOfflineDownload permission t
OpenList versions prior to 4.1.10 disable TLS certificate verification by default in storage driver communications, enab
EUVD-2026-97775
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB