Lille angrebsflade, offentliggjort gennemgang
Missivus opbevarer en legitimation, der kan sende e-mail som din virksomhed. Det er præcis den slags kode, der bør gennemgås linje for linje og dokumenteres offentligt — så det blev den.
Sikkerhedsmodellen på ét afsnit
Exchange-adgangspolitikken er det, der afgrænser skadesradius. Hvert fund nedenfor holdes inde af den — selv en fuldstændig kompromitteret legitimation kan sende som én delt postkasse og intet andet. Derfor behandler installationsguiden politikken som et påkrævet trin med en verifikationskommando, ikke som valgfri hærdning.
Hvad gennemgangen dækkede
Træet i v0.1.1 blev auditeret efter den første live-udrulning — Graph-transporten, indstillingsmodellen, API-metoden til testmail og Vue-komponenten, kontrolleret for lækkede hemmeligheder gennem logs, API-svar, HTML-kilde og browserkonsollen; godkendelse og CSRF på API-fladen; inputvalidering på hver indstilling; og om Graphs fejlsvar kan nå andre end en superbruger. Påstande om Matomos adfærd blev efterprøvet mod Matomos kildekode, ikke husket.
Fund, ærligt formuleret
Rettet før udgivelse
- En base-URL-override kunne have peget klienthemmeligheden mod en angribers vært — URL'er valideres nu til at være rene https-origins, før nogen forespørgsel bygges.
- En netværksfejl midt i en upload kunne lække en forhåndsgodkendt upload-URL i loggen — den konverteres og maskeres nu som enhver anden fejl.
- Indstillingerne accepterede enhver streng — hvert felt validerer nu sin form, så et indsat Secret ID fejler ved gem og ikke som en uigennemsigtig Microsoft-fejl senere.
- API-metoden til testmail accepterede enhver modtager og svarede på GET — nu kun POST med en valideret adresse, holdt ude af serverens adgangslogs.
Verificeret rent
- Hemmeligheder når aldrig HTML-kilden, API-svaret eller browserkonsollen — adgangskodefelter maskeres af Matomos kerne, og pluginet lægger to egne værn oven på.
- Testkaldet er CSRF-beskyttet af Matomos token-model, med en POST-kun-regel tilføjet som forsvar i dybden.
- Alt der logges eller kastes, passerer en maskering, der blanker kendte hemmeligheder efter værdi og legitimationer efter form — tokens, assertions, bearer-headere, upload-URL'er — og som fejler lukket.
Accepterede afvejninger, dokumenteret
- Det kortlivede access-token caches i Matomos filbaserede cache — den, der kan læse den, kan allerede læse Matomos konfiguration, som kan indeholde selve hemmeligheden. Afbødet af de 55 minutters levetid og af adgangspolitikken.
- En superbruger kan sende testmails uden begrænsning — en irritationsvektor, ikke en privilegievektor; en superbruger kunne alligevel omkonfigurere posten helt.
- En hemmelighed, der indtastes i indstillingerne, gemmes ukrypteret i Matomos database — netop derfor findes niveauerne med konfigurationsfil og miljøvariabler, og de har forrang.
Rapportering af en sårbarhed
Skriv til adressen nedenfor med detaljerne. Giv os venligst chancen for at rette et problem, før det bliver offentligt — og læg aldrig en klienthemmelighed, et certifikat eller en PEM-fil i en rapport.
Sikkerhedskontakt: …