chore(release): v0.7.18
Corrige le refus "chemin de configuration hors du dossier attendu" : le service exigeait %ProgramData%\WireGuard\ alors que l'app écrit sa config dans %APPDATA%\WGSecure\ (seul dossier inscriptible par un utilisateur non-admin). Ce chemin n'étant pas recalculable depuis LocalSystem, la validation repose désormais sur l'usurpation d'identité du client du pipe : le fichier doit être ouvrable par l'appelant lui-même, plus des contrôles structurels sur le nom et le dossier. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -6,6 +6,14 @@ Ce projet suit le [Versionnage Sémantique](https://semver.org/lang/fr/).
|
||||
|
||||
---
|
||||
|
||||
## [0.7.18] — 2026-09-05
|
||||
|
||||
### Corrigé
|
||||
- **« Chemin de configuration hors du dossier attendu » à l'installation du tunnel par le service.** Le service exigeait que le `.conf` se trouve dans `%ProgramData%\WireGuard\`, alors que l'application l'écrit sous Windows dans `%APPDATA%\WGSecure\` (`get_client_config_path`) — le seul endroit où un utilisateur non-admin peut écrire. Ce dossier ne peut pas être recalculé par le service, qui tourne en LocalSystem et verrait le `%APPDATA%` de SYSTEM : la validation repose désormais sur l'usurpation d'identité du client du pipe (`ImpersonateNamedPipeClient`), le fichier devant être ouvrable **par l'appelant lui-même** — un utilisateur ne peut donc jamais faire lire à SYSTEM un fichier auquel il n'a pas déjà accès. S'y ajoutent des contrôles structurels (chemin absolu, sans remontée de répertoire, nommé exactement `<interface>.conf` dans un dossier `WGSecure`).
|
||||
- Les messages de refus indiquent maintenant ce qui a été reçu **et** ce qui était attendu, au lieu du seul chemin rejeté.
|
||||
|
||||
---
|
||||
|
||||
## [0.7.17] — 2026-09-05
|
||||
|
||||
### Corrigé
|
||||
|
||||
Reference in New Issue
Block a user