Dans certains modes de déploiement, 9Router fait confiance à l’en-tête X-9r-Real-Ip pour décider qu’une requête provient de localhost. Un client distant peut alors être considéré comme local et contourner la clé API de l’API publique LLM.
Analyse technique
La fonction isLocalRequest() s’appuie sur X-9r-Real-Ip, en supposant que le wrapper custom-server.js l’a dérivé de l’adresse socket et a supprimé toute valeur entrante. Lorsque Next.js est exposé sans ce wrapper, l’en-tête fourni par le client atteint la logique d’autorisation et peut provoquer l’omission du contrôle de clé API pour /api/v1/*.
Impact, versions et correctif
Détection / vérification
Rechercher dans les journaux des requêtes vers /api/v1/* portant X-9r-Real-Ip avec une adresse de boucle locale, notamment lorsque l’adresse réseau réelle est externe. Vérifier les modes de démarrage et la présence effective du wrapper.
Action recommandée
Corriger immédiatement la chaîne de proxy et de confiance des en-têtes, restreindre l’API publique et consulter les journaux pour les appels sans clé API.
Sources
Priorisation DFS : P3 · confiance de recoupement standard · 1 source(s).