[ Início ]
Vol. 2 | N. 5 | Pp. 172–174 | 2026 | ISSN xxxx-xxxx
Alerta: Sistemas Baseados em FastAPI Podem Estar Inseguros (CVE-2026-48710)
FastAPI é uma ferramenta diariamente utilizada por desenvolvedores Python para a criação rápida e eficiente de APIs. Essa biblioteca poderosa permite criar desde pequenas APIs para sistemas simples, até sistemas altamente complexos e industriais. A vulnerabilidade CVE-2026-48710 [1] afeta uma das bibliotecas utilizadas na criação do FastAPI: A Starlette.
Como a Vulnerabilidade é Explorada e Sua Origem
Starlette é um framework/toolkit de ASGI (Asynchronous Server Gateway Interface) leve ideal para a construção de serviços assíncronos web em Python, justamente a necessidade da biblioteca FastAPI.
Antes da versão 1.0.1, o cabeçalho HTTP Host¹ não era validado antes de ser utilizado na reconstrução de URL da requisição. Como o algoritmo de roteamento depende do caminho bruto da requisição HTTP, enquanto a requisição URL é reconstruída a partir do cabeçalho de Host, um header malformado poderia fazer com que o caminho de requisição URL fosse diferente do caminho realmente requisitado.
Isso significa que middlewares e endpoints que aplicam restrições de segurança com base na URL de requisição poderiam ser contornados. Em outras palavras, um atacante poderia manipular o header Host para burlar controles de acesso ou validações de rota.
A vulnerabilidade foi descoberta pela empresa X41 D-Sec utilizando o sistema autônomo Nemesis, e, publicada no dia 26 de maio de 2026. Sua PoC pode ser encontrada em badhost.org ou github.com.
¹ enviado quando se realiza uma requisição HTTP. Contém informações sobre o host de destino, o caminho solicitado e a versão do HTTP.
Versões Afetadas e Sua Mitigação
Versões do framework Starlette anteriores à 1.0.1 são afetadas por essa vulnerabilidade. Além disso, para projetos utilizando FastAPI é necessário verificar manualmente a versão do Starlette utilizada. Visto que versões atuais do FastAPI (eg. 0.136.3) utilizam versões do Starlette superior a 1.1.0, não sendo mais vulneráveis.
Para mitigar [3] a vulnerabilidade é sugerido:
-
Atualizar o FastAPI e o Starlette para versões que utilizem o Starlette 1.0.1 ou superior
-
Evitar autenticação baseada em caminho (
request.url.path)- Middlewares que decidem autenticação por esse meio são inerentemente frágeis. A autenticação deve ser atrelada ao endpoint em si e não ao caminho utilizado para alcançá-lo. Use
requires()(Starlette) ouDepends()/Security()(FastAPI), que aplicam controle de acesso no nível do endpoint.
- Middlewares que decidem autenticação por esse meio são inerentemente frágeis. A autenticação deve ser atrelada ao endpoint em si e não ao caminho utilizado para alcançá-lo. Use
-
Implementar um reverse proxy na frente do ASGI
-
Ferramentas como Nginx, Caddy, Traefik ou HAProxy validam e normalizam o header
Host, bloqueando entradas maliciosas antes que chegem à aplicação.
-
-
Usar
scope["path"]em vez derequest.url.path(se usar middleware)-
O valor de
scope["path"]vem da linha da requisição HTTP e não pode ser manipulado via headerHost.
-
Detalhes Técnicos
Quando um cliente faz uma requisição para, por exemplo, http://example.com/foo, ele envia:
GET /foo HTTP/1.1Host: example.com
Em versões vulneráveis do Starlette a reconstrução do URL é feita concatenando http://{host}{path} e depois reprocessando esse valor. Mas é nesse momento que surge o problema, o header Host deveria conter apenas um formato válido de host (com possível porta), conforme definido nos RFCs 9112 e 3986.
Quando o Host contém caracteres inválidos, como /, ? ou #, esses caracteres acabam alterando a interpretação da URL durante o parsing, mudando os limites entre caminho, query e fragmento.
Exemplo de Exploração
Considere a seguinte requisição manipulada:
-
GET /foo HTTP/1.1 -
Host: example.com/abc?bar=
O Starlette reconstruía isso como:
-
http://example.com/abc?bar=/foo
Ao reprocessar essa URL:
-
O caminho interpretado passa a ser
/abc. -
Contudo, o servidor originalmente recebeu
/foo.
O roteamento continua funcionando corretamente com base no caminho real (/foo), e o endpoint correspondente a /foo é executado normalmente. Porém, qualquer middleware ou lógica que utilize request.url.path verá /abc. Assim, o sistema executa um endpoint protegido (/foo), mas valida as permissões com base em um caminho diferente (/abc).
Na prática, isso permite contornar controles de acesso baseados em caminho (path-based authorization), abrindo espaço para bypass de autenticação ou autorização [2].
Referências
[1] MITRE. CVE-2026-48710. Disponível em: <https://www.cve.org/CVERecord?id=CVE-2026-48710>. Acesso em: 28 maio. 2026.
[2] KLUDEX. Missing Host header validation poisons request.url.path, bypassing path-based security checks. Disponível em: <https://github.com/Kludex/starlette/security/advisories/GHSA-86qp-5c8j-p5mr>. Acesso em: 28 maio. 2026.
[3] X41 D-SEC GMBH; BREACH, N. BadHost Scanner – CVE-2026-48710. Disponível em: <https://badhost.org/>. Acesso em: 28 maio. 2026.
Tags: Alerta, CVE, GitHub, PoC, Vulnerabilidades.
Categorias: Ataques, CVE, PyPI, Python, Supply Chain.
Alerta: Falha Crítica no Ghost CMS Permite Abuso da Admin API
Uma vulnerabilidade crítica no Ghost CMS vem sendo explorada para comprometer sites e abusar da confiança de páginas legítimas na…
Atualização recomendada: FastNetMon corrige múltiplas vulnerabilidades críticas
A equipe do FastNetMon [1] anunciou a disponibilização de uma nova versão da edição Community [2] que corrige um conjunto…
Um ataque sofisticado de Supply Chain (cadeia de suprimentos) direcionado aos pacotes de localização do Laravel Lang expôs desenvolvedores a…
Pesquisadores identificaram um novo e sofisticado tipo de Scareware para navegadores, denominado de CypherLoc, o novo scareware ja fez 2,8…
Alerta: Vulnerabilidade de 2017 do PHPunit continua sendo explorada e apresenta EPSS de mais de 92%
A CVE-2017-9841 representa uma vulnerabilidade no framework PHPUnit, um framework PHP amplamente utilizado. Mesmo existindo uma CVE associada à vulnerabilidade,…
N-day da Fortinet ainda ativamente explorada (CVE-2026-21643)
Junto ao crescimento constante do catalogo KEV ainda há vulnerabilidades já publicadas que continuam sendo exploradas. Este e o caso…