Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
cve-2024-38819 — Análise aprofundada de CVE-2024-38819, uma vulnerabilidade de travessia de arquivo Spring WebFlux, com detalhamento em nível de código, PoC e estratégias de mitigação incluindo filtros e regras de IPS. | Kitploit
Ferramentas/GitHubGitHub/skrkcb2/cve-2024-38819
Análise de VulnerabilidadesExploraçãoSegurança WebTestes de PenetraçãoPapers e PesquisaAprendizado e Educação
GitHubskrkcb2/cve-2024-38819

cve-2024-38819

Análise aprofundada de CVE-2024-38819, uma vulnerabilidade de travessia de arquivo Spring WebFlux, com detalhamento em nível de código, PoC e estratégias de mitigação incluindo filtros e regras de IPS.

Ver Repositório
9há 1 anoAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2024-38819

01. Visão geral de File-Traversal e WebFlux

  • 1) Visão geral de File-Traversal e WebFlux

    A vulnerabilidade File-Traversal (navegação de caminho, Path Traversal) é uma vulnerabilidade que permite a um atacante contornar as permissões do sistema de arquivos em uma aplicação web e acessar arquivos arbitrários, sendo um tipo de ataque designado como CWE-22.

    O Spring WebFlux é um módulo introduzido no Spring 5 que oferece suporte à programação reativa, permitindo o desenvolvimento de aplicações assíncronas não bloqueantes. O WebFlux.fn fornece roteamento de endpoints funcional, suportando uma configuração de roteamento concisa e flexível por meio de expressões lambda.

    A CVE-2024-38819 ocorre em aplicações que utilizam WebFlux.fn e WebMVC.fn. Este documento examina o fluxo de código de como essa vulnerabilidade ocorre no contexto do WebFlux e busca explorar medidas de mitigação correspondentes.

02. Análise da vulnerabilidade File-Traversal no ambiente WebFlux 6.13

  • 2.1 Análise de File-Traversal usando WebFlux 6.13

    É possível realizar um ataque de File-Traversal por meio de um exemplo de serviço de recurso estático (static resource) no Spring WebFlux 6.13.
    Ao examinar o exemplo, pretendemos entender como o File-Traversal é causado usando o Spring WebFlux.

1) Fluxo do ataque File-Traversal usando Spring WebFlux 6.13

descrição da imagem

[Figura 1] FileApplication.java

[Figura 1] No Spring WebFlux, todas as requisições que chegam a /static/** são servidas a partir do diretório C:/file do servidor. Aqui,
durante a chamada de RouterFunctions.resources, o problema começa no PathResourceLookupFunction.class do WebFlux, conforme [Figura 2] e [Figura 3].

descrição da imagem

[Figura 2] PathResourceLookupFunction.class - apply

[Figura 2] PathResourceLookupFunction - apply verifica se o caminho fornecido aponta para um recurso válido no Spring WebFlux e retorna esse recurso
na forma de Mono. Durante esse processo, várias etapas são executadas — correspondência de caminho, validação, decodificação de caminho, acesso ao recurso etc. — e a vulnerabilidade ocorre
na função isInvalidPath.

descrição da imagem

[Figura 3] PathResourceLookupFunction.class - isInvalidPath

[Figura 3] Em PathResourceLookupFunction - isInvalidPath, existe a condição StringUtils.cleanPath(path).contains("../"),
mas, ao solicitar http://localhost:8080/static/file/../Windows/System32/drivers/etc/hosts, essa condição não pode se tornar True. A razão é que

descrição da imagem

descrição da imagem

[Figura 4] StringUtils.class - cleanPath

[Figura 4] Em StringUtils.class - cleanPath, StringUtils.cleanPath(path) remove TOP_PATH("..") e insere o caminho em pathElements, com top tornando-se 0, portanto
uma sintaxe de ataque com ".." inserido uma vez é tratada como sintaxe normal. Assim, a função isInvalidPath da [Figura 3] retorna false, e

descrição da imagem

[Figura 5] PathResourceLookupFunction.class - apply - 2

descrição da imagem

[Figura 6] PathResourceLookupFunction.class - isResourceUnderLocation

[Figura 5] Com a chamada de cleanPath em isResourceUnderLocation, uma nova validação é realizada por meio de cleanPath na [Figura 6], sendo o caminho encaminhado na [Figura 5] C:/file../Windows/System32/drivers/etc/hosts.

descrição da imagem

[Figura 7] StringUtils.class - cleanPath -2

[Figura 7] Através do código da [Figura 7], o prefixo torna-se C:/ e o caminho é alterado para /Windows/System32/drivers/etc/hosts por meio da [Figura 4], de modo que o retorno final é
processado como C:/Windows/System32/drivers/etc/hosts.

2) Exemplo de ataque File-Traversal usando Spring WebFlux 6.13

Atualmente, o teste foi realizado no Windows com C:/file, mas esse caso é muito perigoso quando combinado com um link simbólico no Linux.
(Quando configurado com ../../ duas vezes, é uma lógica normal; a vulnerabilidade ocorre somente quando há um único ../) 20250207_150316

2-1) Exemplo 2 de ataque File-Traversal usando Spring WebFlux 6.13

Ataque com link simbólico no servidor Linux

 public RouterFunction<ServerResponse> staticResourceRouter() {
     return RouterFunctions.resources("/static/**", new FileSystemResource("/app/static/"));
 }

Após adicionar o link simbólico ln -s /static /app/static/link, realizar o ataque 20250208_101836

03. Medidas de mitigação

Até agora, verificamos o fluxo em que o File Traversal (CVE-2024-38819) é executado no ambiente Spring WebFlux. Por ser um método de ataque que rouba as informações do servidor,
as medidas de mitigação são importantes. Para isso, propomos a atualização para a versão mais recente, a criação de lógica adicional de verificação e o bloqueio por meio de IPS.

Baixar ferramenta