chore: audit securite (todo.txt)

todo.txt
This commit is contained in:
2026-06-21 08:26:17 +02:00
parent c297beb494
commit 7da16a82e5
+17 -28
View File
@@ -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 ## 🔴 CRITIQUE (exploitable à distance / fuite de données / RCE)
l'activite du user dans VSCode : RAS
- ouverture de fichier / changement d'onglet (event 'open')
- sauvegarde de fichier (event 'save')
- focus/blur de la fenetre (event 'focus')
Envoie un POST JSON a la URL configuree (`vscodestat.url`). ## 🟠 ÉLEVÉ
RAS
NB : extension force-installed dans les containers vscode + vscodeluigi ## 🟡 MOYEN
(cf vscode/todo.txt). C'est l'extension de monitoring activite dev. 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 # Audit OK — aucun finding exploitable le 2026-06-21
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.