Two hardening notes from a blind pre-registered read at ea1579f: AgenticUserId skips ValidateGuid before an az shell-out; config secret has no file-mode hardening on macOS/Linux
I maintainer di solito rispondono entro 5 giorni
@ajmfehr ci sta già lavorando.
Dal 7/9/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
I run independent, pre-registered verification of AI-built systems (Trenyx; the published engagements are at https://trenyx.io/audits.html). I did a static-only read of microsoft/Agent365-devTools at commit ea1579f3 with the attack plan hashed and anchored before I opened a line of source. Nothing here crosses a security boundary (both items need write access to the user's own files), so this is a hardening note, not a vulnerability report. The MSAL-delegated auth, delegated-only flows, setup privilege scope, manifest handling and query-entra paths all held as documented, and the suite is real (about 1,700 Fact/Theory cases across 132 files).
-
AgenticUserId is the one identifier on Agent365Config that ConfigService never runs through ValidateGuid. Its siblings all are: TenantId (ConfigService.cs:391), ManagedIdentityPrincipalId (:399), AgenticAppId (:406), BotId (:412), BotMsaAppId (:416). The unvalidated value is then interpolated into
az ad user delete --id {config.AgenticUserId}at CleanupCommand.cs:811 and :1113, and CommandExecutor.cs:37-41 wraps az incmd.exe /con Windows. The value comes from a365.generated.config.json, which your docs describe as CLI-managed and gitignored (docs/design.md:134), so only someone who can already write the user's state file can plant it. A one-line ValidateGuid on AgenticUserId gives the family parity and closes the gap on principle. -
On macOS and Linux the client secret is stored in plaintext (SecretProtectionHelper.cs:44-48 warns at write time), and no file-mode hardening is applied to the config files that hold it; the CLI's own MSAL cache documents 0600 on Linux. Writing the config files with UnixFileMode 0600 (or chmod after write) would match that precedent.
Happy to re-check either change. The pre-registration hash and the full record publish on the audits page with the read.
SK
Trenyx
- Lingua principale
- C#
- Stelle
- 61
- Fork
- 35
- Merge medio
- 5g 22h
- PR unite (30g)
- 4
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/Agent365-devTools
-
setup permissions custom uses User.Read token for OAuth2 grant operationForse di nuovo libera @ajmfehr l’ha presa 62 giorni fa e non c’è nessuna pull request aperta. Apertabug escalated P1 security
microsoft/Agent365-devTools#486 · 3 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 5 giorni
-
setup blueprint: identifierUris set to api://<appId> instead of api://botid-<appId>, breaking Teams message deliveryForse di nuovo libera @ajmfehr l’ha presa 71 giorni fa e non c’è nessuna pull request aperta. Apertabug escalated P1 security
microsoft/Agent365-devTools#482 · 3 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 5 giorni
Tutte le issue di microsoft/Agent365-devTools
Issue simili
-
Bug: Hidden loading rings keep the compositor running, so Files uses 7-94% of a CPU core while idleAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
files-community/Files#19026 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Physgun SFX SpamAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 80/100
SubtitleEdit/subtitleedit#15946 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
BHoM/Civil3D_Toolkit#118 ·
-
Reason-phrase table has misspelled entries (`Unathorized`, `Switching Protcols`, `Multiple Choises`)Apertabug severity:low
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100