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

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

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

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

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

Категории

Все категории
Loading categories
cve-2026-105221-gist-tls — CVE-2026-105221 - gist RubyGem - Высокий - MITM - Кража токена GitHub OAuth | Kitploit
Инструменты/GitHubGitHub/abraxas/cve-2026-105221-gist-tls
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийСетевая безопасностьКриптографияТестирование на ПроникновениеЛаборатории и Практика
GitHubabraxas/cve-2026-105221-gist-tls

cve-2026-105221-gist-tls

CVE-2026-105221 - gist RubyGem - Высокий - MITM - Кража токена GitHub OAuth

Репозиторий
119 ч 39 мин назадЕщё не проверено

Популярное

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

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

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

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

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

Abraxas Labs - cve-2026-105221-gist-tls

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  cve-2026-105221-gist-tls

cve-2026-105221-gist-tls

gist RubyGem < 6.1.0 - defunkt

http_connection устанавливает OpenSSL::SSL::VERIFY_NONE. HTTPS до GitHub всё ещё шифрует трафик, но принимается любой сертификат. Узел на пути может прочитать OAuth-токен, который отправляет CLI, а затем читать и изменять gists жертвы.

IDCVE-2026-105221
CWECWE-295
CVSSHigh: 7.4 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N (VulnCheck 4.0: 9.1)
Продуктgist
Затронуто4.0.0 по 6.0.0. Лабораторная версия 6.0.0. Исправлено в 6.1.0 (07ccc1a).
АутентификацияMITM на пути к CLI gist
ЛицензияGNU Affero GPL v3.0
Лабораториятолько 127.0.0.1

Что может сделать атакующий

Атакующий находится на пути и забирает токен GitHub.

  • Предъявить любой TLS-сертификат. gist 6.0.0 не проверяет собеседника. Достаточно самоподписанного сертификата с CN=mitm.invalid.
  • Прочитать Authorization: token .... Вход (gist --login) и загрузка/список/удаление gist проходят через http_connection. Токен в ~/.gist едет по этому сокету.
  • Читать и редактировать gists жертвы. Этот токен — учётные данные GitHub OAuth с областью gist. Приватные gists, обновления, удаления.
  • Перехватить вход в процессе. Device-flow и вход по имени пользователя/паролю обращаются к GitHub по тому же непроверенному TLS.

Им нужна позиция в сети: враждебный Wi-Fi, прокси, машина посередине. Это не неаутентифицированный удалённый RCE против сервера.

6.1.0 устанавливает VERIFY_PEER. Тот же поддельный сертификат отбрасывается с certificate verify failed (self-signed certificate), и токен никогда не покидает клиент.

Как я это нашёл

VulnCheck опубликовал CVE-2026-105221. Siyang Wu сообщил о нём. Issue 373 — публичный тикет. PR 374 переключил режим проверки. Я воспроизвёл публичный CVE в лаборатории. Публичного PoC не было.

lib/gist.rb http_connection в 6.0.0:

if uri.scheme == "https"
  connection.use_ssl = true
  connection.verify_mode = OpenSSL::SSL::VERIFY_NONE
end

6.1.0 — это VERIFY_PEER.

Лаборатория на loopback — это поддельный HTTPS-заглушка GitHub Enterprise с самоподписанным сертификатом. GITHUB_URL=https://127.0.0.1:8443 переводит gist в режим GHE (POST /api/v3/gists). Лабораторный токен CVE-2026-105221-WITNESS лежит в соответствующем файле ~/.gist.*. gist 6.0.0 завершает TLS, заглушка захватывает Authorization: token CVE-2026-105221-WITNESS и записывает свидетельство. gist 6.1.0 против той же заглушки терпит неудачу на TLS. Счётчик захватов на 6.1.0 остаётся нулевым. Ничего не обращается к api.github.com.

SUCCESS CVE-2026-105221 vuln-tls=ok token-captured=1 patched-tls=fail witness-written=yes CVE-2026-105221-WITNESS

Ошибочные повороты уже зафиксированы: нет. Первый run.sh напечатал SUCCESS. Обратная оболочка. Театр. Оракул — это захваченный лабораторный токен на 6.0.0 и ошибка самоподписанного TLS на 6.1.0.

Лаборатория

cd lab
./run.sh

Цель только https://127.0.0.1:18210 (контейнер 8443). run.sh устанавливает gist 6.0.0 и 6.1.0 из RubyGems, обслуживает заглушку внутри контейнера, затем сносит стек. Самоподписанный сертификат. Никакого настоящего GitHub.

Исправление

Обновите gem gist до 6.1.0 или новее.

Ссылки

  • CVE-2026-105221
  • NVD
  • defunkt/gist теги v6.0.0 / v6.1.0
  • Issue 373
  • PR 374 / 07ccc1a
  • lib/gist.rb v6.0.0 L466-L468
  • CWE-295

Лицензия

GNU Affero GPL v3.0

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