Mozilla heeft aangekondigd dat de onafhankelijke audit van de clientsoftware voor de verbinding met de Mozilla VPN-service is afgerond. Tijdens de audit is er een analyse uitgevoerd van de aparte clientapplicatie, geschreven met behulp van de Qt-bibliotheek en geleverd voor Linux, macOS, Windows, Android en iOS. De werking van Mozilla VPN wordt ondersteund door meer dan 400 servers van de Zweedse VPN-provider Mullvad, verspreid over meer dan 30 landen. Verbinden met VPN-de service gebeurt via het WireGuard-protocol.
De audit is uitgevoerd door Cure53, die eerder audits heeft uitgevoerd voor projecten zoals NTPsec, SecureDrop, Cryptocat, F-Droid en Dovecot. De audit richtte zich op de controle van de broncode en omvatte het uitvoeren van tests om mogelijke kwetsbaarheden te identificeren (vragen met betrekking tot cryptografie werden niet behandeld). Tijdens de controle zijn er 16 veiligheidsproblemen vastgesteld, waarvan 8 als aanbevelingen werden aangemerkt, 5 een laag gevaarniveau kregen, 2 een gemiddeld niveau en 1 een hoog.
Van deze problemen werd slechts ƩƩn probleem met een gemiddeld gevaarniveau geclassificeerd als kwetsbaarheid, omdat het alleen daarvoor exploiteerbaar was. Dit probleem leidde tot het lekken van informatie over het gebruik van VPN in de code voor het bepalen van captive portals door het verzenden van ongecodeerde directe verzoeken via HTTP, die buiten de VPN-tunnel werden verzonden en het publieke IP-adres van de gebruiker onthulden in het geval dat de aanvaller het transitverkeer kan controleren. Het probleem kan worden opgelost door de modus voor het bepalen van captive portals in de instellingen uit te schakelen.
Het tweede probleem van gemiddelde ernst heeft te maken met het gebrek aan adequate filtering van niet-numerieke waarden in het poortnummer, waardoor een lek van OAuth-authenticatieparameters kan ontstaan door het poortnummer te vervangen door een tekenreeks zoals «1234@example.com», wat zal leiden tot het instellen van de tag <img src="»http://127.0.0.1:1234@example.com/?code=…»" alt="»»">, die verwijst naar example.com in plaats van 127.0.0.1.
Het derde probleem, gemarkeerd als gevaarlijk, staat elke lokale applicatie zonder authenticatie toe om toegang te krijgen tot de VPN-client via een WebSocket die aan localhost is gekoppeld. Als voorbeeld is aangetoond hoe, met een actieve VPN-client, elke website het creƫren en verzenden van een screenshot kon organiseren door een screen_capture-evenement te genereren. Dit probleem werd niet als een kwetsbaarheid geclassificeerd, omdat de WebSocket alleen werd gebruikt in interne testbuilds en het gebruik van deze communicatietype in de toekomst was gepland voor interactie met een browserextensie.
Bron: opennet.ru
