Aller au contenu

CVE-2026-42208 : Injection SQL dans la vérification de clé API Proxy LiteLLM

La vulnérabilité identifiée réside dans la logique de validation des clés API du serveur proxy LiteLLM. L’examen technique du code source affecté révèle que le serveur proxy effectue des recherches en base de données pour vérifier les clés API entrantes. Dans les versions affectées, l’entrée fournie dans l’en-tête Authorization est concaténée directement dans la chaîne de caractères de la requête SQL utilisée pour cette vérification.

Le point d’injection est déclenché lorsque le mécanisme de gestion des erreurs du proxy invoque la vérification de clé après un échec de validation initial. Un attaquant n’a pas besoin d’identifiants valides pour atteindre ce chemin vulnérable. En injectant des commandes SQL dans la chaîne du jeton Bearer, un attaquant force le serveur proxy à exécuter des requêtes non autorisées contre la base de données backend.

Le vecteur d’attaque est basé sur le réseau et ne nécessite aucune authentification. Un attaquant envoie une requête POST standard vers n’importe quelle route LLM publique (par exemple, /chat/completions) avec un en-tête Authorization contenant une charge utile SQL au lieu d’une clé API légitime.

La base de données backend exécute le SQL injecté, permettant l’extraction de clés stockées, de paramètres de configuration et d’autres métadonnées. Comme la logique de l’application échoue à paramétrer l’entrée, le SQL injecté devient partie intégrante du contexte de requête de l’application.

La détection doit se concentrer sur la surveillance des anomalies dans les journaux du proxy web et l’activité de la base de données :

  1. En-têtes Authorization malveillants : Journaux réseau montrant des volumes élevés de requêtes POST où l’en-tête Authorization contient des séquences de caractères suspectes associées à l’injection SQL (par exemple, SELECT, UNION, INSERT).
  2. Erreurs internes du proxy : Un pic dans les codes d’état de la série 500 dans les journaux LiteLLM correspondant aux requêtes avec des jetons Bearer malformés ou suspects, indiquant des tentatives d’injection enregistrées via le chemin d’erreur.
  3. Anomalies de base de données : Journaux de requêtes de base de données montrant des opérations SELECT ou UNION inattendues provenant du compte de service proxy qui ne correspondent pas au trafic de vérification de clé API standard.
title: Detect LiteLLM SQL Injection Attempt
logsource:
product: litellm
category: web_server
detection:
selection:
http_method: 'POST'
http_header_authorization: '*Bearer *'
keywords:
- 'SELECT '
- 'UNION '
- 'INSERT '
- 'UPDATE '
- 'DELETE '
- 'FROM '
condition: selection AND keywords
level: critical

Effectuez une mise à niveau vers la version 1.83.7 de LiteLLM ou plus récente, où les requêtes en base de données ont été refactorisées pour utiliser des méthodes d’entrée paramétrées.

Si une mise à niveau immédiate n’est pas possible, la modification de configuration temporaire suivante atténue l’exploit en désactivant le chemin de code vulnérable :

  • Définissez disable_error_logs: true dans le fichier de configuration LiteLLM.