{"id":"CVE-2026-33509","published":"2026-03-24T18:55:37Z","modified":"2026-03-26T19:52:12Z","title":"pyload-ng: SETTINGS Permission Users Can Achieve Remote Code Execution via Unrestricted Reconnect Script Configuration","vendor":"pyload","product":"pyload","tier":"tail","description":{"text":"pyLoad is a free and open-source download manager written in Python. From version 0.4.0 to before version 0.5.0b3.dev97, the set_config_value() API endpoint allows users with the non-admin SETTINGS permission to modify any configuration option without restriction. The reconnect.script config option controls a file path that is passed directly to subprocess.run() in the thread manager's reconnect logic. A SETTINGS user can set this to any executable file on the system, achieving Remote Code Execution. The only validation in set_config_value() is a hardcoded check for general.storage_folder — all other security-critical settings including reconnect.script are writable without any allowlist or path restriction. This issue has been patched in version 0.5.0b3.dev97.","provenance":"source","from":"CVE.org"},"cvss":{"score":7.5,"severity":"HIGH","version":"3.1","vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","provenance":"source","from":"CVE.org CNA"},"epss":{"score":0.0055,"percentile":0.45883,"provenance":"source"},"cwes":[{"id":"CWE-269","name":"Improper Privilege Management"}],"references":[{"url":"https://github.com/pyload/pyload/security/advisories/GHSA-r7mc-x6x7-cqxx","tags":["x_refsource_CONFIRM"]}],"priority":{"score":14.4,"factors":[{"name":"EPSS percentile","points":9.18},{"name":"CVSS severity","points":5.25}]},"vendorSlug":"pyload","affectedVersions":[{"vendor":"pyload","product":"pyload","versions":[">= 0.4.0, < 0.5.0b3.dev97"]}],"affected":[{"ecosystem":"PyPI","package":"pyload-ng","vulnerableRanges":[">=0.4.0, <=0.5.0b3.dev96"],"patched":[],"from":["GHSA-r7mc-x6x7-cqxx","PYSEC-2026-2996"],"provenance":"source"}],"euvd":{"id":"EUVD-2026-20072","exploited":false,"provenance":"source"},"lineage":{"familyId":"fam-pyload-cve-2026-33509","children":[{"from":"CVE-2026-33509","to":"CVE-2026-35464","relation":"related","confidence":"high","kind":"lineage","evidence":[{"kind":"osv-related","provenance":"source","id":"GHSA-r7mc-x6x7-cqxx","via":"related"},{"kind":"osv-related","provenance":"source","id":"GHSA-4744-96p5-mp2j","via":"reference","url":"https://github.com/pyload/pyload/security/advisories/GHSA-r7mc-x6x7-cqxx"},{"kind":"osv-related","provenance":"source","id":"PYSEC-2026-2989","via":"reference","url":"https://github.com/pyload/pyload/security/advisories/GHSA-r7mc-x6x7-cqxx"}]},{"from":"CVE-2026-33509","to":"CVE-2026-42312","relation":"related","confidence":"high","kind":"lineage","evidence":[{"kind":"osv-related","provenance":"source","id":"GHSA-ccxc-x975-4hh9","via":"reference","url":"https://github.com/advisories/GHSA-r7mc-x6x7-cqxx"}]},{"from":"CVE-2026-33509","to":"CVE-2026-42313","relation":"related","confidence":"high","kind":"lineage","evidence":[{"kind":"osv-related","provenance":"source","id":"GHSA-pg67-9wjv-mr85","via":"reference","url":"https://github.com/advisories/GHSA-r7mc-x6x7-cqxx"}]},{"from":"CVE-2026-33509","to":"CVE-2026-45306","relation":"incomplete-fix","confidence":"high","kind":"lineage","evidence":[{"kind":"text","provenance":"source","relation":"incomplete-fix","quote":"Prior to 0.5.0b3.dev100, the fix for CVE-2026-33509 prevents setting storage_folder inside PKGDIR or userdir, but does NOT protect the Flask session directory (/tmp/pyLoad/flask).","from":"CVE.org","in":"CVE-2026-45306"},{"kind":"osv-related","provenance":"source","id":"GHSA-w727-595x-pc3r","via":"reference","url":"https://github.com/advisories/GHSA-r7mc-x6x7-cqxx"},{"kind":"osv-related","provenance":"source","id":"PYSEC-2026-2998","via":"reference","url":"https://github.com/advisories/GHSA-r7mc-x6x7-cqxx"}]}]}}