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

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

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

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

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

Категории

Все категории
Loading categories
wheelaudit — Python Wheel File Security Scanner — сканер безопасности файлов .whl для проверки на уязвимости перед установкой. Обнаруживает path traversal (CVE-2026-24049), подделку RECORD, подмену команд, секреты, zip-бомбы. Без зависимостей. | Kitploit
Инструменты/GitHubGitHub/kriskimmerle/wheelaudit
Статический анализАнализ уязвимостейАнализ КодаАудит конфигурацииАнализ вредоносных программDevSecOpsОбнаружение СекретовБезопасность Цепочки Поставок
GitHubkriskimmerle/wheelaudit

wheelaudit

Python Wheel File Security Scanner — сканер безопасности файлов .whl для проверки на уязвимости перед установкой. Обнаруживает path traversal (CVE-2026-24049), подделку RECORD, подмену команд, секреты, zip-бомбы. Без зависимостей.

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

Популярное

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

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

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

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

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

wheelaudit

Сканер безопасности Python Wheel-файлов — проверяйте файлы .whl на проблемы безопасности перед установкой.

Создан в ответ на недавние CVE в обработке Python wheel:

  • CVE-2026-24049: Path traversal при распаковке wheel позволяет манипулировать правами системных файлов
  • CVE-2026-1703: Path traversal при установке wheel-архивов через pip
  • Google GHSA-w97x-xxj5-gpjx: Уязвимость дифференциального анализа Zip-парсера в Python wheels

Ноль зависимостей. Один файл. Python 3.9+.

Зачем?

pip-audit проверяет, есть ли у ваших пакетов известные CVE. wheelaudit проверяет, является ли сам wheel-файл структурно вредоносным — path traversal, подделанные хеши RECORD, встроенные секреты, подмена команд, zip-бомбы и многое другое. Это разница между «известно ли, что этот пакет плохой?» и «выглядит ли этот пакет подозрительно?»

Запускайте перед pip install. Запускайте в CI. Запускайте на скачанных wheel-файлах, которым вы не доверяете.

Установка

root@kitploit:~
# Просто скопируйте файл
curl -O https://raw.githubusercontent.com/kriskimmerle/wheelaudit/main/wheelaudit.py
chmod +x wheelaudit.py

# Или клонируйте репозиторий
git clone https://github.com/kriskimmerle/wheelaudit.git
cd wheelaudit

Использование

root@kitploit:~
# Проверить wheel-файл
python3 wheelaudit.py package-1.0.0-py3-none-any.whl

# Проверить несколько wheel-файлов
python3 wheelaudit.py *.whl

# Проверить каталог с wheel-файлами
python3 wheelaudit.py ./wheels/

# Режим CI: выход с кодом 1, если оценка ниже порога
python3 wheelaudit.py package.whl --check --min-score 80

# JSON-вывод для интеграции с инструментами
python3 wheelaudit.py package.whl --json

# Подробный режим с деталями
python3 wheelaudit.py package.whl -v

# Фильтр по критичности
python3 wheelaudit.py package.whl --severity high

# Игнорировать конкретные правила
python3 wheelaudit.py package.whl --ignore WH11

# Чтение из stdin
cat package.whl | python3 wheelaudit.py --stdin

Правила

ПравилоКритичностьОписание
WH01CRITICALPath traversal в именах файлов (../, абсолютные пути, нулевые байты)
WH02CRITICAL-HIGHЦелостность файла RECORD (отсутствует, подделанные хеши, неучтённые файлы)
WH03HIGH-LOWПодозрительные типы файлов (исполняемые, pickle, архивы, скрытые файлы)
WH04CRITICALПодмена команд точек входа (pip, python, sudo и т.д.)
WH05CRITICALВстроенные секреты (ключи API, токены, приватные ключи)
WH06CRITICAL-LOWПроблемы с правами файлов (SUID/SGID, общедоступные для записи, исполняемые данные)
WH07HIGH-MEDIUMСогласованность метаданных (отсутствуют METADATA/WHEEL, структурные проблемы)
WH08HIGHОбнаружение zip-бомб (экстремальные коэффициенты сжатия, архивы сверхбольшого размера)
WH09HIGH-MEDIUMСоответствие PEP 427 (формат имени файла, несоответствие имени/версии)
WH10CRITICALКонфликт пространств имён (подмена модулей стандартной библиотеки)
WH11HIGH-MEDIUMВредоносные паттерны кода (eval, exec, os.system, доступ к учётным данным)
WH12MEDIUM-LOWПроблемы с файлами данных (скрипты в .data/, файлы сверхбольшого размера)
WH13HIGHМанипуляция CRC32 (паттерн обхода CVE-2025-1889)
WH14HIGHНесоответствие расширения (ELF/PE-бинарник, замаскированный под .py/.txt)
WH15HIGH-MEDIUMСимлинки и дублирующиеся имена файлов

15 правил, 5 уровней критичности

CRITICAL (20 баллов): Path traversal, биты SUID, встроенные секреты, подмена команд, подмена стандартной библиотеки, подделка хешей RECORD

HIGH (12 баллов): Отсутствующий RECORD, подозрительные исполняемые файлы, zip-бомбы, манипуляция CRC, несоответствие расширений, симлинки, паттерны сбора учётных данных

MEDIUM (6 баллов): Пути с обратной косой чертой, отсутствующие метаданные, проблемы PEP 427, паттерны subprocess/network

LOW (2 балла): Скрытые файлы, исполняемые файлы данных, файлы большого размера

INFO (0 баллов): Легитимные нативные расширения, доступ к переменным окружения

Пример вывода

Чистый wheel (requests 2.32.5)

root@kitploit:~
============================================================
requests 2.32.5 — B (88/100)
============================================================

  [HIGH]
    WH11 Подозрительный паттерн: __import__() — динамический импорт (requests/packages.py)

  Итог: 1 high

Вредоносный wheel

root@kitploit:~
============================================================
evil-pip 99.0.0 — F (0/100)
============================================================

  [CRITICAL]
    WH01 Path traversal в wheel-архиве (../../../etc/crontab)
    WH04 Точка входа подменяет системную команду: 'pip'
    WH04 Точка входа подменяет системную команду: 'python'
    WH05 Встроенный секрет: GitHub Personal Access Token (pip/__init__.py)

  [HIGH]
    WH02 Файл не указан в RECORD (../../../etc/crontab)
    WH03 Подозрительный тип файла: .exe (pip/payload.exe)
    WH11 Подозрительный паттерн: os.system() — выполнение shell-команд
    WH11 Подозрительный паттерн: вызов eval() — динамическое выполнение кода
    WH11 Ссылка на каталог SSH

  Итог: 4 critical, 5 high, 2 medium, 2 low

JSON-вывод

root@kitploit:~
{
  "version": "0.1.0",
  "results": [
    {
      "path": "package-1.0.0-py3-none-any.whl",
      "score": 88,
      "grade": "B",
      "metadata": {
        "name": "package",
        "version": "1.0.0",
        "file_count": 15,
        "total_uncompressed_bytes": 45000
      },
      "findings": [
        {
          "rule": "WH11",
          "severity": "high",
          "message": "Suspicious pattern: __import__() — dynamic import",
          "file": "package/compat.py"
        }
      ],
      "summary": {
        "high": 1
      }
    }
  ]
}

Интеграция с CI

GitHub Actions

root@kitploit:~
- name: Audit wheel
  run: |
    python3 wheelaudit.py dist/*.whl --check --min-score 80

Шлюз перед установкой

root@kitploit:~
pip download some-package --no-deps -d /tmp/wheels
python3 wheelaudit.py /tmp/wheels/*.whl --check
pip install /tmp/wheels/*.whl

Как это работает

wheelaudit рассматривает каждый файл .whl как недоверенный zip-архив. Он:

  1. Анализирует zip-метаданные без извлечения (безопасная проверка)
  2. Проверяет структуру архива на path traversal, симлинки, дубликаты
  3. Проверяет целостность RECORD — хеши и списки файлов
  4. Проверяет типы файлов — исполняемые, бинарные, скрытые файлы
  5. Сканирует текстовое содержимое — секреты, вредоносные паттерны кода
  6. Проверяет соответствие PEP 427 — имя файла, метаданные, структура
  7. Обнаруживает известные паттерны атак — CVE-2026-24049, манипуляция CRC, дифференциальные анализаторы парсеров

Никакие файлы не извлекаются на диск. Весь анализ выполняется в памяти.

Сравнение

Функцияwheelauditpip-auditsafetyGuardDog
Ноль зависимостей✅❌❌❌
Сканирует содержимое wheel✅❌❌✅
Обнаружение path traversal✅❌❌❌
Целостность RECORD✅❌❌❌
База данных CVE❌✅✅❌
Работа в офлайн-режиме✅❌❌❌
Python 3.9+✅✅✅✅

wheelaudit дополняет pip-audit/safety — они проверяют известные уязвимости, а wheelaudit проверяет сам wheel.

Лицензия

MIT

Скачать инструмент