33800 Docs

← Retour

AUDIT COMPLET - connectors-api

Date : 15/02/2026 Status : IMPLEMENTEE Projet : /stock_8to/33800-stack/projects/connectors-api/ Runtime : Bun / Elysia (TypeScript) Fichiers audites : 35 fichiers source TypeScript


RESUME EXECUTIF

Severite Nombre
CRITIQUE 5
HAUTE 10
MOYENNE 10
BASSE 9
TOTAL 34

1. SECURITE

S-01 [CRITIQUE] JWT signature non verifiee

S-02 [CRITIQUE] POST /api/connectors/:id/token sans authentification

S-03 [CRITIQUE] /api/fetch accepte les requetes non authentifiees

S-04 [HAUTE] Injection de commande SSH dans setupAutoKey

S-05 [HAUTE] Variable escapedContent inutilisee, contenu brut dans heredoc

S-06 [HAUTE] Cle de chiffrement par defaut en production

S-07 [HAUTE] Salt statique 'salt' pour la derivation de cle

S-08 [HAUTE] new Function() pour le code utilisateur (transform actions)

S-09 [HAUTE] OAuth state non signe (CSRF)

S-10 [MOYENNE] CORS n'inclut pas X-API-Key dans allowedHeaders

S-11 [MOYENNE] listActive retourne TOUS les tunnels (pas filtres par user)


2. BUGS LOGIQUES

B-01 [CRITIQUE] wireguard.ts utilise la mauvaise API Supabase

B-02 [HAUTE] Ternaire scope check est un no-op

B-03 [HAUTE] Variable shadowing: auth (AuthResult) vs auth (service)

B-04 [MOYENNE] audit.log appele avec les mauvais noms de champs

B-05 [MOYENNE] evaluateCondition utilise egalite lache (==)

B-06 [MOYENNE] convertToOpenSSH ne fonctionne pas correctement

B-07 [MOYENNE] Dead code dans actions.list() : query/params construits mais inutilises


3. HARDCODE

H-01 [MOYENNE] IP:port hardcodee pour ai-orchestrator

H-02 [MOYENNE] IP:port hardcodee pour notif-logger

H-03 [MOYENNE] IP:port hardcodee pour Supabase dans isAdmin

H-04 [BASSE] GPU_NAMES duplique dans 2 fichiers

H-05 [BASSE] Version incoherente dans 3 endroits


4. SESSIONS / AUTH

A-01 [CRITIQUE] (= S-01) JWT signature non verifiee

A-02 [HAUTE] /api/fetch scope check conditionnel mal construit


5. API /api/fetch

F-01 [CRITIQUE] (= S-03) Requetes non authentifiees acceptees

F-02 [HAUTE] (= B-02) Scope FETCH vs FETCH_READ jamais differencie


6. API /api/ssh/execute

SSH-01 [HAUTE] (= S-04) Injection dans setupAutoKey

SSH-02 [HAUTE] (= S-05) Heredoc non securise dans upload


7. SUPABASE

DB-01 [CRITIQUE] (= B-01) wireguard.ts utilise une API Supabase inexistante

DB-02 [BASSE] Audit search charge 1000 lignes et filtre en memoire


8. WEBSOCKET

WS-01 [BASSE] Sessions SSH WebSocket sans timeout d'inactivite

WS-02 [BASSE] Pas de limite du nombre de sessions WebSocket par utilisateur


9. CONNECTORS REGISTRY

R-01 [BASSE] auth.ts setToken ne verifie pas la propriete du connecteur


10. CODE MORT / QUALITE

D-01 [BASSE] console.log de debug laisses en production

D-02 [BASSE] Dead code dans actions.ts (query + params)

D-03 [BASSE] Duplication de la logique de chiffrement dans 3 fichiers

D-04 [BASSE] AuditAction type n'inclut pas tous les actions utilisees


MATRICE DE PRIORITE

A corriger IMMEDIATEMENT

  1. S-01 : Verification signature JWT (usurpation d'identite)
  2. S-02 : Auth sur POST /api/connectors/:id/token
  3. S-03 : Auth obligatoire sur /api/fetch
  4. B-01 : Reecrire wireguard.ts avec le bon wrapper Supabase
  5. S-06 : Erreur fatale si SSH_ENCRYPTION_KEY absent

A corriger RAPIDEMENT (< 1 semaine)

  1. S-04 : Injection commande setupAutoKey
  2. S-05 : Heredoc upload securise
  3. S-07 : Salt aleatoire pour scrypt
  4. S-08 : Sandbox pour transform actions
  5. S-09 : Signer le state OAuth
  6. B-02 : Ternaire scope FETCH_READ
  7. B-03 : Shadowing variable auth
  8. B-04 : Noms de champs audit.log
  9. S-11 : Filtrer tunnels par user

A planifier (< 1 mois)

15-34. Tous les MOYENNE et BASSE


NOTE

Cet audit est en LECTURE SEULE. Aucun fichier n'a ete modifie. Les numeros de ligne peuvent evoluer si des modifications sont faites entre-temps. Chaque probleme a ete verifie directement dans le code source.