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

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

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

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

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

Категории

Все категории
Loading categories
Hacking-pdf.js-vulnerability — CVE-2024-4367 | Kitploit
Инструменты/GitHubGitHub/bhavyakcwestern/hacking-pdf.js-vulnerability
Анализ уязвимостейАнализ КодаЭксплуатацияЭксплуатация веб-приложенийСтатьи и ИсследованияОбучение и Образование
GitHubbhavyakcwestern/hacking-pdf.js-vulnerability

Hacking-pdf.js-vulnerability

CVE-2024-4367

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Репозиторий
1 год назадЕщё не проверено

🚨 CVE-2024-4367: Произвольное выполнение JavaScript в PDF.js

Этот проект демонстрирует и анализирует CVE-2024-4367, уязвимость высокой степени серьезности в библиотеке PDF.js от Mozilla, которая позволяет произвольное выполнение JavaScript из-за некорректной проверки типов в коде обработки шрифтов. Наше исследование показывает, как вредоносный PDF-файл может выполнять JavaScript в таких средах, как Electron, потенциально приводя к удаленному выполнению кода.

🔗 GitHub Repository: Hacking-pdf.js-vulnerability


📖 Обзор проекта

  • CVE ID: CVE-2024-4367
  • Severity: Высокий (CVSS v3.1 Score: 8.8)
  • Затронутое ПО
    • PDF.js < 4.2.67
    • Mozilla Firefox < 126
    • Firefox ESR < 115.11
    • Thunderbird < 115.11
  • Эксплуатация: Произвольное выполнение JavaScript через несанитизированный fontMatrix во встроенных шрифтах.
  • Доказательство концепции (PoC): PDF-файлы ex1.pdf и ex-gist.pdf демонстрируют показ предупреждений или выполнение удаленного скрипта.

📂 Содержимое репозитория

  • src/components/ReactPdfViewer.tsx – React-просмотрщик, созданный с react-pdf 5.7.2 (включает уязвимый pdfjs-dist 2.16.105)
  • ex1.pdf – вредоносный PDF, вызывающий предупреждение
  • ex-gist.pdf – вредоносный PDF, загружающий и выполняющий удаленный JS
  • CVE-2024-4367_Report_Hacking_Project.pdf – полный технический отчет и анализ эксплуатации

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

Элементы массива fontMatrix в PDF.js неправильно проверялись — принимая строки, напрямую внедряемые в JavaScript, скомпилированный с помощью new Function(...). Это позволяет злоумышленникам создавать вредоносные данные шрифта, вызывающие произвольное выполнение кода, если разрешены операции, подобные eval.

Пример уязвимого пути кода:

root@kitploit:~
fontMatrix = ["alert('XSS')", 0, 0, 1, 0, 0]; // Внедренная нагрузка
// В результате компилируется функция вида:
function drawGlyph() {
  transform("alert('XSS')", 0, 0, 1, 0, 0); // Небезопасное выполнение
}

🛡️ Стратегии смягчения для CVE-2024-4367

Чтобы смягчить эту уязвимость и защитить приложения, встраивающие PDF.js (или библиотеки, которые его включают), примите следующие меры:

✅ Обновление зависимостей

  • Обновите PDF.js до v 4.2.67 (или новее), в котором исправлена ошибка проверки типов.
  • Если используются обертки (например, react-pdf), убедитесь, что они поставляются с pdfjs-dist ≥ 4.2.67.

✅ Отключение динамической компиляции

  • Установите isEvalSupported = false в PDF.js, чтобы отключить динамическую компиляцию Function.

✅ Принудительная проверка типов

  • Добавьте явные проверки typeof для всех значений, предоставленных пользователем (например, массив fontMatrix).

✅ Очистка ввода

  • Отклоняйте или очищайте любые нечисловые входные данные там, где ожидаются числа.

✅ Использование инструментов мониторинга зависимостей

  • Интегрируйте Snyk (или аналогичные инструменты) в CI/CD для автоматического сканирования зависимостей.
  • Поддерживайте package.json/yarn.lock в актуальном состоянии и автоматически применяйте исправления безопасности.

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

  • Запускайте пропатченные версии:
    • Firefox ≥ 126
    • Firefox ESR ≥ 115.11
    • Thunderbird ≥ 115.11
  • Обновите среды выполнения Electron, чтобы они включали безопасную сборку PDF.js.

✅ Применение заголовков безопасности

Добавьте строгую политику Content-Security-Policy:

root@kitploit:~
Content-Security-Policy: script-src 'self'; object-src 'none';
Скачать инструмент