pyload-ng: non-admin SETTINGS users can disable outbound TLS peer verification
pyLoad is a free and open-source download manager written in Python. Prior to 0.5.0b3.dev100, the set_config_value() API method (@permission(Perms.SETTINGS)) in src/pyload/core/api/__init__.py gates security-sensitive options behind a hand-maintained allowlist ADMIN_ONLY_CORE_OPTIONS. The option ("general", "ssl_verify") is not on that allowlist. Any authenticated user with the non-admin SETTINGS permission can set general.ssl_verify = off, and every subsequent outbound pycurl request is made with SSL_VERIFYPEER=0 and SSL_VERIFYHOST=0 — TLS peer and hostname verification are fully disabled. An on-path attacker can then present forged certificates for any hostname pyload fetches. This is a direct continuation of the fix family CVE-2026-33509 / CVE-2026-35463 / CVE-2026-35464 / CVE-2026-35586, each of which patched a different missed option in the same allowlist. This vulnerability is fixed in 0.5.0b3.dev100.
Problem Types
| Type | CWE ID | Description |
|---|
| CWE | CWE-295 | CWE-295: Improper Certificate Validation |
| CWE | CWE-306 | CWE-306: Missing Authentication for Critical Function |
| CWE | CWE-863 | CWE-863: Incorrect Authorization |
Type: CWE
Description: CWE-295: Improper Certificate Validation
Type: CWE
Description: CWE-306: Missing Authentication for Critical Function
Type: CWE
Description: CWE-863: Incorrect Authorization
Metrics
| Version | Base score | Base severity | Vector |
|---|
| 3.1 | 6.8 | MEDIUM | CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N |
Version: 3.1
Base score: 6.8
Base severity: MEDIUM
Vector: CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N