{"kind": "product", "path": "vulns/pypi/pyload-ng", "name": "pyload-ng", "product": "pyload-ng", "ecosystem": "PyPI", "items": [{"id": "GHSA-68w4-83fh-f2w8", "noindex": false, "published": "2026-10-09T17:09:15Z", "modified": "2026-10-09T17:15:04.825976777Z", "cvss": 8.1, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N", "severity": "high", "epss": null, "kev": false, "exploits": [], "stacks": [{"name": "python", "path": "vulns/stack/python", "slug": "python"}], "path": "vulns/ghsa-68w4-83fh-f2w8", "title": "pyload-ng: getUserData/get_userdata exposed at Perms.ANY allow any authenticated account to brute-force the administrator password", "description": "## Summary\n\n`Api.getUserData` (legacy) and `Api.get_userdata` are declared with `@permission(Perms.ANY)` and are reachable at `/api/getUserData` and `/api/get_userdata`. Because `Perms.ANY == 0` and pyLoad's permission check is a bitmask AND, that gate is a no-op: **every authenticated account passes, including one holding zero permission bits.**\n\nBoth methods are thin wrappers around `check_auth()`, which the maintainers deliberately restricted to administrators by omitting `@permission` (no entry in `perm_map`, so `is_authorized()` returns `False` for non-admins). The wrappers undo that protection.\n\nAn attacker holding the lowest-privileged", "references": ["https://github.com/pyload/pyload/security/advisories/GHSA-68w4-83fh-f2w8", "https://github.com/pyload/pyload/commit/b99d2a2f06135363ceb0aab16aac5025f138e658", "https://github.com/pyload/pyload"], "fixes": [], "products": [{"name": "pyload-ng", "path": "vulns/pypi/pyload-ng", "ecosystem": "PyPI"}]}, {"id": "GHSA-9q47-3cm2-2rp8", "noindex": false, "published": "2026-10-09T17:09:12Z", "modified": "2026-10-09T17:15:04.817149437Z", "cvss": null, "cvss_vector": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N", "severity": "unknown", "epss": null, "kev": false, "exploits": [], "stacks": [{"name": "python", "path": "vulns/stack/python", "slug": "python"}], "path": "vulns/ghsa-9q47-3cm2-2rp8", "title": "pyLoad: Rate-Limit Bypass and Audit-Log Spoofing via Trusted Client-Controlled `X-Forwarded-For` Header", "description": "## Summary\n\npyLoad determines the \"client IP\" used for its rate-limiting decorator and for its\nsecurity/audit logging by reading the client-supplied `X-Forwarded-For` (XFF) HTTP header and\ntaking the leftmost value. No trusted-proxy configuration exists (the Cheroot WSGI server faces\nclients directly, and there is no `ProxyFix` middleware). Because any client can freely set this\nheader, an attacker can (1) completely bypass rate limiting by rotating the header on each request,\nand (2) forge the source IP recorded in security logs for login and API-key authentication\nfailures, defeating IP-based blocking (e.g. fail2ban) and poisoning attributi", "references": ["https://github.com/pyload/pyload/security/advisories/GHSA-9q47-3cm2-2rp8", "https://github.com/pyload/pyload/commit/5dc6b628e2d8b9f42dde82f396e5b7a2b513f6d1", "https://github.com/pyload/pyload"], "fixes": [], "products": [{"name": "pyload-ng", "path": "vulns/pypi/pyload-ng", "ecosystem": "PyPI"}]}, {"id": "GHSA-jq7h-wrvp-3rgx", "noindex": false, "published": "2026-10-09T17:09:09Z", "modified": "2026-10-09T17:15:04.487483434Z", "cvss": 7.5, "cvss_vector": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H", "severity": "high", "epss": null, "kev": false, "exploits": [], "stacks": [{"name": "python", "path": "vulns/stack/python", "slug": "python"}], "path": "vulns/ghsa-jq7h-wrvp-3rgx", "title": "pyLoad: Privilege revocation and password change through the REST API do not invalidate the user's session", "description": "An admin who revokes a user's privileges through the REST API does not actually revoke them, because the session carrying those privileges is never invalidated.\n\npyLoad authorizes each request from values copied into the Flask session at login. set_session in webui/app/helpers.py writes role and perms once, and both login_required and the session branch of apikey_auth read them back from the session rather than from the database. The fix for GHSA-66hx-chf7-3332 handled this by deleting the user's session files, but the call was added only in webui/app/blueprints/json_blueprint.py, at the three WebUI form handlers. Api.set_user_permission and ", "references": ["https://github.com/pyload/pyload/security/advisories/GHSA-jq7h-wrvp-3rgx", "https://github.com/pyload/pyload/commit/3e726ba271a6b1015e3a0ea6dc7e46a8f71a62ad", "https://github.com/pyload/pyload"], "fixes": [], "products": [{"name": "pyload-ng", "path": "vulns/pypi/pyload-ng", "ecosystem": "PyPI"}]}, {"id": "GHSA-889w-m37p-88m5", "noindex": false, "published": "2026-10-09T17:09:07Z", "modified": "2026-10-09T17:15:04.764371508Z", "cvss": 7.5, "cvss_vector": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H", "severity": "high", "epss": null, "kev": false, "exploits": [], "stacks": [{"name": "python", "path": "vulns/stack/python", "slug": "python"}], "path": "vulns/ghsa-889w-m37p-88m5", "title": "pyLoad: Api.set_user_permission never invalidates the target's session", "description": "### Summary\nAn admin who revokes or downgrades a non-admin user's permissions through pyLoad's own documented\n`/api/<func>` RPC surface — e.g. `POST /api/set_user_permission` (or its legacy alias\n`/api/setUserPermission`) — updates the target's database row but never invalidates that user's\nexisting Flask cookie session. The demoted user keeps their pre-revocation `role`/`permission` bits\non every subsequent WebUI page load and every subsequent `/api/<func>` call made with that cookie,\nfor up to the default `session_lifetime` of ~31 days, or until they voluntarily log out. No action\nby the demoted user is required beyond already being logged ", "references": ["https://github.com/pyload/pyload/security/advisories/GHSA-889w-m37p-88m5", "https://github.com/pyload/pyload/commit/3e726ba271a6b1015e3a0ea6dc7e46a8f71a62ad", "https://github.com/pyload/pyload"], "fixes": [], "products": [{"name": "pyload-ng", "path": "vulns/pypi/pyload-ng", "ecosystem": "PyPI"}]}, {"id": "GHSA-p3pr-8f3m-4qp8", "noindex": false, "published": "2026-10-09T17:09:03Z", "modified": "2026-10-09T17:15:05.068909822Z", "cvss": 6.4, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N", "severity": "medium", "epss": null, "kev": false, "exploits": [], "stacks": [{"name": "python", "path": "vulns/stack/python", "slug": "python"}], "path": "vulns/ghsa-p3pr-8f3m-4qp8", "title": "pyLoad WindowsPhoneNotify addon: non-admin SETTINGS user triggers SSRF via unguarded http.client notification host", "description": "## Summary\n\npyLoad ships the WindowsPhoneNotify addon, whose `send()` method opens an HTTP connection to a host taken directly from the plugin's `pushurl` configuration value. A user holding the standard non-admin `SETTINGS` permission can set `pushurl` and `pushid` and enable the addon through the web API, since these plugin options are not in the admin-only option set. Once enabled, the addon activates dynamically without a restart, and any completed download (download events fire globally, not per user) causes the addon to send an HTTP POST to the configured host and path. The request is made with Python's `http.client.HTTPConnection`, so ", "references": ["https://github.com/pyload/pyload/security/advisories/GHSA-p3pr-8f3m-4qp8", "https://github.com/pyload/pyload", "https://osv.dev/vulnerability/GHSA-p3pr-8f3m-4qp8"], "fixes": [], "products": [{"name": "pyload-ng", "path": "vulns/pypi/pyload-ng", "ecosystem": "PyPI"}]}, {"id": "GHSA-fr26-jjhm-638c", "noindex": false, "published": "2026-10-09T17:08:58Z", "modified": "2026-10-09T17:15:05.166152072Z", "cvss": null, "cvss_vector": "CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N", "severity": "unknown", "epss": null, "kev": false, "exploits": [], "stacks": [{"name": "python", "path": "vulns/stack/python", "slug": "python"}], "path": "vulns/ghsa-fr26-jjhm-638c", "title": "pyLoad: Tar extraction creates device nodes and FIFOs (member types not filtered; tarfile extractall without filter=)", "description": "### Summary\n\n`UnTar._safe_extractall` — the hardening added for GHSA-mvwx-582f-56r7 — validates member\n**names** and symlink/hardlink **targets**, but never checks member **types**, and calls\n`tarfile.extractall` without a `filter=`. On Python < 3.14 the default extraction filter is\n`fully_trusted`, so a crafted tar containing device or FIFO entries makes pyLoad create\nthem on disk. When pyLoad runs as root (the official Docker deployment), a block-device\nmember grants raw disk access — full host compromise — reachable by any low-privileged user\nwho can trigger archive extraction (ADD to supply an archive, STATUS to invoke\n`ExtractArchive.ext", "references": ["https://github.com/pyload/pyload/security/advisories/GHSA-fr26-jjhm-638c", "https://github.com/pyload/pyload/commit/09eec1b431b6942a1917f094f2c77bfbf5637f60", "https://github.com/pyload/pyload"], "fixes": [], "products": [{"name": "pyload-ng", "path": "vulns/pypi/pyload-ng", "ecosystem": "PyPI"}]}, {"id": "GHSA-r44w-v6gf-x3p6", "noindex": false, "published": "2026-10-09T16:43:55Z", "modified": "2026-10-09T17:00:12.650106348Z", "cvss": 8.1, "cvss_vector": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "severity": "high", "epss": null, "kev": false, "exploits": [], "stacks": [{"name": "python", "path": "vulns/stack/python", "slug": "python"}], "path": "vulns/ghsa-r44w-v6gf-x3p6", "title": "pyLoad has an authentication bypass in API key validation (check_apikey cache)", "description": "## Summary\n\nThe API-key cache in `check_apikey()` allows an attacker to authenticate with a **forged API key** as long as the legitimate key for the same `key_id` has been used recently.\n\nOn a cache hit, the API key **secret is never verified**, resulting in a complete authentication bypass during the cache lifetime.\n\n---\n\n# Affected Components\n\n- `src/pyload/core/api/init.py`\n  - `Api.check_apikey()`\n\n- `src/pyload/core/database/apikey_database.py`\n  - `check_apikey()`\n  - `_check_key()`\n\nThe cache is used by normal API requests through:\n\n- `src/pyload/webui/app/helpers.py`\n\nwhich calls:\n\n```python\napi.check_apikey(api_key)\n```\n\nwithout prov", "references": ["https://github.com/pyload/pyload/security/advisories/GHSA-r44w-v6gf-x3p6", "https://github.com/pyload/pyload/commit/00d1372510f915f843b1574a3f1b28fbb724a42e", "https://github.com/pyload/pyload"], "fixes": ["0.5.0b3.dev101"], "products": [{"name": "pyload-ng", "path": "vulns/pypi/pyload-ng", "ecosystem": "PyPI"}]}, {"id": "CVE-2026-75597", "noindex": false, "published": "2026-10-09T16:41:21.081Z", "modified": "2026-10-09T17:04:31.503Z", "cvss": 5.3, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N", "severity": "medium", "epss": 0.00296, "kev": false, "exploits": [], "stacks": [{"name": "python", "path": "vulns/stack/python", "slug": "python"}], "path": "vulns/cve-2026-75597", "title": "pyLoad: Unauthenticated access to /web/<path:filename> bypasses authentication on sensitive templates and leaks internal error details via exception attribute typo", "description": "pyLoad is a free and open-source download manager written in Python. Prior to 0.5.0b3.dev101, the `/web/<path:filename>` route in `src/pyload/webui/app/blueprints/app_blueprint.py` renders Jinja2 templates without any authentication requirement. Every equivalent direct route (`/logs`, `/settings`, `/queue`, `/dashboard`, etc.) is protected by `@login_required`, but the underlying templates for all of these pages are accessible unauthenticated via this endpoint. Combined with an exception attribute typo in `src/pyload/webui/app/handlers.py` (`exc.desc` instead of `exc.description`), internal Jinja2 variable names are leaked in HTTP 500 respons", "references": ["https://github.com/pyload/pyload/security/advisories/GHSA-j92p-c242-7hfx", "https://github.com/pyload/pyload/commit/e80c940cd604e60d93e3164429d4fc4aac54468d", "https://nvd.nist.gov/vuln/detail/CVE-2026-75597"], "fixes": ["0.5.0b3.dev101"], "products": [{"name": "pyload-ng", "path": "vulns/pypi/pyload-ng", "ecosystem": "PyPI"}]}, {"id": "CVE-2026-48484", "noindex": false, "published": "2026-10-09T16:26:37.728Z", "modified": "2026-10-14T02:00:47.553Z", "cvss": 6.5, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H", "severity": "medium", "epss": 0.00312, "kev": false, "exploits": ["public-poc"], "stacks": [{"name": "python", "path": "vulns/stack/python", "slug": "python"}], "path": "vulns/cve-2026-48484", "title": "pyLoad: Lack of Input Size Validation Leads to Denial of Service (DoS) and Process Termination", "description": "pyLoad is a free and open-source download manager written in Python. Prior to 0.5.0b3.dev101, the API `rpc` function in `api_blueprint.py` handles `multipart/form-data` uploads by reading the whole content of the uploaded file into memory with `file.read()`. This occurs before the data is sent to the underlying function. Since there is no size limit set at this point, a large file upload can exhaust the server's available memory which led to process termination. Version 0.5.0b3.dev101 contains a patch.", "references": ["https://github.com/pyload/pyload/security/advisories/GHSA-vq8p-m3wm-gv5f", "https://github.com/pyload/pyload/commit/461cd66f30fa9e96453fb4d8c5c47467e452363c", "https://github.com/pyload/pyload/blob/8e447958b8a66c5899775e725a8b90bce6643004/src/pyload/webui/app/blueprints/api_blueprint.py#L73"], "fixes": ["0.5.0b3.dev101"], "products": [{"name": "pyload-ng", "path": "vulns/pypi/pyload-ng", "ecosystem": "PyPI"}]}, {"id": "CVE-2026-48987", "noindex": false, "published": "2026-09-15T14:41:43.887Z", "modified": "2026-09-15T14:59:08.509Z", "cvss": 6.5, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H", "severity": "medium", "epss": 0.00436, "kev": false, "exploits": [], "stacks": [{"name": "python", "path": "vulns/stack/python", "slug": "python"}], "path": "vulns/cve-2026-48987", "title": "pyLoad: Unbounded Memory Growth Leading to DoS and Potential DDoS in EventManager", "description": "pyLoad is a free and open-source download manager written in Python. Prior to 0.5.0b3.dev101, EventManager in src/pyload/core/managers/event_manager.py appends a Client object to the clients list for each unique uuid submitted to the authenticated getEvents API endpoint, but get_events does not invoke the available clean method to remove inactive clients. An authenticated user can repeatedly submit unique UUID values, causing retained client objects and process memory to grow without bound even after requests stop. The resulting memory exhaustion can trigger an operating-system out-of-memory termination of pyLoad or host-wide instability and ", "references": ["https://github.com/pyload/pyload/security/advisories/GHSA-c2f9-4mc8-j656", "https://github.com/pyload/pyload/commit/1b12dc7f348db8c144e0f39215680415e90ca4d2", "https://nvd.nist.gov/vuln/detail/CVE-2026-48987"], "fixes": [], "products": [{"name": "pyload-ng", "path": "vulns/pypi/pyload-ng", "ecosystem": "PyPI"}]}, {"id": "CVE-2026-48737", "noindex": false, "published": "2026-09-15T14:40:27.340Z", "modified": "2026-09-16T16:04:53.088Z", "cvss": 4.9, "cvss_vector": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:N/A:L", "severity": "medium", "epss": 0.00289, "kev": false, "exploits": [], "stacks": [{"name": "python", "path": "vulns/stack/python", "slug": "python"}], "path": "vulns/cve-2026-48737", "title": "pyLoad: SSRF guard bypass via IPv6 6to4/NAT64 transition wrappers of internal IPs", "description": "pyLoad is a free and open-source download manager written in Python. Prior to 0.5.0b3.dev101, is_global_address in src/pyload/core/utils/web/check.py relies on Python's global-address classification without examining IPv4 destinations embedded in 6to4 or NAT64 IPv6 addresses. A low-privileged user can submit an IPv6 literal through parse_urls to the pre-resolution is_global_host guard. Because host_to_ip is pinned to AF_INET, that guard does not evaluate a hostname's AAAA result. Separately, curl resolves hostnames before the pycurl PREREQFUNC in src/pyload/core/network/http/http_request.py applies the same vulnerable is_global_address check ", "references": ["https://github.com/pyload/pyload/security/advisories/GHSA-m5x5-28jr-gpjj", "https://github.com/pyload/pyload/commit/ba7491046b2d430732be490913e4cbf1f1e899c2", "https://nvd.nist.gov/vuln/detail/CVE-2026-48737"], "fixes": [], "products": [{"name": "pyload-ng", "path": "vulns/pypi/pyload-ng", "ecosystem": "PyPI"}]}, {"id": "CVE-2026-45306", "noindex": false, "published": "2026-05-28T17:12:59.835Z", "modified": "2026-05-28T18:49:45.693Z", "cvss": 6.5, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N", "severity": "medium", "epss": 0.00408, "kev": false, "exploits": [], "stacks": [{"name": "python", "path": "vulns/stack/python", "slug": "python"}], "path": "vulns/cve-2026-45306", "title": "pyLoad: Incomplete Fix for CVE-2026-33509 -storage_folder Bypass via Session Directory", "description": "pyLoad is a free and open-source download manager written in Python. 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). An authenticated attacker can set storage_folder to the session directory and download session files of other users via /files/get/, leading to account takeover. This vulnerability is fixed in 0.5.0b3.dev100.", "references": ["https://github.com/pyload/pyload/security/advisories/GHSA-w727-595x-pc3r", "https://nvd.nist.gov/vuln/detail/CVE-2026-45306"], "fixes": [], "products": [{"name": "pyload-ng", "path": "vulns/pypi/pyload-ng", "ecosystem": "PyPI"}]}, {"id": "CVE-2026-45348", "noindex": false, "published": "2026-05-28T17:12:20.497Z", "modified": "2026-05-28T18:51:28.477Z", "cvss": 8.7, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N", "severity": "high", "epss": 0.00353, "kev": false, "exploits": [], "stacks": [{"name": "python", "path": "vulns/stack/python", "slug": "python"}], "path": "vulns/cve-2026-45348", "title": "pyLoad: Stored XSS in Downloads view via unsanitized link URL in packages.js template literal", "description": "pyLoad is a free and open-source download manager written in Python. Prior to 0.5.0b3.dev100, the packages.js template at src/pyload/webui/app/themes/modern/templates/js/packages.js:172 interpolates a stored link URL into a template literal inside single-quoted HTML and then writes the result to the DOM via $(div).html(html). No escaping runs between the API value and innerHTML. An attacker (Alice) who can submit a package link puts a single quote plus event handler into the URL, breaks out of the attribute, and executes JavaScript in every operator's browser that opens the downloads view. The theme does not set a Content Security Policy that", "references": ["https://github.com/pyload/pyload/security/advisories/GHSA-fcjq-435v-jx94", "https://nvd.nist.gov/vuln/detail/CVE-2026-45348"], "fixes": [], "products": [{"name": "pyload-ng", "path": "vulns/pypi/pyload-ng", "ecosystem": "PyPI"}]}, {"id": "CVE-2026-46561", "noindex": false, "published": "2026-05-28T17:11:28.966Z", "modified": "2026-05-28T18:53:52.113Z", "cvss": 5, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N", "severity": "medium", "epss": 0.00293, "kev": false, "exploits": [], "stacks": [{"name": "python", "path": "vulns/stack/python", "slug": "python"}], "path": "vulns/cve-2026-46561", "title": "pyLoad: SSRF via HTTP Redirect Bypass in parse_urls API", "description": "pyLoad is a free and open-source download manager written in Python. Prior to 0.5.0b3.dev100, the PREREQFUNCTION-based private IP check was not applied to HTTPRequest (used by the parse_urls API). An authenticated attacker can supply a URL pointing to an attacker-controlled server that responds with a 302 redirect to an internal/private IP address, bypassing the is_global_host() check on the initial URL. This vulnerability is fixed in 0.5.0b3.dev100.", "references": ["https://github.com/pyload/pyload/security/advisories/GHSA-8rp3-xc6w-5qp5", "https://nvd.nist.gov/vuln/detail/CVE-2026-46561"], "fixes": ["0.5.0b3.dev100"], "products": [{"name": "pyload-ng", "path": "vulns/pypi/pyload-ng", "ecosystem": "PyPI"}]}, {"id": "CVE-2026-44226", "noindex": false, "published": "2026-05-11T16:36:35.156Z", "modified": "2026-05-11T18:27:05.705Z", "cvss": 5.3, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N", "severity": "medium", "epss": 0.00407, "kev": false, "exploits": [], "stacks": [{"name": "python", "path": "vulns/stack/python", "slug": "python"}], "path": "vulns/cve-2026-44226", "title": "pyLoad: Unauthenticated traceback disclosure via global exception handler in WebUI", "description": "pyLoad is a free and open-source download manager written in Python. Prior to 0.5.0b3.dev100, pyload-ng WebUI returns full Python traceback details to clients on unhandled exceptions. Because /web/<path:filename> is reachable without authentication and renders attacker-controlled template names, an unauthenticated user can reliably trigger a server exception (for example by requesting a non-existent template) and receive internal stack traces in the HTTP response. This vulnerability is fixed in 0.5.0b3.dev100.", "references": ["https://github.com/pyload/pyload/security/advisories/GHSA-c3gc-9pf2-84gg", "https://nvd.nist.gov/vuln/detail/CVE-2026-44226"], "fixes": ["0.5.0b3.dev100"], "products": [{"name": "pyload-ng", "path": "vulns/pypi/pyload-ng", "ecosystem": "PyPI"}]}, {"id": "CVE-2026-42315", "noindex": false, "published": "2026-05-11T16:35:32.099Z", "modified": "2026-05-11T20:16:10.716Z", "cvss": 8.1, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H", "severity": "high", "epss": 0.00495, "kev": false, "exploits": [], "stacks": [{"name": "python", "path": "vulns/stack/python", "slug": "python"}], "path": "vulns/cve-2026-42315", "title": "pyLoad: Path Traversal via Package Folder Name in set_package_data", "description": "pyLoad is a free and open-source download manager written in Python. Prior to 0.5.0b3.dev100, when passing a folder name in the set_package_data() API function call inside the data object with key \"_folder\", there is no sanitization at all, allowing a user with Perms.MODIFY to specify arbitrary directories as download locations for a package. This vulnerability is fixed in 0.5.0b3.dev100.", "references": ["https://github.com/pyload/pyload/security/advisories/GHSA-838g-gr43-qqg9", "https://nvd.nist.gov/vuln/detail/CVE-2026-42315"], "fixes": ["0.5.0b3.dev100"], "products": [{"name": "pyload-ng", "path": "vulns/pypi/pyload-ng", "ecosystem": "PyPI"}]}, {"id": "CVE-2026-42314", "noindex": false, "published": "2026-05-11T16:34:05.918Z", "modified": "2026-05-11T18:33:46.606Z", "cvss": 6.5, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N", "severity": "medium", "epss": 0.00423, "kev": false, "exploits": [], "stacks": [{"name": "python", "path": "vulns/stack/python", "slug": "python"}], "path": "vulns/cve-2026-42314", "title": "pyLoad: Path Traversal via Package Folder Name", "description": "pyLoad is a free and open-source download manager written in Python. Prior to 0.5.0b3.dev100, package folder names are sanitized using insufficient string replacement. The pattern ....// becomes .._ after replacement (partial removal), leaving .. which can be exploited when the path is later resolved by the OS. This vulnerability is fixed in 0.5.0b3.dev100.", "references": ["https://github.com/pyload/pyload/security/advisories/GHSA-97r3-5w84-r4q8", "https://nvd.nist.gov/vuln/detail/CVE-2026-42314"], "fixes": ["0.5.0b3.dev100"], "products": [{"name": "pyload-ng", "path": "vulns/pypi/pyload-ng", "ecosystem": "PyPI"}]}, {"id": "CVE-2026-42312", "noindex": false, "published": "2026-05-11T16:32:00.329Z", "modified": "2026-05-11T19:06:12.697Z", "cvss": 6.8, "cvss_vector": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N", "severity": "medium", "epss": 0.0019, "kev": false, "exploits": [], "stacks": [{"name": "python", "path": "vulns/stack/python", "slug": "python"}], "path": "vulns/cve-2026-42312", "title": "pyload-ng: non-admin SETTINGS users can disable outbound TLS peer verification", "description": "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 certific", "references": ["https://github.com/pyload/pyload/security/advisories/GHSA-ccxc-x975-4hh9", "https://nvd.nist.gov/vuln/detail/CVE-2026-42312"], "fixes": ["0.5.0b3.dev100"], "products": [{"name": "pyload-ng", "path": "vulns/pypi/pyload-ng", "ecosystem": "PyPI"}]}, {"id": "CVE-2026-42313", "noindex": false, "published": "2026-05-11T16:30:39.564Z", "modified": "2026-05-12T13:51:11.248Z", "cvss": 8.3, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L", "severity": "high", "epss": 0.00386, "kev": false, "exploits": [], "stacks": [{"name": "python", "path": "vulns/stack/python", "slug": "python"}], "path": "vulns/cve-2026-42313", "title": "pyload-ng: non-admin SETTINGS users can redirect all outbound traffic through an attacker-controlled proxy", "description": "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 allowlist contains (\"proxy\", \"username\") and (\"proxy\", \"password\") — which protect the proxy credentials — but it does not include (\"proxy\", \"enabled\"), (\"proxy\", \"host\"), (\"proxy\", \"port\"), or (\"proxy\", \"type\"). Any authenticated user with the non-admin SETTINGS permission can enable proxying and point pyload at any host they control. From that point, every", "references": ["https://github.com/pyload/pyload/security/advisories/GHSA-pg67-9wjv-mr85", "https://nvd.nist.gov/vuln/detail/CVE-2026-42313"], "fixes": ["0.5.0b3.dev100"], "products": [{"name": "pyload-ng", "path": "vulns/pypi/pyload-ng", "ecosystem": "PyPI"}]}, {"id": "CVE-2026-41133", "noindex": false, "published": "2026-04-21T23:41:06.258Z", "modified": "2026-04-22T18:35:41.768Z", "cvss": 8.8, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "severity": "high", "epss": 0.00467, "kev": false, "exploits": [], "stacks": [{"name": "python", "path": "vulns/stack/python", "slug": "python"}], "path": "vulns/cve-2026-41133", "title": "pyLoad has Stale Session Privilege After Role/Permission Change (Privilege Revocation Bypass)", "description": "pyLoad is a free and open-source download manager written in Python. Versions up to and including 0.5.0b3.dev97 cache `role` and `permission` in the session at login and continues to authorize requests using these cached values, even after an admin changes the user's role/permissions in the database. As a result, an already logged-in user can keep old (revoked) privileges until logout/session expiry, enabling continued privileged actions. This is a core authorization/session-consistency issue and is not resolved by toggling an optional security feature. Commit e95804fb0d06cbb07d2ba380fc494d9ff89b68c1 contains a fix for the issue.", "references": ["https://github.com/pyload/pyload/security/advisories/GHSA-66hx-chf7-3332", "https://github.com/pyload/pyload/commit/e95804fb0d06cbb07d2ba380fc494d9ff89b68c1", "https://nvd.nist.gov/vuln/detail/CVE-2026-41133"], "fixes": [], "products": [{"name": "pyload-ng", "path": "vulns/pypi/pyload-ng", "ecosystem": "PyPI"}]}], "total": 58, "unknown_count": 0, "release_unconfirmed": false, "page": 1, "pages": 3, "filtered": false, "noindex": false, "filters": {}, "page_size": 20, "products": [{"name": "pyload-ng", "path": "vulns/pypi/pyload-ng", "ecosystem": "PyPI"}], "stacks": [{"name": "system", "path": "vulns/stack/system", "slug": "system"}, {"name": "web", "path": "vulns/stack/web", "slug": "web"}, {"name": "php", "path": "vulns/stack/php", "slug": "php"}, {"name": "python", "path": "vulns/stack/python", "slug": "python"}, {"name": "node", "path": "vulns/stack/node", "slug": "node"}, {"name": "database", "path": "vulns/stack/database", "slug": "database"}, {"name": "containers", "path": "vulns/stack/containers", "slug": "containers"}, {"name": "network", "path": "vulns/stack/network", "slug": "network"}, {"name": "applications", "path": "vulns/stack/applications", "slug": "applications"}], "versions": ["0.20", "0.5.0b3.dev101", "0.5.0b3.dev100", "0.5.0b3.dev99", "0.5.0b3.dev98", "0.5.0b3.dev97", "0.5.0b3.dev96", "0.5.0b3.dev95", "0.5.0b3.dev94", "0.5.0b3.dev93", "0.5.0b3.dev92", "0.5.0b3.dev91"], "stats": {"recent": 9, "kev": 0}, "lastmod": "2026-10-14T02:00:47.553Z", "early_advisories": [], "license": "Sie dürfen die Auswahl von PatchFirst und unsere Ergänzungen (Prioritäten, Frühwarnungen, Texte, Zusammenfassungen und Aggregate) für eigene Zwecke einschließlich interner geschäftlicher Aufgaben frei nutzen. Weiterverkauf, kommerzielle Verbreitung und massenhafte Spiegelung dieser Auswahl oder Ergänzungen erfordern eine schriftliche Vereinbarung mit dem Betreiber. Nennen Sie bei jeder Nutzung oder Veröffentlichung der Auswahl oder unserer Ergänzungen PatchFirst (https://patchfirst.dev/vulns/) mit diesem Link zur Feedseite Ihrer Region als Quelle. Originaleinträge aus offenen Quellen unterliegen weiterhin ihren jeweiligen Lizenzen und Bedingungen. Diese Bedingungen beschränken Ihre Rechte an den Originaldaten nicht, die Sie direkt bei den Quellen beziehen können.", "terms_url": "https://patchfirst.dev/de/vulns/#feed-terms", "attribution": {"name": "PatchFirst", "url": "https://patchfirst.dev/vulns/"}, "source_changes": "PatchFirst wählt Einträge aus, normalisiert und kombiniert sie; Zusammenfassungen und Übersetzungen können hinzukommen. Nachrichten werden im jeweiligen Eintrag mit einem Link zur Originalquelle belegt.", "sources": [{"id": "cve", "name": "CVE List / CVE.org", "url": "https://www.cve.org/", "license": "CVE Terms of Use", "terms_url": "https://www.cve.org/Legal/TermsOfUse", "notice": "Copyright © 1999–2021, The MITRE Corporation. LICENSE Submissions : For all materials you submit to the Common Vulnerabilities and Exposures (CVE™), you hereby grant to The MITRE Corporation (MITRE) and all CVE Numbering Authorities (CNAs) a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute such materials and derivative works. Unless required by applicable law or agreed to in writing, you provide such materials on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. CVE Usage : MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE™). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. DISCLAIMERS ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN \"AS IS\" BASIS AND THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE MITRE CORPORATION, ITS BOARD OF TRUSTEES, OFFICERS, AGENTS, AND EMPLOYEES, DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION THEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE."}, {"id": "osv", "name": "OSV", "url": "https://osv.dev/", "terms_url": "https://google.github.io/osv.dev/data/", "terms": "Die Lizenzen der Ursprungsdatenbanken unterscheiden sich; siehe Quellenkatalog."}, {"id": "kev", "name": "CISA KEV", "url": "https://www.cisa.gov/known-exploited-vulnerabilities-catalog", "license": "CC0-1.0", "terms_url": "https://github.com/cisagov/kev-data/blob/develop/LICENSE"}, {"id": "epss", "name": "FIRST EPSS", "url": "https://www.first.org/epss/", "terms_url": "https://www.first.org/epss/faq", "terms": "Frei zugängliche Bewertungen; Quellenangabe erbeten (FIRST EPSS, Bewertungen von Empirical Security)."}, {"id": "github-advisory", "name": "GitHub Advisory Database", "url": "https://github.com/advisories", "license": "CC-BY-4.0", "terms_url": "https://github.com/github/advisory-database/blob/main/LICENSE.md"}, {"id": "exploitdb", "name": "Exploit-DB", "url": "https://www.exploit-db.com/", "license": "GPL-2.0", "terms_url": "https://gitlab.com/exploit-database/exploitdb/-/blob/main/LICENSE.md"}, {"id": "metasploit", "name": "Metasploit", "url": "https://github.com/rapid7/metasploit-framework", "license": "BSD-3-Clause", "terms_url": "https://github.com/rapid7/metasploit-framework/blob/master/LICENSE", "notice": "Copyright (c) 2006-2026, Rapid7, Inc.\nLicense: BSD-3-clause\n Redistribution and use in source and binary forms, with or without modification,\n are permitted provided that the following conditions are met:\n .\n * Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n .\n * Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n .\n * Neither the name of Rapid7, Inc. nor the names of its contributors\n may be used to endorse or promote products derived from this software\n without specific prior written permission.\n .\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."}, {"id": "nuclei", "name": "Nuclei Templates", "url": "https://github.com/projectdiscovery/nuclei-templates", "license": "MIT", "terms_url": "https://github.com/projectdiscovery/nuclei-templates/blob/main/LICENSE.md", "notice": "MIT License\n\nCopyright (c) 2025 ProjectDiscovery, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE."}, {"id": "linux-kernel", "name": "Linux kernel releases", "url": "https://www.kernel.org/", "license": "CC-BY-SA-4.0", "terms_url": "https://www.kernel.org/legal.html", "notice": "Copyright (C) 1997-2014 by The Linux Kernel Organization, Inc."}]}