Superficie ridotta, revisione pubblicata
Missivus custodisce una credenziale in grado di inviare email a nome della sua azienda. È esattamente il tipo di codice che andrebbe revisionato riga per riga e documentato in pubblico — e così è stato fatto.
Il modello di sicurezza in un paragrafo
È l'application access policy di Exchange a delimitare il raggio d'impatto. Ogni rilievo qui sotto è contenuto da essa — persino una credenziale del tutto compromessa può inviare da una sola casella condivisa e nient'altro. Per questo la guida di installazione tratta la policy come passaggio obbligatorio con un comando di verifica, non come irrobustimento facoltativo.
Cosa ha coperto la revisione
L'albero della versione v0.1.1 è stato verificato dopo la prima installazione in produzione — il trasporto Graph, il modello delle impostazioni, il metodo API dell'email di prova e il componente Vue, controllati per fughe di segreti attraverso log, risposte API, sorgente HTML e console del browser; autenticazione e CSRF sulla superficie API; validazione dell'input su ogni impostazione; e la possibilità che i corpi di errore di Graph raggiungano qualcuno che non sia un superuser. Le affermazioni sul comportamento di Matomo sono state verificate sul sorgente di Matomo, non citate a memoria.
Rilievi, dichiarati con onestà
Corretti prima del rilascio
- Un override dell'URL di base avrebbe potuto indirizzare il client secret verso l'host di un aggressore — gli URL vengono ora validati come origini https pure prima di costruire qualsiasi richiesta.
- Un errore di rete a metà caricamento poteva far finire nel log un URL di caricamento pre-autenticato — ora viene convertito e oscurato come ogni altro errore.
- Le impostazioni accettavano qualsiasi stringa — ogni campo ora ne valida la forma, così un Secret ID incollato per errore fallisce al salvataggio, non in seguito come oscuro errore Microsoft.
- Il metodo API dell'email di prova accettava qualsiasi destinatario e rispondeva a GET — ora è solo POST con indirizzo validato, tenuto fuori dai log di accesso del server.
Verificati puliti
- I segreti non raggiungono mai il sorgente HTML, la risposta API o la console del browser — i campi password sono mascherati dal core di Matomo e il plugin aggiunge due protezioni proprie in più.
- La chiamata di prova è protetta da CSRF dal modello di token di Matomo, con una regola solo-POST aggiunta come difesa in profondità.
- Tutto ciò che viene registrato o sollevato passa da un redattore che oscura i segreti noti per valore e le credenziali per forma — token, assertion, header bearer, URL di caricamento — e in caso di dubbio oscura comunque (fail closed).
Compromessi accettati, documentati
- Il token di accesso a vita breve è tenuto nella cache su file di Matomo — chi può leggerla può già leggere la configurazione di Matomo, che potrebbe contenere il secret stesso. Mitigato dalla durata di 55 minuti e dall'access policy.
- Un superuser può inviare email di prova senza limiti di frequenza — un vettore di disturbo, non di privilegio; un superuser potrebbe comunque riconfigurare la posta per intero.
- Un secret inserito nell'interfaccia delle impostazioni è salvato non cifrato nel database di Matomo — i livelli file di configurazione e variabili d'ambiente esistono proprio perché non debba mai esserlo, e hanno la precedenza.
Legga su GitHub la revisione completa con tutti gli undici rilievi
Segnalare una vulnerabilità
Scriva all'indirizzo qui sotto con i dettagli. La preghiamo di darci la possibilità di correggere un problema prima che diventi pubblico — e di non includere mai un client secret, un certificato o un file PEM in una segnalazione.
Contatto per la sicurezza:…