diff --git a/todo.txt b/todo.txt index 59a6779..4033598 100644 --- a/todo.txt +++ b/todo.txt @@ -1,33 +1,22 @@ -REVIEW DE CODE — 2026-04-26 -============================================ +# AUDIT SÉCURITÉ — vscodestat — 2026-06-21 +# Stack: extension VS Code (TypeScript) de télémétrie. Émet des events (open/save/focus/ping) +# en POST vers une URL configurée (vscodestat.url, pointée sur monitoringserver via env). Pas de +# serveur, tourne dans l'IDE de l'utilisateur. gitleaks: no leaks found. +# Méthode: revue de code statique. -Extension VSCode (TypeScript) qui collecte des metriques sur -l'activite du user dans VSCode : -- ouverture de fichier / changement d'onglet (event 'open') -- sauvegarde de fichier (event 'save') -- focus/blur de la fenetre (event 'focus') +## 🔴 CRITIQUE (exploitable à distance / fuite de données / RCE) +RAS -Envoie un POST JSON a la URL configuree (`vscodestat.url`). +## 🟠 ÉLEVÉ +RAS -NB : extension force-installed dans les containers vscode + vscodeluigi -(cf vscode/todo.txt). C'est l'extension de monitoring activite dev. +## 🟡 MOYEN +RAS -SECURITE --------- +## 🔵 DURCISSEMENT (faible) +[ ] makeHttpRequest POST vers vscode.workspace.getConfiguration('vscodestat.url') sans + validation de protocole/host (src/extension.ts). L'URL est posée par l'opérateur (settings / + env VSCODESTAT_USER dans l'entrypoint vscode), pas par un tiers → pas exploitable. À noter : + n'envoie que des métadonnées (nom de projet, event), pas de contenu de fichier. -[ ] makeHttpRequest envoie au serveur l'event sans auth - src/extension.ts : `fetch(url, { method: 'POST', - headers: ..., body: JSON.stringify(json) })`. Pas de token. - Cote serveur (cf monitoringserver/todo.txt), `/vscodestat` est - aussi sans auth => tout le monde peut envoyer des metriques. - -BUGS / FRAGILITE ----------------- -[ ] Pas de batching - Chaque event = 1 fetch. Pas de queue + flush periodique. - Si reseau down, perte d'events (pas de retry). A capper. - -[ ] makeHttpRequest catch silencieux - src/extension.ts : catch + console.error. Pas de - retry, pas de notification user. Si serveur down, events - perdus. +# Audit OK — aucun finding exploitable le 2026-06-21