CVE Catalog

CVE-2026-123816

HighCVSS 8.1
Published: Updated: Translated: NVD NIST

Summary

Prior to 0.5.0b3.dev101, pyLoad's 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 via hmac.compare_digest. Since key identifiers are small sequential integers, an unauthenticated remote attacker can enumerate an active identifier and inherit the cached key owner's permissions during the 300-second cache lifetime.

Risk Assessment

An unauthenticated remote attacker can inherit the permissions of an active API key owner and perform operations on their behalf. This is a serious access control bypass in the pyLoad download manager.

Recommendation

Upgrade pyLoad to version 0.5.0b3.dev101 or later. Until patched, restrict network access to the pyLoad API.

Other vulnerabilities in pyLoad

See all
Original NVD description (English source)

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.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS