---
id: CVE-2026-102663
title: OpenList is a file list program that supports multiple storage backends
summary: >-
  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
  …
severity: medium
cvss: 4.3
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N'
cwe:
  - CWE-200
  - CWE-639
published: '2026-10-12'
updated: '2026-10-12'
sourceUpdated: '2026-10-12T19:16:36.333'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-102663'
references:
  - url: >-
      https://github.com/OpenListTeam/OpenList/commit/59bd3431408578f420895457554700cc9a52375a
    label: security-advisories@github.com
  - url: >-
      https://github.com/OpenListTeam/OpenList/commit/84ecda35aae2bd0020474086e6ddfd3aa2340679
    label: security-advisories@github.com
  - url: 'https://github.com/OpenListTeam/OpenList/releases/tag/v4.2.4'
    label: security-advisories@github.com
  - url: >-
      https://github.com/OpenListTeam/OpenList/security/advisories/GHSA-p6ph-3jx2-3337
    label: security-advisories@github.com
tags:
  - nvd
ingestedAt: '2026-10-12T20:03:12.348Z'
---

## Overview

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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
