Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7da16a82e5 |
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user