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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-20660 — Автономный PoC-эксплойт для CVE-2026-20660: обход каталогов в декодере gzip Safari. Сервер доставляет вредоносный gzip для записи произвольных файлов на уязвимой macOS. | Kitploit
Инструменты/GitHubGitHub/retx0/cve-2026-20660
Генерация полезной нагрузкиАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на Проникновение
GitHubretx0/cve-2026-20660

CVE-2026-20660

Автономный PoC-эксплойт для CVE-2026-20660: обход каталогов в декодере gzip Safari. Сервер доставляет вредоносный gzip для записи произвольных файлов на уязвимой macOS.

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

Популярное

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

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

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

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

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

Пакет PoC для CVE-2026-20660

Эта папка содержит автономный proof-of-concept для:

  • CVE-2026-20660
  • Обход пути CFNetwork NSGZipDecoder через gzip FNAME
  • Воздействие на уязвимый macOS Safari с включенным автооткрытием

1. Структура каталогов

  • server.py: Основной PoC-сервер с настраиваемой глубиной обхода и именем цели
  • server_overwrite.py: Вариант, целенаправленно записывающий ../../pwn.sh
  • README.md: Заметки по воспроизведению и журнал операций

2. Предварительные условия

  1. Цель — уязвимый macOS Safari (до линии исправлений 26.3).
  2. Включена настройка Safari:
    • Настройки -> Основные -> Открывать безопасные файлы после загрузки
  3. У вас есть доступ к этому хосту из целевого браузера.

3. Краткое описание первопричины

Дифф патча показывает, что поведение -[NSGZipDecoder filenameWithOriginalFilename:] изменилось:

  • Старое поведение: возвращает имя, полученное из gzip FNAME, напрямую.
  • Новое поведение: применяет lastPathComponent перед возвратом.

Это блокирует компоненты каталогов, такие как ../, и абсолютные пути в FNAME.

4. Почему Content-Disposition не является вектором

Имя файла HTTP может быть чистым, но эксплуатация все равно удается.

  • Имя файла из HTTP Content-Disposition: чистое (пример: report.gz)
  • FNAME заголовка gzip: вредоносный (пример: ../../proof.txt)

Очистка на стороне Safari в основном применяется к именам на уровне HTTP, а не к встроенному gzip FNAME, обрабатываемому NSGZipDecoder в уязвимом потоке.

5. Быстрый старт

Из корня репозитория:

root@kitploit:~
python3 exploit/cve-2026-20660/server.py --port 8888 --depth 2

Откройте в уязвимом Safari:

root@kitploit:~
http://<server-ip>:8888/

Нажмите Trigger depth=2.

6. Проверка

После запуска проверьте результат записи на целевой машине:

root@kitploit:~
ls -la ~/cve-2026-20660-proof.txt
cat ~/cve-2026-20660-proof.txt

Для варианта с перезаписью:

root@kitploit:~
python3 exploit/cve-2026-20660/server_overwrite.py --port 9999

Затем откройте:

root@kitploit:~
http://<server-ip>:9999/

Проверьте:

root@kitploit:~
ls -la ~/pwn.sh
cat ~/pwn.sh

7. Примечания по параметрам (server.py)

  • --bind, -b: адрес привязки (по умолчанию 0.0.0.0)
  • --port, -p: порт прослушивания (по умолчанию 8888)
  • --depth, -d: глубина обхода (количество повторений ../, по умолчанию 2)
  • --name, -n: имя целевого выходного файла

Примеры:

root@kitploit:~
# запись в ~/proof.txt при совпадении глубины с вложенностью рабочего каталога
python3 exploit/cve-2026-20660/server.py -p 8888 -d 2 -n proof.txt

# явный тест с абсолютным путем (если разрешено резолвером)
python3 exploit/cve-2026-20660/server.py -p 8888
# затем используйте: /download?depth=0&fname=/tmp/proof.txt

8. Наблюдаемое поведение (текущие заметки)

  1. Распаковка может происходить во временном каталоге внутри ~/Downloads, поэтому глубина часто должна быть >= 2, чтобы выйти в ~/.
  2. Существующие целевые файлы могут не перезаписываться; стек загрузки может автоматически переименовывать файлы во избежание коллизий.
  3. В наблюдаемых запусках скрипты-пейлоады могут появляться с битом исполняемости; проверяйте в зависимости от сборки/конфигурации.

9. Устранение неполадок

  1. Запись не наблюдается:
    • Убедитесь, что настройка автооткрытия Safari включена.
    • Увеличьте глубину (2, 3, 4) и повторите тест.
  2. Файл остается в Downloads:
    • Глубина слишком мала для текущей вложенности каталога распаковки.
  3. Соединение не устанавливается:
    • Проверьте брандмауэр хоста и доступность в локальной сети.
  4. Целевой путь не изменился:
    • Конфликт существующих имен файлов может привести к переименованию вывода.

10. Безопасность и рамки применения

Используйте только в авторизованных тестовых средах.

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

11. Рекомендуемый сбор доказательств

  1. Скриншот версии Safari и сборки ОС.
  2. Журналы консоли PoC-сервера (запрос + FNAME).
  3. Команды проверки файловой системы и вывод.
  4. Список каталогов до/после для целевого пути.

12. Подробное описание

Для более подробного объяснения см.:

  • https://ret0.dev/posts/cve-2026-20660/
Скачать инструмент