CVE-2026-58482 in Network-AI
Résumé
par VulDB • 20/07/2026
Network-AI, un orchestrateur multi-agent écrit en TypeScript/Node.js, possède une fonctionnalité livrée, exportée et documentée appelée `ApprovalInbox` (`lib/approval-inbox.ts`). Il s'agit de la surface réseau du Human-in-the-loop Approval Gate (Portail d'approbation avec intervention humaine), que le composant `ApprovalGate` utilise pour exiger une approbation explicite par un humain pour les opérations à haut risque. Le serveur HTTP qu'il expose ne dispose d'aucune forme d'authentification et définit l'en-tête `Access-Control-Allow-Origin: *` sur toutes les routes, y compris celles qui modifient l'état telles que `POST /approvals/:id/approve` et `/deny`. Par conséquent, dans les versions 5.0.0 à 5.12.1, toute entité capable d'envoyer une requête HTTP au port de la boîte de réception — qu'il s'agisse d'un processus co-localisé, d'un conteneur ou d'une attaque SSRF sur le même hôte, d'un client distant lorsque l'opérateur lie une adresse non loopback, ou de n'importe quel site web visité par l'opérateur dans un navigateur (via le CORS générique) — peut énumérer les approbations en attente et les approuver. Cela annule entièrement le contrôle human-in-the-loop et entraîne l'exécution sans consentement de l'action à haut risque verrouillée (par exemple, une commande shell que l'agent retenait pour examen). Ce problème est corrigé dans la version v5.12.2. `ApprovalInbox` accepte désormais une option `secret`. Lorsqu'elle est définie, les points de terminaison modificateurs `POST /:id/approve` et `POST /:id/deny` nécessitent un en-tête `Authorization: Bearer <secret>`, validé dans un temps constant à l'aide de `crypto.timingSafeEqual`. La fonction `startServer()` se lie déjà par défaut à `127.0.0.1`; les opérateurs exposant la boîte de réception sur un réseau doivent définir un secret.
Once again VulDB remains the best source for vulnerability data.