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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-48907 — Python CLI, эксплуатирующий CVE-2026-48907 в Joomla JCE через загрузку импорта профиля, проверяет пути к shell и открывает интерактивный командный канал на авторизованных целях. | Kitploit
Инструменты/GitHubGitHub/noname-elv/cve-2026-48907
Анализ уязвимостейЭксплуатацияСкриптинг и автоматизацияЭксплуатация веб-приложенийПост-эксплуатацияВеб-безопасностьТестирование на ПроникновениеИнструмент Удаленного ДоступаРазработка Полезной Нагрузки
GitHubnoname-elv/cve-2026-48907

CVE-2026-48907

Python CLI, эксплуатирующий CVE-2026-48907 в Joomla JCE через загрузку импорта профиля, проверяет пути к shell и открывает интерактивный командный канал на авторизованных целях.

16 ч 6 мин назадЕщё не проверено
Репозиторий

Популярное

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

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

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

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

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

E.L.V CVE Research & Assessment Framework

E.L.V — Exploit Loader & Vulnerability Firmware
Утилита для исследований в области кибербезопасности, предназначенная для авторизованной оценки уязвимостей.

Python Platform License


Содержание

  • Обзор
  • Важное уведомление о безопасности
  • Информация о проекте
  • Что делает текущий скрипт
  • Рабочий процесс
  • Требования
  • Установка
  • Интерфейс командной строки
  • Входные файлы
  • Вывод
  • Параллелизм
  • Сетевое поведение
  • Поведение SSL/TLS
  • Логирование и результаты
Обработка ошибок
  • Структура исходного кода
  • Вопросы безопасности
  • Методология ответственного тестирования
  • Устранение неполадок
  • Заметки по разработке
  • Известные ограничения
  • Будущие улучшения
  • Лицензия
  • Отказ от ответственности

  • Обзор

    E.L.V CVE Research & Assessment Framework — это утилита командной строки на Python, предназначенная для контролируемых исследований в области безопасности и авторизованной оценки уязвимостей.

    Предоставленная реализация содержит функциональность для:

    • приёма одной цели или файла со списком целей;
    • загрузки локально предоставленного файла полезной нагрузки;
    • выполнения HTTP-предварительной проверки;
    • извлечения токена, связанного с CSRF, из ответа цели;
    • отправки запроса на импорт профиля;
    • проверки набора путей-кандидатов для загруженного файла;
    • опционального открытия интерактивного канала HTTP-команд при использовании одной цели;
    • параллельной обработки нескольких целей;
    • записи успешных URL-адресов шелла в файл результатов.

    Текущий исходный код определяет свою исследовательскую цель как:

    CVE-2026-48907 Joomla! JCE Extension < 2.9.99.5 Unauthenticated RCE

    Это утверждение о CVE/продукте является метаданными, предоставленными исходным кодом, и не было независимо проверено в этом README. Перед публикацией заявления о безопасности проверьте идентификатор, затронутые версии, рекомендации, затронутый компонент и информацию об устранении по доверенному источнику CVE/производителя.


    Важное уведомление о безопасности

    Этот проект взаимодействует с удалёнными веб-приложениями, и предоставленная реализация включает функциональность, предназначенную для загрузки пользовательской серверной полезной нагрузки и связи с загруженным шеллом.

    Используйте его только против систем, на которые у вас есть явное разрешение.

    Не используйте этот проект для:

    • доступа к системам без разрешения;
    • развёртывания шелла на сторонней инфраструктуре;
    • получения несанкционированного закрепления;
    • обхода аутентификации или контроля доступа;
    • выполнения команд на системах, которыми вы не владеете и на тестирование которых у вас нет письменного разрешения;
    • сканирования произвольных интернет-целей без разрешения;
    • повреждения, изменения, эксфильтрации или уничтожения данных.

    Для безопасной лаборатории используйте изолированную локальную среду VM/контейнера или намеренно уязвимую тренировочную цель.


    Информация о проекте

    ПолеЗначение
    ПроектE.L.V CVE Research & Assessment Framework
    Автор / ДвижокHxN / E.L.V
    Версия1.0.0
    ЯзыкPython
    Платформа*nix / Unix-подобные системы
    ЛицензияGNU GPL v3
    ИнтерфейсКомандная строка
    HTTP-клиентrequests
    ПараллелизмThreadPoolExecutor
    Основное назначениеАвторизованные исследования в области безопасности и оценка

    Что делает текущий скрипт

    Предоставленный исходный код elv-cve.py содержит следующие основные компоненты.

    1. Загрузка пользовательской полезной нагрузки

    Скрипт читает локальный файл, указанный через опцию --shell.

    Исходный код описывает его как пользовательский файл шелла/загрузчика и завершает работу, когда указанный файл не может быть прочитан.

    2. Обнаружение целей

    Программа поддерживает два взаимоисключающих режима целей:

    • один URL цели;
    • текстовый файл, содержащий несколько URL целей.

    3. Первоначальный HTTP-запрос

    Для каждой цели скрипт выполняет GET-запрос к корню цели и ожидает HTTP-ответ 200 перед продолжением.

    4. Извлечение токена

    Реализация ищет в возвращённом HTML значение, связанное с CSRF, с помощью регулярных выражений.

    В настоящее время реализованы два шаблона.

    5. Запрос на импорт профиля

    Скрипт формирует запрос на многочастную загрузку к:```text /index.php?option=com_jce

    root@kitploit:~
    Запрос включает задачу импорта профиля и извлечённый токен.
    
    ### 6. Проверка путей-кандидатов
    
    После запроса на загрузку программа проверяет несколько возможных местоположений итогового файла.
    
    Текущий исходный код содержит следующие пути-кандидаты:```text
    /tmp/
     /images/
     /images/stories/
     /media/
    

    7. Интерактивная сессия

    Для одной цели текущая программа вызывает интерфейс интерактивных команд, когда сообщает об успешно загруженном пути к оболочке.

    Источник отправляет команды, используя POST-параметры с именами:```text cmd c

    root@kitploit:~
    Поскольку эта функциональность может привести к удалённому выполнению команд, её следует ограничить изолированными, явно авторизованными средами.
    
    ### 8. Обработка нескольких целей
    
    Когда указан файл с целями, программа использует `ThreadPoolExecutor` и обрабатывает цели параллельно.
    
    Количество потоков по умолчанию в исходном коде:```text
    10
    

    Рабочий процесс

    На высоком уровне текущая реализация следует такому потоку:```text Start │ ├── Parse command-line arguments │ ├── Load local payload file │ ├── Load one target OR target list │ ├── Create ELV_CVE output directory │ ├── Target processing │ │ │ ├── GET target │ ├── Check HTTP response │ ├── Extract token │ ├── Submit profile-import request │ ├── Check candidate file paths │ └── Record result │ └── Write results / display summary

    root@kitploit:~
    ---
    
    ## Требования
    
    Поставляемый исходный код импортирует:
    
    - Модули стандартной библиотеки Python:
      - `random`
      - `re`
      - `time`
      - `argparse`
      - `sys`
      - `os`
      - `json`
      - `threading`
      - `concurrent.futures`
    - Сторонние модули:
      - `requests`
      - `urllib3`
    
    Таким образом, минимальная установка зависимостей:```bash
    python3 -m pip install requests urllib3
    

    Для воспроизводимых развёртываний зафиксируйте зависимости в файле requirements.txt.

    Пример:```text requests urllib3

    root@kitploit:~
    ---
    
    ## Установка
    
    Клонируйте или скопируйте проект в изолированную среду оценки.
    
    Пример:```bash
    git clone <YOUR-REPOSITORY-URL>
    cd <YOUR-REPOSITORY-DIRECTORY>
    

    Создайте виртуальное окружение:```bash python3 -m venv .venv

    root@kitploit:~
    Активируйте его:```bash
    source .venv/bin/activate
    

    Установите зависимости:```bash python3 -m pip install -r requirements.txt

    root@kitploit:~
    Проверьте Python:```bash
    python3 --version
    

    Проверьте зависимость:```bash python3 -c "import requests, urllib3; print('Dependencies OK')"

    root@kitploit:~
    > Замените `<YOUR-REPOSITORY-URL>` и `<YOUR-REPOSITORY-DIRECTORY>` на значения, используемые в вашем репозитории.
    
    ---
    
    ## Интерфейс командной строки
    
    В исходном коде определены следующие параметры командной строки.
    
    ### Выбор цели```text
    -u, --url
    

    Единый целевой URL.```text -f, --file

    root@kitploit:~
    Путь к файлу, содержащему целевые URL-адреса.
    
    Эти параметры являются взаимоисключающими, и один из них обязателен.
    
    ### Выбор полезной нагрузки```text
    --shell
    

    Путь к локальному файлу пользовательской полезной нагрузки.

    Этот аргумент требуется текущей реализацией.

    Количество потоков```text

    -t, --threads

    root@kitploit:~
    Количество рабочих потоков.
    
    По умолчанию:```text
    10
    

    Флаг подробного вывода```text

    -v, --verbose

    root@kitploit:~
    Включает флаг подробного вывода, предоставляемый парсером аргументов.
    
    Примечание: текущий исходный код определяет эту опцию, но не использует `args.verbose` для существенного изменения поведения вывода.
    
    ### Опция вывода```text
    -o, --output
    

    Аргумент определяется парсером, но текущая реализация не использует args.output при записи итогового результата. Текущий путь результата жёстко задан как:```text ELV_CVE/success.txt

    root@kitploit:~
    Это деталь реализации, которую стоит исправить в будущем релизе.
    
    ---
    
    ## Входные файлы
    
    ### Список целей
    
    Режим списка целей ожидает по одному URL на строку.
    
    Пустые строки игнорируются.
    
    Строки, начинающиеся с `#`, игнорируются.
    
    Концептуальный формат:```text
    https://authorized-target-01.example
    https://authorized-target-02.example
    # laboratory target
    https://authorized-target-03.example
    

    В файл следует помещать только те цели, на оценку которых у вас есть явное разрешение.

    Файл полезной нагрузки

    Аргумент --shell указывает на локальный файл, который программа читает как текст.

    Предоставленный исходный код не проверяет содержимое файла дальше успешного его чтения.

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


    Вывод

    Программа создаёт:```text ELV_CVE/

    root@kitploit:~
    Для режима с несколькими целями он записывает:```text
    ELV_CVE/success.txt
    

    Текущий источник записывает успешные shell-URL в этот файл.

    Пример формата результата:```text https://authorized-lab.example/path/to/result

    root@kitploit:~
    Программа также выводит итоговую сводку, содержащую количество успешных результатов относительно количества загруженных целей.
    
    ---
    
    ## Параллелизм
    
    Режим с несколькими целями использует:```python
    ThreadPoolExecutor
    

    Настроенное количество потоков по умолчанию — 10.

    Более высокая конкурентность может увеличить:

    • сетевую нагрузку;
    • нагрузку на серверную сторону;
    • срабатывания ограничений скорости;
    • ложные срабатывания, вызванные нестабильными соединениями;
    • сложность интерпретации логов.

    Для контролируемых проверок начинайте с низкого значения конкурентности и увеличивайте его только тогда, когда это позволяют среда и авторизация.


    Сетевое поведение

    Предоставленная реализация использует requests.Session() для HTTP-взаимодействия.

    Основные сетевые операции:

    1. GET корня цели;
    2. POST-запрос импорта профиля;
    3. GET путей к кандидатным файлам;
    4. опционально POST-команды через сообщённый URL оболочки.

    В исходном коде используются явные тайм-ауты запросов:

    • первоначальный GET: 15 секунд;
    • запрос загрузки: 15 секунд;
    • проверка пути-кандидата: 10 секунд;
    • запрос интерактивной команды: 15 секунд.

    Эти значения жёстко заданы в текущем исходном коде.


    Поведение SSL/TLS

    Реализация устанавливает:```python s.verify = False

    root@kitploit:~
    и подавляет `InsecureRequestWarning`.
    
    Это означает, что проверка сертификата отключена.
    
    Это может быть полезно в одноразовой лабораторной среде с самоподписанными сертификатами, но **не рекомендуется для обычных production-инструментов безопасности**.
    
    Более безопасная реализация должна делать проверку сертификата настраиваемой и оставлять проверку включённой по умолчанию.
    
    ---
    
    ## Логирование и результаты
    
    В исходном коде используется блокировка потока вокруг `safe_print()` для уменьшения конфликтов вывода между рабочими потоками.
    
    Типичные категории статуса включают:```text
    failed
    success
    

    Объект результата также может содержать такие поля, как:```text url status reason shell_url

    root@kitploit:~
    Многопользовательский сборщик дополнительно проверяет:```text
    uploaded_hidden
    

    Однако предоставленная реализация exploit() в настоящее время не возвращает этот статус.

    Это указывает на область, где модель результата могла бы быть доработана в будущей версии.


    Обработка ошибок

    Текущая реализация обрабатывает несколько случаев сбоя:

    Сбой подключения к цели

    Неудачный HTTP-запрос записывается как неудачная цель с сообщением об исключении.

    Ответ цели, отличный от 200

    Если первоначальный GET не возвращает HTTP 200, обработка этой цели прекращается.

    Отсутствующий токен

    Если ожидаемый токен не удаётся извлечь, цель отмечается как неудачная проверка уязвимости.

    Сбой запроса на загрузку

    Исключения во время запроса на загрузку перехватываются, и скрипт продолжает работу со следующей попыткой расширения/пути.

    Отсутствующий файл полезной нагрузки

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

    Прерывание с клавиатуры

    Интерактивный канал обрабатывает KeyboardInterrupt и завершает сессию.


    Структура исходного кода

    Основные функции в предоставленном исходном коде:

    safe_print(msg)

    Потокобезопасный помощник для вывода в консоль.

    read_custom_shell(filepath)

    Читает локальный файл полезной нагрузки как текст UTF-8 с игнорированием ошибок декодирования.

    interactive_shell(shell_url)

    Предоставляет интерактивный интерфейс HTTP-команд после сообщения об успешном пути к оболочке.

    exploit(url, shell_content, interactive=False)

    Выполняет рабочий процесс обработки цели и возвращает словарь результатов.

    main()

    Обрабатывает:

    • отображение баннера;
    • разбор аргументов;
    • загрузку полезной нагрузки;
    • загрузку целей;
    • создание выходного каталога;
    • выполнение для одной цели;
    • многопоточное выполнение для нескольких целей;
    • агрегацию результатов;
    • запись файла результатов.

    Вопросы безопасности

    Этот проект имеет несколько характеристик, критичных для безопасности, которые следует понимать перед использованием.

    Удалённое выполнение команд

    Интерактивный режим способен отправлять команды на удалённую конечную точку HTTP. Это делает его существенно более чувствительным, чем пассивный сканер.

    Не распространяйте и не передавайте рабочие полезные нагрузки без необходимости.

    Отключённая проверка сертификатов

    Проверка TLS-сертификатов отключена в текущей реализации.

    Это следует исправить, прежде чем рассматривать проект как зрелый инструмент безопасности.

    Обработка полезной нагрузки

    Полезная нагрузка загружается непосредственно из локального файла и отправляется как часть HTTP-запроса.

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

    Валидация целей

    Текущий исходный код не реализует строгий механизм авторизации или белого списка.

    Более безопасная внутренняя версия должна поддерживать явный белый список целей.

    Ограничение скорости

    Текущая реализация не предоставляет комплексного ограничителя скорости.

    Поэтому параллельные запросы следует контролировать осторожно.

    Чувствительность результатов

    Файлы результатов могут содержать URL-адреса, связанные с успешными попытками эксплуатации. Защищайте эти файлы как конфиденциальные данные оценки.


    Методология ответственного тестирования

    Профессиональный рабочий процесс оценки должен выглядеть так:```text Authorization ↓ Define Scope ↓ Prepare Isolated Test Environment ↓ Confirm Target Ownership / Permission ↓ Perform Minimal Verification ↓ Collect Evidence ↓ Stop Exploitation Once Proof Is Established ↓ Remediate ↓ Retest ↓ Document Findings

    root@kitploit:~
    Цель оценки уязвимостей должна состоять в определении риска с **минимально необходимым воздействием**, а не в получении неограниченного доступа.
    
    ---
    
    ## Рекомендуемая настройка лаборатории
    
    Для разработки создайте выделенную среду, содержащую:
    
    - изолированную виртуальную машину Linux;
    - локальный веб-сервер;
    - тестовую установку Joomla;
    - соответствующий компонент/версию JCE;
    - сетевую изоляцию;
    - снимки/резервные копии;
    - тестовые учётные записи;
    - журналы приложения и веб-сервера.
    
    Избегайте тестирования на несвязанных производственных системах.
    
    ---
    
    ## Устранение неполадок
    
    ### `ModuleNotFoundError: No module named 'requests'`
    
    Установите зависимость Python:```bash
    python3 -m pip install requests urllib3
    

    Файл полезной нагрузки не может быть прочитан

    Убедитесь, что указанный путь существует и доступен для чтения:```bash ls -l

    root@kitploit:~
    ### Первоначальный HTTP-запрос завершается неудачей
    
    Проверьте:
    
    - корректность URL;
    - DNS;
    - сетевое подключение;
    - доступность HTTP/HTTPS;
    - правила брандмауэра;
    - область действия цели;
    - журналы сервера.
    
    ### CSRF-токен не обнаружен
    
    Ответ цели может отличаться от HTML-структуры, ожидаемой регулярными выражениями в текущей реализации.
    
    Не предполагайте, что отсутствие токена означает, что цель защищена или уязвима. Рассматривайте это как неубедительный результат.
    
    ### Файл результатов пуст
    
    Проверьте:```text
    ELV_CVE/success.txt
    

    и проверьте вывод консоли на наличие неудачных HTTP-запросов, ошибок извлечения токенов или отклонения загрузки.


    Известные ограничения

    У предоставленной реализации есть несколько ограничений.

    1. Метаданные CVE не проверяются независимо в этом README.
    2. Флаг --verbose определён, но в настоящее время не управляет подробным логированием.
    3. Аргумент --output определён, но в настоящее время не используется для выбора файла результатов.
    4. json и sleep импортируются, но существенно не используются в показанной реализации.
    5. Проверка сертификатов отключена.
    6. Отсутствует встроенный список разрешённых целей/авторизации.
    7. Отсутствует комплексный ограничитель скорости запросов.
    8. Пути-кандидаты жёстко закодированы.
    9. Обнаружение опирается на определённые шаблоны ответов и может давать ложноотрицательные результаты.
    10. Успешный HTTP-ответ сам по себе не обязательно подтверждает наличие уязвимости.
    11. Текущая обработка результатов для нескольких целей ссылается на uploaded_hidden, хотя показанная функция exploit() не возвращает этот статус.
    12. Исходный код следует проверить на синтаксис и просмотреть перед публикацией или развёртыванием.

    Заметки по разработке

    Перед выпуском релиза производственного качества рассмотрите возможность добавления:

    Конфигурация

    Перенесите жёстко закодированные значения в слой конфигурации:

    • тайм-аут запроса;
    • проверка TLS;
    • пути-кандидаты;
    • количество потоков;
    • user-agent;
    • расположение вывода.

    Структурированное логирование

    Используйте модуль logging в Python вместо того, чтобы полагаться в основном на print().

    Предлагаемые уровни:```text DEBUG INFO WARNING ERROR

    root@kitploit:~
    ### Схема результата
    
    Определите согласованный объект результата, например:```text
    target
    status
    reason
    http_status
    evidence
    timestamp
    

    Более безопасный режим proof-of-concept

    Отделите проверку уязвимости от выполнения команд.

    Более безопасная архитектура такова:```text Detection → Verification → Evidence

    root@kitploit:~
    с отключённым по умолчанию интерактивным выполнением команд.
    
    ### Список разрешённых целей
    
    Требовать явный файл области действия или список разрешённых целей перед выполнением сетевых действий.
    
    ### Фиксация зависимостей
    
    Использовать `requirements.txt` или файл блокировки с протестированными версиями зависимостей.
    
    ### Тестирование
    
    Добавить модульные тесты для:
    
    - нормализации URL;
    - разбора токенов;
    - разбора списка целей;
    - сериализации результатов;
    - обработки ошибок;
    - обработки путей-кандидатов.
    
    ---
    
    ## Предлагаемая структура репозитория
    
    Чистый репозиторий мог бы использовать:```text
    .
    ├── README.md
    ├── LICENSE
    ├── requirements.txt
    ├── elv-cve.py
    ├── tests/
    │   ├── test_parser.py
    │   ├── test_results.py
    │   └── test_token_parser.py
    ├── docs/
    │   └── methodology.md
    └── examples/
        └── targets.example.txt
    

    Не коммитьте реальные списки целей, учётные данные, shell-пейлоады, данные сессий или конфиденциальные результаты оценки.


    Гигиена Git

    Рекомендуемые записи в .gitignore:```gitignore pycache/ *.py[cod] .venv/ venv/ .env ELV_CVE/ *.log *.tmp .DS_Store

    root@kitploit:~
    Конфиденциальные артефакты оценки должны оставаться вне публичного репозитория.
    
    ---
    
    ## Версионирование
    
    Текущий проект идентифицирует себя как:```text
    v1.0.0
    

    Для будущих релизов рекомендуется использовать семантическое версионирование:```text MAJOR.MINOR.PATCH

    root@kitploit:~
    Пример:```text
    1.0.0
    1.1.0
    1.1.1
    2.0.0
    

    Используйте увеличение основной версии при внесении критических изменений в CLI, формат результатов или архитектуру.


    План развития

    Возможные будущие этапы:

    • Режим пассивного обнаружения
    • Режим безопасной проверки
    • Явный список разрешённых целей
    • Настраиваемая проверка TLS
    • Настраиваемые тайм-ауты
    • Настраиваемый путь вывода
    • Полноценное подробное/отладочное журналирование
    • Экспорт результатов в JSON
    • Экспорт результатов в CSV
    • Сбор доказательств
    • Ограничение скорости
    • Управление повторными попытками/задержками
    • Модульные тесты
    • Интеграционные тесты в изолированной лаборатории
    • Валидация в CI
    • Фиксация версий зависимостей
    • Документация по защитному устранению
    • Ссылки на поставщика/рекомендации после проверки CVE

    Сообщение о находке

    Полезный отчёт по безопасности должен документировать:```text Title Affected Asset Affected Component Version Severity CVE / Advisory Description Preconditions Evidence Business Impact Remediation Retest Result Timeline

    root@kitploit:~
    Не включайте в публичный отчёт учётные данные, персональную информацию, посторонние данные или ненужный вывод команд.
    
    ---
    
    ## Рекомендации по устранению
    
    Для затронутого развёртывания Joomla/JCE устранение должно основываться на **официальном рекомендации поставщика/по безопасности и подтверждённом диапазоне уязвимых версий**, а не только на метаданных CVE, встроенных в этот скрипт.
    
    Общие защитные действия включают:
    
    1. Определите установленные версии Joomla и JCE.
    2. Определите, попадает ли развёртывание в подтверждённый уязвимый диапазон.
    3. Обновитесь до поддерживаемого поставщиком исправленного выпуска, когда он доступен.
    4. Проверьте журналы веб-сервера и приложения на подозрительную активность загрузки/импорта.
    5. Проверьте неожиданные файлы в доступных через веб каталогах.
    6. Смените учётные данные, если предполагается компрометация.
    7. Проверьте механизмы персистентности и запланированные задачи.
    8. Повторно протестируйте после устранения.
    9. Сохраните соответствующие доказательства в соответствии с процессом реагирования на инциденты вашей организации.
    
    ---
    
    ## Атрибуция
    
    Брендинг проекта и метаданные источника идентифицируют движок как:
    
    **HxN / E.L.V**
    
    Версия проекта:
    
    **1.0.0**
    
    ---
    
    ## Лицензия
    
    Этот проект предназначен для распространения под:
    
    **GNU General Public License v3.0**
    
    Полный текст лицензии см. в прилагаемом файле `LICENSE`.
    
    Если репозиторий ещё не содержит файл `LICENSE`, добавьте официальный текст GNU GPL v3 перед публикацией репозитория под лицензией GPL.
    
    ---
    
    ## Отказ от ответственности
    
    Это программное обеспечение предоставляется для авторизованных исследований в области безопасности, защитного тестирования безопасности, обучения и использования в контролируемых лабораторных условиях.
    
    Автор и участники не несут ответственности за неправомерное использование, несанкционированный доступ, ущерб, потерю данных, нарушение работы сервисов или любые другие последствия, возникшие в результате использования этого программного обеспечения.
    
    Вы несёте исключительную ответственность за обеспечение соответствия вашей тестовой деятельности применимым законам, контрактам, политикам и требованиям явной авторизации.
    
    **Тестируйте только системы, которыми вы владеете, или системы, на тестирование которых у вас есть явное разрешение.**
    
    ---
    
    ## Заключительное примечание
    
    Этот README документирует поведение, раскрываемое предоставленным исходным кодом `elv-cve.py`. Он намеренно разграничивает детали реализации и утверждения, требующие независимой проверки уязвимости/рекомендаций.
    
    Для публичного репозитория проверьте информацию о CVE и добавьте авторитетные ссылки на поставщика/рекомендации, прежде чем описывать проект как подтверждённый эксплойт для конкретного продукта/версии.
    
    Скачать инструмент