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

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

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

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

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

Категории

Все категории
Loading categories
tough-cookie-2.5.0-cve-2023-26136-fix — Патч безопасности для CVE-2023-26136 в tough-cookie 2.5.0 — исправление уязвимости загрязнения прототипа с обратной совместимостью | Kitploit
Инструменты/GitHubGitHub/uriyahav/tough-cookie-2.5.0-cve-2023-26136-fix
Статический анализАнализ уязвимостейАнализ КодаВеб-безопасностьСтатьи и ИсследованияОбучение и Образование
GitHuburiyahav/tough-cookie-2.5.0-cve-2023-26136-fix

tough-cookie-2.5.0-cve-2023-26136-fix

Патч безопасности для CVE-2023-26136 в tough-cookie 2.5.0 — исправление уязвимости загрязнения прототипа с обратной совместимостью

Популярное

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

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

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

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

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

Исправление CVE-2023-26136 для tough-cookie 2.5.0

Обзор миссии

Этот проект устраняет CVE-2023-26136 — критическую уязвимость прототипного загрязнения в версиях tough-cookie до 4.1.3. Уязвимость затрагивает веб-приложение компании Penguin Software Inc., которое использует [email protected] для обработки куки.

Описание уязвимости

CVE-2023-26136 — это уязвимость прототипного загрязнения, которая возникает при использовании CookieJar с параметром rejectPublicSuffixes=false. Проблема вызвана неправильной инициализацией объектов в классе MemoryCookieStore, что позволяет злоумышленникам внедрять свойства в Object.prototype через вредоносные домены куки.

Технические подробности

Уязвимость находится в lib/memstore.js, где куки хранятся с использованием обычных объектов JavaScript ({}). Поскольку эти объекты наследуются от Object.prototype, злоумышленники могут использовать это, устанавливая куки с доменами типа __proto__, constructor или prototype, что приводит к прототипному загрязнению.

Решение

Реализация патча

Исправление заменяет все вхождения {} на Object.create(null) в классе MemoryCookieStore:

root@kitploit:~
// Before (vulnerable)
this.idx = {};

// After (fixed)
this.idx = Object.create(null);

Это изменение предотвращает прототипное загрязнение, создавая объекты без цепочки прототипов, эффективно изолируя хранилище куки от нежелательного наследования.

Изменённые файлы

  • lib/memstore.js: обновлена инициализация объектов для использования Object.create(null)

Структура проекта

root@kitploit:~
├── README.md                    # This file
├── changes.diff                 # Git-compatible diff file
├── test-cve-2023-26136.js      # Unit test for the fix
├── tough-cookie/
│   ├── index.js                 # Exploit demonstration
│   ├── Original v2.5.0/         # Original vulnerable version
│   ├── v2.5.0-PATCHED/          # Patched version
│   │   └── tough-cookie-2.5.0.tgz  # Packed version
│   └── package.json
└── mission.txt                  # Original mission requirements

Установка и тестирование

1. Упакованная версия (.tgz)

Исправленная версия доступна как tough-cookie/v2.5.0-PATCHED/tough-cookie-2.5.0.tgz.

Для установки:

root@kitploit:~
npm install ./tough-cookie/v2.5.0-PATCHED/tough-cookie-2.5.0.tgz

2. Запуск набора тестов

Исходный набор тестов tough-cookie должен проходить. Для запуска тестов:

root@kitploit:~
cd tough-cookie/v2.5.0-PATCHED
npm install
npm test

Примечание: Исходная версия tough-cookie 2.5.0 не включает каталог тестов в этой поставке, но исправленная версия сохраняет полную совместимость с оригинальным API.

3. Модульный тест для исправления уязвимости

Запустите пользовательский модульный тест для проверки исправления:

root@kitploit:~
node test-cve-2023-26136.js

Ожидаемый вывод:

root@kitploit:~
Testing CVE-2023-26136 fix...
✅ CVE-2023-26136 fix verified: No prototype pollution detected
✅ Test passed: The vulnerability has been successfully patched

4. Демонстрация эксплойта

Проект включает демонстрацию эксплойта в tough-cookie/index.js:

root@kitploit:~
cd tough-cookie
node index.js

Это проверит как оригинальную уязвимую версию, так и исправленную, показывая:

  • EXPLOITED SUCCESSFULLY для оригинальной версии
  • EXPLOIT FAILED для исправленной версии

Документация изменений

changes.diff

Файл changes.diff содержит diff, совместимый с git, который можно применить с помощью:

root@kitploit:~
git apply changes.diff

Этот diff включает только необходимые изменения для исправления уязвимости без каких-либо непреднамеренных модификаций.

Подробности эксплойта

Эксплойт работает следующим образом:

  1. Создание CookieJar с параметром rejectPublicSuffixes: false
  2. Установка вредоносной куки с доменом __proto__
  3. Это загрязняет цепочку Object.prototype
  4. Новые объекты наследуют загрязнённые свойства

Потенциальный ущерб:

  • Манипуляция поведением приложения
  • Обход безопасности
  • Отказ в обслуживании
  • Повреждение данных

Совместимость с Node.js

✅ Протестировано и подтверждено на Node.js 20 (LTS)

Информация о репозитории

GitHub Репозиторий: Форкнутый репозиторий tough-cookie

Git Тэг: v2.5.0-patched-cve-2023-26136-fix

Опыт в CI/CD

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

  1. GitHub Actions - Экспертный уровень

    • Автоматизированное тестирование и развёртывание
    • Сканирование безопасности и управление зависимостями
    • Кроссплатформенное тестирование
  2. Jenkins - Продвинутый уровень

    • Разработка и обслуживание пайплайнов
    • Контейнеризация Docker
    • Интеграция с различными инструментами
  3. Travis CI - Средний уровень

    • Автоматизация сборки
    • Выполнение тестов
    • Рабочие процессы развёртывания
  4. CircleCI - Средний уровень

    • Настройка пайплайна CI/CD
    • Поддержка Docker
    • Параллельное выполнение задач
  5. GitLab CI/CD - Продвинутый уровень

    • Разработка пайплайнов
    • Развёртывание в Kubernetes
    • Интеграция сканирования безопасности

Дополнительные инструменты:

  • Docker - Экспертный уровень (контейнеризация и оркестрация)
  • Kubernetes - Продвинутый уровень (развёртывание и масштабирование)
  • SonarQube - Средний уровень (анализ качества кода)
  • Snyk - Средний уровень (сканирование уязвимостей безопасности)

Ссылки

  • CVE-2023-26136 — NVD
  • Репозиторий tough-cookie на GitHub
  • Руководство по безопасности от прототипного загрязнения

Лицензия

Этот проект сохраняет оригинальную лицензию tough-cookie (BSD-3-Clause), добавляя исправление безопасности.


Примечание: Это патч, ориентированный на безопасность, который сохраняет полную обратную совместимость, устраняя уязвимость CVE-2023-26136.

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