Description
pyLoad is a free and open-source download manager written in Python. Prior to 0.5.0b3.dev101, Api.check_apikey caches successful validation in self._apikey_cache using only the attacker-controlled key_id. After a legitimate key populates the cache, a forged API key with the same key_id reaches the cache-hit path without comparing apikey[-43:] to the stored hash through hmac.compare_digest. Key identifiers are small sequential integers, so an unauthenticated remote attacker can enumerate an active identifier and inherit the cached key owner's permissions during the 300-second cache lifetime. This issue is fixed in version 0.5.0b3.dev101.
Published: 2026-11-09
Score: 8.1 High
EPSS: n/a
KEV: No
Impact: Authentication bypass
Action: Immediate Patch
AI Analysis

Impact

pyLoad's API key validation caches verified keys using only the key identifier, omitting a comparison of the full key hash. An attacker can forge a key that shares the same identifier, causing the cached validation to succeed without re‑checking the key value. This gives the attacker the same permissions as the legitimate key for a 300‑second cache window, constituting a large‐scale authentication bypass (CWE‑287).

Affected Systems

All pyLoad installations running versions older than 0.5.0b3.dev101 are vulnerable. The issue affects the pyload:pyload product; no particular operating system or hosting environment is a requirement beyond a running pyLoad service exposed to the network.

Risk and Exploitability

The CVSS score of 8.1 marks this as high severity, though the EPSS score is not available, so the exact probability of exploitation is uncertain. Because the flaw is remote, requires only enumeration of small sequential key identifiers, and the vulnerable cache window is short, a bot could rapidly identify and abuse active keys. The vulnerability is not yet in CISA's KEV catalog.

Generated by OpenCVE AI on November 9, 2026 at 22:35 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade pyLoad to version 0.5.0b3.dev101 or later to apply the fix.
  • If an upgrade is not immediately possible, disable or remove the API key validation cache so that each request requires full key authentication, or set the cache expiration to zero to force re‑validation on every request.
  • Implement stricter key management controls that restrict enumeration of key identifiers, enforce unique key generation, and audit API key usage for unexplained activity.

Generated by OpenCVE AI on November 9, 2026 at 22:35 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-r44w-v6gf-x3p6 pyLoad has an authentication bypass in API key validation (check_apikey cache)
History

Mon, 09 Nov 2026 22:45:00 +0000

Type Values Removed Values Added
First Time appeared Pyload
Pyload pyload
Vendors & Products Pyload
Pyload pyload

Mon, 09 Nov 2026 21:30:00 +0000

Type Values Removed Values Added
Description pyLoad is a free and open-source download manager written in Python. Prior to 0.5.0b3.dev101, Api.check_apikey caches successful validation in self._apikey_cache using only the attacker-controlled key_id. After a legitimate key populates the cache, a forged API key with the same key_id reaches the cache-hit path without comparing apikey[-43:] to the stored hash through hmac.compare_digest. Key identifiers are small sequential integers, so an unauthenticated remote attacker can enumerate an active identifier and inherit the cached key owner's permissions during the 300-second cache lifetime. This issue is fixed in version 0.5.0b3.dev101.
Title pyLoad: Authentication bypass in API key validation (check_apikey cache)
Weaknesses CWE-287
References
Metrics cvssV3_1

{'score': 8.1, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-11-09T21:15:48.314Z

Reserved: 2026-11-06T15:27:56.227Z

Link: CVE-2026-123816

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-11-09T22:30:17Z

Weaknesses