Adblock Plus-filter utnyttjar för att köra godtycklig kod upptäckt

De flesta innehållsblockerare använder och laddar filterlistor som innehåller instruktioner för att blockera eller ändra visst innehåll på besökta webbplatser i webbläsaren som standard; detta görs för att säkerställa att standardkonfigurationer blockerar en bra del av oönskat innehåll direkt.

De flesta tillägg stöder anpassade listor och enskilda filter. Användare kan ladda anpassade listor i de flesta tillägg och lägga till sina egna filter också i listan.

Uppdatering : Eyeo GMHB meddelade idag att det kommer att ta bort $ omskrivningsfunktionen framöver. Förväntar sig en ny utgåva snart som kommer att tas bort från tillägget. Slutet

Säkerhetsforskaren Armin Sebastian upptäckte ett utnyttjande i vissa adblockers som Adblock Plus som kan användas för att köra skadlig kod på webbplatser som besöks i webbläsaren.

Utnyttjandet använder ett filteralternativ som kallas $ omskrivning som Adblock Plus stöder för att injicera godtycklig kod på webbsidor. $ Omskrivningsfiltret används för att ersätta koden på webbplatser genom att skriva om den. Filteralternativet begränsar operationen; det är utformat för att ladda innehåll endast från källan från första parten och inte från tredje parts webbplatser eller servrar, och vissa förfrågningar, t.ex. skript eller objekt, är inte heller tillåtna.

Sebastian upptäckte en sårbarhet i $ omskrivning som angripare kan utnyttja för att ladda innehåll från avlägsna platser. Villkoren som måste uppfyllas är:

  1. En JavaScript-sträng måste laddas med XMLHttpRequest eller Hämta, och returkoden måste köras.
  2. Ursprung kan inte begränsas på sidan, t.ex. genom att använda riktlinjer för innehållssäkerhetspolicy, och den slutliga webbadressen för begäran kan inte valideras innan den körs.
  3. Kodens ursprung måste ha en öppen omdirigering på serversidan eller vara värd för godtyckligt användarinnehåll.

Egenskaper som uppfyller alla tre krav inkluderar bland annat Google Maps, Gmail eller Google Bilder. Ett bevis på konceptet publicerades på författarens webbplats och du kan prova det på Google Maps för att verifiera att det fungerar.

Jag försökte utnyttja i Chrome och Firefox och kunde inte få det att fungera. Lawrence Abrams över på Bleeping Computer lyckades dock få den till att fungera.

Stängande ord

Attacken har ytterligare ett krav, eftersom den förlitar sig på filter. Ett manipulerat filter måste läggas till i listan över filter som används av innehållsblockeraren. De två vanligaste alternativen inkluderar användare som lägger till filter manuellt till sina innehållsblockerare, eller att ett manipulerat filter finns i en filterlista som laddas.

Det andra alternativet verkar mer troligt, särskilt i de fall användarna laddar andra listor i tillägg. Det är inte första gången som listor manipuleras men det händer inte så ofta.

Tillägget uBlock Origin påverkas inte av problemet eftersom det inte stöder omskrivning av $.