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-31133 — CVE-2025-31133 PoC | Kitploit
Ferramentas/GitHubGitHub/skynet-f-nvidia/cve-2025-31133
Privilege EscalationVulnerability AnalysisExploitationPenetration TestingRed TeamingContainer Escape
GitHubskynet-f-nvidia/cve-2025-31133

CVE-2025-31133

CVE-2025-31133 PoC

Ver Repositório
21há 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

Exploit PoC CVE-2025-31133

Este documento explica a funcionalidade do script de Prova-de-Conceito (PoC) fornecido para a vulnerabilidade runc CVE-2025-31133.

Resumo

  • Vulnerabilidade: CVE-2025-31133 - Uma condição de corrida de link simbólico no tratamento de maskedPaths do runc.
  • Impacto: Um contêiner malicioso pode contornar as proteções de maskedPaths, permitindo que ele escreva em arquivos sensíveis do sistema host. Isso constitui uma escape de contêiner.
  • Objetivo do PoC: Demonstrar a vulnerabilidade de forma segura, modificando o arquivo /proc/sys/kernel/core_pattern do host a partir de dentro de um contêiner.
  • Segurança: Este PoC é não destrutivo. Ele apenas escreve a string "pwned" no arquivo alvo e não executa código arbitrário no host. Também fornece instruções para restaurar o valor original.

Explicação da Vulnerabilidade

O recurso maskedPaths na especificação OCI de um contêiner (config.json) é um mecanismo de segurança projetado para impedir que contêineres acessem arquivos sensíveis do sistema. Ele funciona montando por bind /dev/null (um arquivo de dispositivo vazio) sobre esses caminhos sensíveis dentro do contêiner, tornando-os efetivamente ilegíveis e não graváveis.

A vulnerabilidade (CVE-2025-31133) é uma condição de corrida Time-of-Check to Time-of-Use (TOCTOU). O exploit funciona da seguinte forma:

  1. A Falha: Quando o runc configura o contêiner, ele se prepara para usar o arquivo dev/null do rootfs do contêiner como fonte para a montagem por bind que irá mascarar o caminho sensível (por exemplo, /proc/sys/kernel/core_pattern).
  2. A Corrida: Existe uma pequena janela de tempo entre quando o runc resolve o caminho para rootfs/dev/null e quando ele realmente executa a operação de montagem.
  3. O Exploit: Um atacante pode criar um script no host que alterna contínua e rapidamente o arquivo rootfs/dev/null entre um nó de dispositivo legítimo e um link simbólico apontando para o arquivo alvo no host (/proc/sys/kernel/core_pattern).
  4. Vencendo a Corrida: Se o tempo for perfeito, o runc realizará sua operação de montagem no exato momento em que rootfs/dev/null for um symlink. Isso faz com que o kernel siga o symlink, e a operação de mascaramento pretendida falha para /proc/sys/kernel/core_pattern.
  5. Escape de Contêiner: Devido à falha do mascaramento, o caminho dentro do contêiner não está mais protegido. Um processo em execução dentro do contêiner agora pode escrever em , o que modifica diretamente o arquivo do host, alcançando uma escape de contêiner.

Este PoC usa essa técnica para escrever em /proc/sys/kernel/core_pattern, um alvo comum para tais exploits porque modificá-lo pode levar à execução de código arbitrário no host quando um processo falha. No entanto, este PoC escreve apenas uma string inofensiva para provar que a primitiva de escrita existe.


Como o Script PoC Funciona

O script poc.sh automatiza todo o processo descrito acima.

  1. Configuração e Limpeza:

    • Ele define variáveis para o binário runc, nome do contêiner e caminho rootfs.
    • Inclui uma função cleanup robusta que garante que quaisquer contêineres ou arquivos criados anteriormente pelo script sejam removidos. Esta função é chamada automaticamente na saída, interrupção ou término.
  2. Preparação:

    • Ele salva o conteúdo original do /proc/sys/kernel/core_pattern do host em um arquivo temporário. Isso é usado posteriormente para verificar se o exploit teve sucesso e para ajudar o usuário a restaurar o sistema.
    • Ele cria um rootfs de contêiner mínimo (./rootfs) e um arquivo config.json.
    • O config.json lista explicitamente /proc/sys/kernel/core_pattern em maskedPaths—exatamente o recurso que o exploit visa contornar.
  3. A Função de Corrida (symlink_race)

    • Este é o núcleo do exploit. Ele é projetado para ser executado em segundo plano.
    • Ele entra em um loop apertado que dura 20 segundos.
    • Dentro do loop, ele repete:

Uso

Pré-requisitos:

  • Uma versão vulnerável do runc.
  • busybox-static instalado (para o shell do contêiner).
  • Privilégios de root (sudo) para executar runc e modificar /proc.

Passos:

  1. Salve o script como poc.sh.
  2. Torne-o executável: chmod +x poc.sh.
  3. Execute-o com sudo: sudo ./poc.sh.

Interpretando a Saída

  • Sucesso: Se você vir a mensagem [+] EXPLOIT BEM-SUCEDIDO!, significa que a condição de corrida foi vencida. O arquivo /proc/sys/kernel/core_pattern do host foi modificado com sucesso de dentro do contêiner, confirmando a vulnerabilidade.
  • Falha: Se você vir [-] O Exploit não foi bem-sucedido., a corrida não foi vencida nesta tentativa. Condições de corrida são probabilísticas e dependem fortemente do tempo e carga do sistema. Tente executar o script mais algumas vezes.

Restaurando Seu Sistema (Após uma Execução Bem-sucedida)

O PoC modificará um arquivo do sistema. Para restaurá-lo ao seu estado original, execute o comando sugerido pelo script:

root@kitploit:~
# The 'ORIGINAL_PATTERN' will be the actual value from your system
echo 'original_core_pattern_value' | sudo tee /proc/sys/kernel/core_pattern
Baixar ferramenta
/proc/sys/kernel/core_pattern
  • Exclui rootfs/dev/null.
  • Cria um link simbólico de rootfs/dev/null para o arquivo alvo do host (/proc/sys/kernel/core_pattern).
  • Pausa por uma fração de segundo (500 microssegundos).
  • Exclui o symlink.
  • Recria rootfs/dev/null como um dispositivo de caractere apropriado (mknod).
  • Pausa por um tempo um pouco maior (5000 microssegundos).
  • Essa alternância rápida cria a janela de oportunidade para que a condição de corrida ocorra.
  • Execução:

    • A função symlink_race é iniciada como um processo em segundo plano.
    • Imediatamente depois, o script executa runc run ... para criar e iniciar o contêiner. É neste momento que o runc tentará aplicar os maskedPaths.
    • Assim que o contêiner estiver em execução, o script usa runc exec para executar um comando dentro do contêiner: echo 'pwned' > /proc/sys/kernel/core_pattern.
  • Verificação:

    • O script aguarda o processo de corrida em segundo plano terminar e limpa o contêiner.
    • Em seguida, lê o conteúdo atual do /proc/sys/kernel/core_pattern do host.
    • Compara o conteúdo atual com a string esperada "pwned" e o valor original.
    • Com base no resultado, ele imprime uma mensagem clara [+] EXPLOIT BEM-SUCEDIDO! ou [-] O Exploit não foi bem-sucedido..