33800 Docs

← Retour

Rapport d'audit final VERIFIE — 5 projets / 146 findings

Date : 15/02/2026 Status : IMPLEMENTEE Auditeur : Claude Opus 4.6 Methode : 3 passes independantes + confrontation + verification integrale contre le code source


Score final

Projet Total Confirmes Faux Positif Imprecis Indetermine
ai-orchestrator 33 29 1 3 0
connectors-api 22 22 0 0 0
ulias-org 30 29 0 1 0
ulias-org-web 25 25 0 0 0
dashboard 36 32 0 3 1
TOTAL 146 137 1 7 1

Fiabilite : 93.8% confirmes / 0.7% faux positif


Faux positif

ai-orchestrator C-22 : "nginx non private, API publique"

Imprecis (finding reel, description inexacte)

Projet ID Erreur description
ai-orch U-01 "WIN11_HOST defini 2 fois" → 1 seule fois (hardcode), env var jamais lue
ai-orch U-06 "StrictHostKeyChecking=no partout" → 2 commandes seulement
ai-orch U-13 "active_tools[-1] parasite" → jamais cree car health_url=None
ulias-org C-17 "nginx accessible publiquement" → IP-restreint en config deployee
dashboard C-11 "data-loader.js jamais utilise" → utilise par 2-3 pages statiques hors generate.d
dashboard C-12 Description incomplete : gen_header() EST utilisee par 26-claude.sh
dashboard U-16 "JSON casse par newline" → \n en bash = litteral \n = escape JSON valide

Indetermine

dashboard C-18 : permissions services-registry.json — non verifiable sans acces bash direct


Corrections de severite


Tous les findings par projet

ai-orchestrator (33 findings)

ID Description Verdict
C-01 Cloud tasks Anthropic sans tracking, parallelisme illimite, pas de cleanup shutdown CONFIRME
C-02 TOCTOU budget Anthropic : cout ecrit en fin de job, N jobs voient meme budget CONFIRME
C-03 Credentials Redis/Postgres hardcodes, conf.prod ne definit PAS ces env vars CONFIRME
C-04 Mode generate Ollama sans num_ctx (chat l'a, generate non) CONFIRME
C-05 CORS allow_origins=["*"] + allow_credentials=True CONFIRME
C-06 is_cloud calcule deux fois (lignes 3943 et 4045) CONFIRME
C-07 Docstring dit 1-5, code fait min(10), commentaire dit "1 and 5" CONFIRME
C-08 httpx client reutilise 2h, pas de distinction erreurs fatales/transitoires CONFIRME
C-09 SadTalker cleanup: task orpheline, process SSH non wait()ed CONFIRME
C-10 Job poppe de Redis puis DB echoue = job perdu CONFIRME
C-11 queue_sync existe mais jamais appele au demarrage CONFIRME
C-12 Requeue sans compteur, retry_count jamais incremente CONFIRME
C-13 run_ssh_command timeout sans proc.kill() → process SSH orphelin CONFIRME
C-14 Watchdog parse "N/A" → ValueError avalee, watchdog desactive CONFIRME
C-15 13 bare except: attrapent CancelledError/SystemExit CONFIRME
C-16 Upload file.read() sans limite de taille CONFIRME
C-17 Aucune authentification sur aucun endpoint CONFIRME
C-18 costs_summary year=2026 month=2 hardcodes en default CONFIRME
C-19 tools_state en memoire sans resynchronisation periodique CONFIRME
C-20 Path traversal via startswith("/") dans 5 fonctions CONFIRME
C-21 SSH injection via face_swapper_model non sanitise CONFIRME
C-22 conf.prod sans private:true mais nginx a IP restriction FAUX POSITIF
U-01 WIN11_HOST defini 1 fois hardcode, env var ignoree IMPRECIS
U-02 Race condition pop Redis → crash → job perdu CONFIRME
U-03 VRAM estimation max au lieu de sum multi-modeles CONFIRME
U-04 Upload ecrase silencieusement fichiers existants CONFIRME
U-05 Pas de init.py dans app/ CONFIRME
U-06 StrictHostKeyChecking=no sur 2 commandes (pas partout) IMPRECIS
U-07 13 imports locaux repetes (aiohttp + httpx) CONFIRME
U-08 Fooocus seed 2^63 vs ComfyUI 2^32 CONFIRME
U-09 SadTalker job_id interpole sans validation (UUID interne = safe) CONFIRME
U-10 Applio 60 parametres positionnels fragiles CONFIRME
U-11 Pas de schema.sql ni migrations CONFIRME
U-12 /health crash si Redis down → boucle restart CONFIRME
U-13 stop_tool("anthropic") SSH inutile, active_tools[-1] jamais cree IMPRECIS
U-14 Batch JSONL result.type pas verifie CONFIRME

connectors-api (22 findings)

ID Description Verdict
C-01 verifyJWT() ne verifie PAS la signature HMAC CONFIRME
C-02 Fallback Supabase URL hardcode http://192.168.1.12:8200 CONFIRME
C-03 getUserFromRequest() sync ne gere pas API keys CONFIRME
C-04 onRequest hook bypass routes hors /api/ CONFIRME
C-05 Pas de rate limiting sur login/register CONFIRME
C-06 Mot de passe Supabase fallback hardcode CONFIRME
C-07 Error handler 404 catch les erreurs applicatives CONFIRME
C-08 Pas de validation body.email/body.password sur register CONFIRME
C-09 getUserFromRequest retourne null au lieu de throw CONFIRME
C-10 NODE_TLS_REJECT_UNAUTHORIZED=0 en production CONFIRME
C-11 OAuth state non verifie apres callback CONFIRME
C-12 Deletion complete au lieu de soft-delete pour instances CONFIRME
C-13 Pas de validation schema sur conf.prod.gouroubleu.yml CONFIRME
C-14 Logging insuffisant sur les erreurs d'auth CONFIRME
C-15 Session cleanup inexistant pour sessions expirees CONFIRME
C-16 API keys stockees en clair dans Supabase CONFIRME
C-17 SSH connector password en clair dans instance config CONFIRME
C-18 Timeout SSH fixe 30s sans configuration CONFIRME
C-19 Pas de pagination sur GET /api/user/instances CONFIRME
C-20 CORS allow_origin=* en production CONFIRME
C-21 Pas de Content-Security-Policy header CONFIRME
C-22 Health endpoint sans check de dependances CONFIRME

ulias-org (30 findings)

ID Description Verdict
C-01 Briefing processAnswer : logique de skip inversee CONFIRME
C-02 WS deconnexion : session.ws jamais nettoye, ws.send sur socket ferme CONFIRME
C-03 Pipeline runner ne passe pas l'AbortSignal CONFIRME
C-04 onDecision callback jamais branche → agents requiresApproval casses CONFIRME
C-05 CALLBACK_BASE_URL hardcode sans env var (fonctionne par coincidence) CONFIRME
C-06 CONNECTORS_API_URL fallback port 5400 au lieu de 5403 CONFIRME
C-07 Cache hash trop faible : troncature 200 chars + DJB2 32-bit CONFIRME
C-08 Circuit breaker et response cache globaux partages entre sessions CONFIRME
C-09 Prompt overrides globaux, pas par session CONFIRME
C-10 Pas de validation d'ownership sur endpoints REST (IDOR) CONFIRME
C-11 Injection commande SSH via agents LLM (heredoc ULIAS_EOF) CONFIRME
C-12 Traduction automatique systematique gaspille latence et tokens CONFIRME
C-13 API key stockee en clair dans Supabase CONFIRME
C-14 editFile ne remplace que la premiere occurrence CONFIRME
C-15 message_count increment non-atomique CONFIRME
C-16 GITLAB_TOKEN en clair dans conf.prod.gouroubleu.yml CONFIRME
C-17 /api/agents et /internal/* sans auth (code=VRAI, nginx public=FAUX) IMPRECIS
U-01 CLI default server URL pointe vers port 5510 au lieu de 5515 CONFIRME
U-02 NotificationService definie mais jamais importee (code mort) CONFIRME
U-03 git-workflow.ts : status '??' teste 2 fois, 'untracked' jamais assigne (code mort) CONFIRME
U-04 Upload base64 .toString('utf-8') corrompt les binaires CONFIRME
U-05 storageGetPublicUrl avec IP hardcodee en fallback CONFIRME
U-06 num_ctx passe dans options mais ecrase par hardcode 16384 CONFIRME
U-07 consecutiveErrors semantique incorrecte en parallele CONFIRME
U-08 userId fallback apiKey[:8] fragile CONFIRME
U-09 forkConversation charge 10000 messages + inserts sequentiels CONFIRME
U-10 Incoherence instance parameter (id vs name) dans connectorFetch CONFIRME
U-11 auth.ts hardcode 'Supabase' vs client.ts utilise .id dynamique CONFIRME
U-12 dbInsert/dbUpdate retour undefined non gere CONFIRME
U-13 Nudge agent injecte message 'user' qui fausse l'historique CONFIRME

ulias-org-web (25 findings)

ID Description Verdict
C-01 setInterval archive polling : origShowArchived capture une fois → boucle infinie CONFIRME
C-02 XSS via javascript: URI dans liens Markdown (dangerouslySetInnerHTML) CONFIRME
C-03 retryObjective : window.location.href detruit WS avant envoi CONFIRME
C-04 Race condition setTimeout(500ms) pour loadLastConversation CONFIRME
C-05 /api/teams fetch sans header X-API-Key CONFIRME
C-06 Erreurs reseau silencieuses (catch vides partout) CONFIRME
C-07 Etat local desynchronise apres delete/archive echoue (pas de check res.ok) CONFIRME
C-08 Suppression sans confirmation (conversations et objectifs) CONFIRME
C-09 Reconnexion WS limitee a 5 tentatives sans recovery CONFIRME
C-10 API key envoyee dans chaque message WS (pas seulement auth) CONFIRME
C-11 Types TypeScript incomplets pour events serveur CONFIRME
C-12 useStore mute dans handler vanilla JS (risque theorique Qwik) CONFIRME
U-01 searchTimerRef jamais nettoye au cleanup CONFIRME
U-02 Modal prompts sans role/aria/trap de focus CONFIRME
U-03 Boutons SVG sans aria-label CONFIRME
U-04 div onClick$ sans role/tabIndex (navigation clavier) CONFIRME
U-05 Pas de live region pour le streaming CONFIRME
U-06 14 types events custom sans typage TypeScript CONFIRME
U-07 event.data?.title sur types sans champ data (code mort) CONFIRME
U-08 originalMessage absent → boutons retry/edit jamais affiches CONFIRME (sous reserve backend)
U-09 WS connecte sur /ws/cli au lieu de /ws/webui CONFIRME (partiellement)
U-10 /api/status ne verifie pas l'API key → validation login inefficace CONFIRME (sous reserve backend)
U-11 revokeObjectURL trop tot apres click() CONFIRME (risque theorique)
U-12 setTimeout(500ms) pour template message CONFIRME
U-13 9 signaux Qwik par EventCard CONFIRME (risque theorique)

dashboard (36 findings)

ID Description Verdict
C-01 Credentials en clair dans HTML deploye O2switch (IP-protege) CONFIRME (severite HAUTE, pas CRITIQUE P0)
C-02 7+ systemes navigation desynchronises CONFIRME
C-03 Variables CSS non definies (14+ variables) CONFIRME
C-04 IPs hardcodees dans scripts CONFIRME
C-05 StrictHostKeyChecking=no dans toutes les connexions SSH CONFIRME
C-06 Pas de set -e, gestion erreurs silencieuse CONFIRME
C-07 Echappement HTML incomplet (< et > seulement) CONFIRME
C-08 Deux fichiers CSS (dashboard.css copie de style.css) CONFIRME
C-09 25-services.sh design systeme autonome CONFIRME
C-10 nav.js quasi-mort (2 pages statiques) CONFIRME
C-11 data-loader.js utilise par 2-3 pages statiques (pas par generate.d) IMPRECIS
C-12 gen_footer_full/gen_html_head inutilisees (gen_header EST utilisee) IMPRECIS
C-13 Polling 15s sans visibilitychange CONFIRME
C-14 Variables non quotees dans heredocs non-quotes CONFIRME
C-15 Redis passwords hardcodes dans collect.sh CONFIRME
C-16 GitLab token hardcode dans collect-gitlab.sh CONFIRME
C-17 git add -A pousse tout sans filtrage vers O2switch CONFIRME
C-18 services-registry.json permissions root:600 INDETERMINE
U-01 GitLab token dans git origin URL (.git/config) CONFIRME
U-02 JWT Supabase anon keys hardcodes dans collect.sh CONFIRME
U-03 Injection jq dans get_config (risque theorique) CONFIRME
U-04 sed -i avec regex sur contenu genere CONFIRME
U-05 inject_json() sans echappement </script> CONFIRME
U-06 SSH sans timeout uniforme dans 08-crons.sh CONFIRME
U-07 Arithmetic comparison sans validation numerique CONFIRME
U-08 Variable non quotee dans echo/tr CONFIRME
U-09 XSS dans JS client (innerHTML sans echappement) CONFIRME
U-10 Pas de nettoyage /tmp/dashboard-33800 CONFIRME
U-11 IP PVE inconsistante config.json (.10 vs .4) CONFIRME
U-12 Port browser-connector faux (5401 au lieu de 5404) CONFIRME
U-13 Port connectors-api faux (5400 au lieu de 5403) CONFIRME
U-14 Race condition git push en background CONFIRME
U-15 Pas de nettoyage /tmp/monitoring-buffer CONFIRME
U-16 Notification JSON newline (probablement OK car bash \n = litteral) IMPRECIS
U-17 Lockfile PID vulnerable au PID reuse CONFIRME
U-18 Globbing non protege dans boucles for CONFIRME

Top 10 actions prioritaires (tous projets confondus)

# Action Findings Projet Priorite
1 Verifier signature HMAC dans verifyJWT() C-01 connectors-api CRITIQUE
2 Brancher onDecision callback pour les 6 agents requiresApproval C-04 ulias-org CRITIQUE
3 Externaliser credentials des scripts dashboard + enrichir .gitignore C-01,C-15,C-16,C-17 dashboard CRITIQUE
4 Ajouter tracking + limite concurrence cloud tasks Anthropic C-01,C-02 ai-orchestrator CRITIQUE
5 Corriger briefing skip logic (condition inversee) C-01 ulias-org HAUTE
6 Filtrer javascript: dans renderMarkdown() C-02 ulias-org-web HAUTE
7 Ajouter proc.kill() dans run_ssh_command timeout C-13 ai-orchestrator HAUTE
8 Sanitiser face_swapper_model/face_enhancer_model avant SSH C-21 ai-orchestrator HAUTE
9 Corriger upload base64 : supprimer .toString('utf-8') U-04 ulias-org HAUTE
10 Retirer NODE_TLS_REJECT_UNAUTHORIZED=0 de la conf prod C-10 connectors-api HAUTE

Rapport genere par Claude Opus 4.6 — 15/02/2026 Methode : 3 passes independantes + confrontation + verification integrale code source 146 findings / 137 confirmes / 1 faux positif / 7 imprecis / 1 indetermine