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
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