{"schema":"threatline.record/2","record":{"id":"CVE-2026-48484","aliases":["GHSA-vq8p-m3wm-gv5f","PYSEC-2026-4293"],"summary":"pyLoad: Lack of Input Size Validation Leads to Denial of Service (DoS) and Process Termination","details":"## Description:\nThe 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.\n\n## VulnerableCode & Path: \nhttps://github.com/pyload/pyload/blob/8e447958b8a66c5899775e725a8b90bce6643004/src/pyload/webui/app/blueprints/api_blueprint.py#L73  \n\n## Steps to Reproduce:\n1. Log in to pyLoad (or use an API key, here i used api to communicate).\n2. Prepare a large file (e.g., 10GB) .\n  ```bash\ntruncate -s 10G large_file.bin\n  ```\n3. Send a multipart request to an API function that accepts a file, such as `check_online_status_container`:\n```bash\ncurl -X POST \"http://localhost:8000/api/rpc\" \\\n     -H \"X-API-Key: YOUR_API_KEY\" \\\n     -F \"func=check_online_status_container\" \\\n     -F \"container=@large_file.bin\"\n```\n4. Monitor the server's memory usage. The process will attempt to allocate memory for the entire file and last the process will be killed by the kernel.\n<img width=\"1902\" height=\"610\" alt=\"dos-process-kill-poc\" src=\"https://github.com/user-attachments/assets/2b9bfd0f-5b9f-48dd-983f-f97dfcc358cc\" />\n\n## Impact\n- **Denial of Service (DoS)**: The pyLoad process will be killed by the Operating System's Out-Of-Memory (OOM) killer, or the entire system may become unresponsive due to swap thrashing or memory exhaustion.\n- **Service Instability**: Any active downloads or tasks will be interrupted.\n\n## Mitigations\n- **Implement File Size Limits**: Enforce a maximum size for uploaded files in the web server configuration (e.g., Nginx `client_max_body_size`).","categories":["Libraries & packages"],"product":"pyload-ng","vendor":"pyload","ecosystem":"pip","affected_ranges":[{"source":"GitHub Advisory Database","source_url":"https://github.com/advisories/GHSA-vq8p-m3wm-gv5f","source_modified_at":"2026-10-09T16:26:55Z","fetched_at":"2026-10-23T18:42:43.628194Z","package":{"ecosystem":"pip","name":"pyload-ng"},"range":"< 0.5.0b3.dev101"},{"source":"CVE List","source_url":"https://www.cve.org/CVERecord?id=CVE-2026-48484","source_modified_at":"2026-10-14T02:00:47.553Z","fetched_at":"2026-10-23T18:45:31.882637Z","product":"pyload","vendor":"pyload","versions":[{"version":"< 0.5.0b3.dev101","status":"affected"}],"defaultStatus":null},{"source":"OSV","source_url":"https://osv.dev/vulnerability/GHSA-vq8p-m3wm-gv5f","source_modified_at":"2026-10-15T14:56:20.013961845Z","fetched_at":"2026-10-23T18:42:43.628194Z","package":{"ecosystem":"PyPI","name":"pyload-ng","purl":"pkg:pypi/pyload-ng"},"ranges":[{"events":[{"introduced":"0"},{"fixed":"0.5.0b3.dev101"}],"type":"ECOSYSTEM"}],"versions":["0.5.0a5.dev528","0.5.0a5.dev532","0.5.0a5.dev535","0.5.0a5.dev536","0.5.0a5.dev537","0.5.0a5.dev539","0.5.0a5.dev540","0.5.0a5.dev545","0.5.0a5.dev562","0.5.0a5.dev564","0.5.0a5.dev565","0.5.0a6.dev570","0.5.0a6.dev578","0.5.0a6.dev587","0.5.0a7.dev596","0.5.0a8.dev602","0.5.0a9.dev615","0.5.0a9.dev629","0.5.0a9.dev632","0.5.0a9.dev641","0.5.0a9.dev643","0.5.0a9.dev655","0.5.0a9.dev806","0.5.0b1.dev1","0.5.0b1.dev2","0.5.0b1.dev3","0.5.0b1.dev4","0.5.0b1.dev5","0.5.0b2.dev10","0.5.0b2.dev11","0.5.0b2.dev12","0.5.0b2.dev9","0.5.0b3.dev100","0.5.0b3.dev13","0.5.0b3.dev14","0.5.0b3.dev17","0.5.0b3.dev18","0.5.0b3.dev19","0.5.0b3.dev20","0.5.0b3.dev21","0.5.0b3.dev22","0.5.0b3.dev24","0.5.0b3.dev26","0.5.0b3.dev27","0.5.0b3.dev28","0.5.0b3.dev29","0.5.0b3.dev30","0.5.0b3.dev31","0.5.0b3.dev32","0.5.0b3.dev33"]}],"fixed_versions":[{"source":"GitHub Advisory Database","source_url":"https://github.com/advisories/GHSA-vq8p-m3wm-gv5f","source_modified_at":"2026-10-09T16:26:55Z","fetched_at":"2026-10-23T18:42:43.628194Z","package":{"ecosystem":"pip","name":"pyload-ng"},"version":"0.5.0b3.dev101"},{"source":"OSV","source_url":"https://osv.dev/vulnerability/GHSA-vq8p-m3wm-gv5f","source_modified_at":"2026-10-15T14:56:20.013961845Z","fetched_at":"2026-10-23T18:42:43.628194Z","package":{"ecosystem":"PyPI","name":"pyload-ng","purl":"pkg:pypi/pyload-ng"},"version":"0.5.0b3.dev101"}],"cvss":6.5,"severity":"Medium","kev":{"listed":false},"epss":{"probability":0.00312,"percentile":0.22915,"score_date":"2026-10-23"},"published_at":"2026-10-09T16:26:37.728Z","modified_at":"2026-10-15T14:56:20.013961845Z","provenance":[{"source":"GitHub Advisory Database","url":"https://github.com/advisories/GHSA-vq8p-m3wm-gv5f","fetched_at":"2026-10-23T18:42:43.628194Z","source_modified_at":"2026-10-09T16:26:55Z"},{"source":"CVE List","url":"https://www.cve.org/CVERecord?id=CVE-2026-48484","fetched_at":"2026-10-23T18:45:31.882637Z","source_modified_at":"2026-10-14T02:00:47.553Z"},{"source":"OSV","url":"https://osv.dev/vulnerability/GHSA-vq8p-m3wm-gv5f","fetched_at":"2026-10-23T18:42:43.628194Z","source_modified_at":"2026-10-15T14:56:20.013961845Z"},{"source":"EPSS","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-48484","fetched_at":"2026-10-23T18:42:43.628194Z","source_modified_at":"2026-10-23"}],"sources":["GitHub Advisory Database","CVE List","OSV","EPSS"],"references":[{"source":"CVE List","url":"https://github.com/pyload/pyload/security/advisories/GHSA-vq8p-m3wm-gv5f","tags":["exploit"]},{"source":"CVE List","url":"https://github.com/pyload/pyload/commit/461cd66f30fa9e96453fb4d8c5c47467e452363c","tags":["x_refsource_MISC"]},{"url":"https://github.com/advisories/GHSA-vq8p-m3wm-gv5f","source":"GitHub Advisory Database"},{"source":"CVE List","url":"https://github.com/pyload/pyload/blob/8e447958b8a66c5899775e725a8b90bce6643004/src/pyload/webui/app/blueprints/api_blueprint.py#L73","tags":["x_refsource_MISC"]}],"locations":[],"motoko_assessment":{"status":"requires_architecture_review","automatic_remediation":false},"cve_state":"PUBLISHED","ssvc":{"exploitation":"poc","automatable":"no","technical_impact":"partial","assessed_at":"2026-10-14T02:00:22.526885Z"},"classification":{"method":"product-first software-layer rules","rules_version":"2.1","matched_on":"ecosystem","confidence":"heuristic","reviewed":false},"change_timestamp":"2026-10-15T14:56:20.013961845Z","content_hash":"7e087ea3376ff4ee5c3c3c0ee1c15fe05f4c80ec2bc7f64c53fe45727351b9d5"}}
