Adblock Plus-filter utnytter for å kjøre vilkårlig kode oppdaget

De fleste innholdsblokkere bruker og laster filterlister som inneholder instruksjoner for å blokkere eller endre bestemt innhold på besøkte nettsteder i nettleseren som standard; Dette gjøres for å sikre at standardkonfigurasjoner blokkerer en god del av uønsket innhold med en gang.

De fleste utvidelser støtter tilpassede lister og individuelle filtre. Brukere kan laste inn tilpassede lister i de fleste utvidelser og legge til sine egne filtre i listen også.

Oppdatering : Eyeo GMHB kunngjorde i dag at den vil fjerne $ omskrivningsfunksjonen fremover. Forvent en ny utgivelse snart som fjernes hvis fra utvidelsen. Slutt

Sikkerhetsforsker Armin Sebastian oppdaget en utnyttelse i visse adblockere som Adblock Plus som kan brukes til å kjøre ondsinnet kode på nettsteder som er besøkt i nettleseren.

Utnyttelsen bruker et filteralternativ kalt $ omskrive som Adblock Plus støtter for å injisere vilkårlig kode på websider. Omskrivningsfilteret $ brukes til å erstatte kode på nettsteder ved å omskrive det. Filteralternativet begrenser operasjonen; den er designet for å laste inn innhold bare fra førstepartskilden og ikke fra tredjeparts nettsteder eller servere, og noen forespørsler, for eksempel skript eller objekt, er heller ikke tillatt.

Sebastian oppdaget en sårbarhet i $ omskriving som angripere kan utnytte for å laste inn innhold fra eksterne steder. Vilkårene som må oppfylles er:

  1. En JavaScript-streng må lastes ved hjelp av XMLHttpRequest eller Fetch, og returkoden må utføres.
  2. Opprinnelse kan ikke begrenses på siden, for eksempel ved å bruke retningslinjer for innholdssikkerhetspolicyer, og den endelige forespørselens URL kan ikke valideres før utførelse.
  3. Opprinnelsen til koden må ha en åpen omdirigering på serversiden, eller den skal være vert for vilkårlig brukerinnhold.

Egenskaper som samsvarer med alle tre krav inkluderer blant annet Google Maps, Gmail eller Google Bilder. Et konseptbevis ble publisert på forfatterens nettsted, og du kan prøve det på Google Maps for å bekrefte at det fungerer.

Jeg prøvde utnyttelsen i Chrome og Firefox, og kunne ikke få den til å fungere. Lawrence Abrams over på Bleeping Computer klarte imidlertid å få det til å fungere.

Lukkende ord

Angrepet har et annet krav, ettersom det er avhengig av filtre. Et manipulert filter må legges til listen over filtre som brukes av innholdsblokkeringen. De to vanligste alternativene inkluderer brukere som legger til filtre manuelt i innholdsblokkene, eller at et manipulert filter er på en filterliste som blir lastet inn.

Det andre alternativet virker mer sannsynlig, spesielt i tilfeller der brukere lastet inn andre lister i utvidelsene. Det er ikke første gang lister blir manipulert, men det skjer ikke så ofte.

Utvidelsen uBlock Origin påvirkes ikke av problemet, da det ikke støtter omskriving av $.