Bug: CSS-code laat iPhone en Mac vastlopen

Door: Night - 8 reacties
iPhone crash bug safari mac

Na het gekke Indiase letterteken en een Chinees filmpje is er weer een bug opgedoken die een iPhone en Mac kan laten vastlopen of zelfs crashen. Ditmaal gaat het om een stukje CSS. Dat is opmaakcode voor websites.

Als de CSS-code op een webpagina staat, zorgt dit ervoor dat je iPhone of iPad vastloopt en herstart. Dit hebben we natuurlijk even getest en zelfs onze allernieuwste iPhone met iOS 12-bèta moest eraan geloven. Een Samsung Galaxy Note 9 met Android bleek ongevoelig voor de bug, maar dat heeft een logische verklaring.

iPhone herstart, Safari op de Mac loopt vast

Niet alleen de iPhone wordt getroffen door de bug, ook de Mac is niet ongevoelig. Als de pagina met de CSS-code in Safari of Safari Technology Preview geopend wordt, loopt de browser vast. Andere macOS-browsers, zoals Google Chrome, hebben geen probleem met de vervelende CSS-code.

Safari iPhone Mac Bug
Slechts 15 regels code zijn er nodig om Safari te laten crashen (klik/tap voor groter)

De bug heeft de bijnaam Safari Reaper gekregen en 15 regels code zijn genoeg om een iPhone te laten herstarten of Safari op een Mac te laten crashen. Er worden een boel elementen aangemaakt die alleen een grote blur hebben. Hierdoor moet de GPU van een iOS-apparaat of Mac enorm veel werk verrichten. Dit zal uiteindelijk resulteren in een ‘Kernel Panic’, waardoor de iPhone of iPad zichzelf uitschakelt en opnieuw zal opstarten. Safari op een Mac zal gewoon compleet bevriezen, zodat een herstart noodzakelijk is. Normaal is er sprake van sandboxing, zodat een app niet het hele systeem lam kan leggen, maar de GPU is daar geen onderdeel van.

Waarom dit alleen Apple parten speelt

Dat Chrome, Firefox en de Android-browser niet getroffen zijn, heeft een logische verklaring. De bug gebruikt de CSS-functie ‘backdrop-filter’ om de GPU van apparaten door het dak te laten gaan. Alleen Safari heeft momenteel ondersteuning voor deze functie, maar andere browsers niet. Dat Apple voorloopt, pakt in dit geval dus slecht uit.

Geen veiligheidsprobleem

Hoewel de bug vervelend is, is de veiligheid verder niet in het geding. Er wordt geen malware geïnstalleerd en er kan geen data buitgemaakt worden. Gezien het verder onschuldige karakter van de bug durven we je met een gerust hart de link te geven, zodat je het zelf kunt testen. Wel even je openstaande bestanden bewaren.

Reacties

8 reacties
  • Profielfoto
    Jeffrey

    Maar natuurlijk werkt dit niet op Chrome. Google is al jaren bezig met backdrop filters, ze zitten nog steeds enkel bij de ‘expirimental features’.

  • Profielfoto
    Raymon Mens

    Geluk bij een ongeluk voor Chrome dus. Scherp, ik zal het aanvullen!

  • Profielfoto
    Shmoo

    Hoezo is deze bug vervelend?

     

    Alsof iemand dit serieus ooit in de parktijk zou willen gebruiken. De persoon die dit gevonden heeft was waarschijnlijk bezig met twee of drie CSS blurs over elkaar aan het leggen en zag toen hoeveel performance dit van de browser vroeg om te renderen —-> dan is de nieuwsgierigheid natuurlijk al heel snel gewekt hoever je dit kunt pushen tot je browser er automatisch mee stopt. —-> resultaat bij Safari is dan NIET, zover dat je computer crasht.

    Kans is groot dat een iMac Pro het veel langer zal uithouden, of dit script wel gewoon helemaal kan renderen omdat deze meer bewegingsruimte heeft.

     

    Er zal wel iets van een time-out of counter op gezet worden zoals ze dat vroeger ook gedaan hebben met de 9999 regel.

     

  • Profielfoto
    Maikelw

    Edge vindt het ook niet leuk. Crashed niet maar kan de pagina niet laden > Reload loop.

  • Profielfoto
    Wimusia

    Jeffrey op 17 september 2018 11:35
    Maar natuurlijk werkt dit niet op Chrome. Google is al jaren bezig met backdrop filters, ze zitten nog steeds enkel bij de ‘expirimental features’.

    Hier geen reboot, maar enkel een respring. Iphone SE 11.4.1.
    In Safari gebeurt het direct, in Chrome NIET.

    Is dat niet ook wat ze bedoelen trouwens? Een hele reboot duurt veel langer, simcode intikken etc.
    Grappig dat Chrome anders reageert dan safari, want een browser op iOS is niet heel veel meer dan een skin want ze moeten webkit gebruiken.
    En doordat webkit vastloopt door deze css zie ik niet waarom Chrome anders zou reageren.
    Als iemand zomaar op een link klikt…..
    Niemand zou tegenwoordig zomaar op een link moeten klikken. Dus ook als je lolbroeken hebt die er een link naar maken, zou niemand er zomaar op moeten klikken. Doen ze het toch: goede les om de volgende keer eens beter op te letten waar ze op klikken.

    Dus lolbroeken: ga je gang (het is toch alleen maar een reboot)

  • Profielfoto
    Night

    @Shmoo: Praktijk? Ik denk wel dat de link veel als ‘prank’ doorgestuurd zal gaan worden.

  • Profielfoto
    Shmoo

    Nee joh. Dit is een veel te specifieke Safari only probleem.

     

    Plus (1), dan moet je ook nog een website gaan hosten en allemaal dat soort dingen waardoor het heel snel lelijk en ingewikkeld wordt.

    Plus (2), je wilt zelf natuurlijk eerst testen of het het wel werkt wat je gemaakt hebt dus dan crasht je computer al tijdens het bouwen een aantal keer en omdat het een Safari only probleem is heb je ook een Mac nodig om het te kunnen testen. Dat sluit bepaalde pubers al uit. Mocht je een website kunnen bouwen + uploaden/hosten vanaf een iOS device dan mag je solliciteren bij OMT want dan ben je waarschijnlijk getalenteerder dan de huidige developer.

     

    Als je gewoon via de Berichten app iemand een aantal Unicodes kan sturen d.m.v copy/paste > versturen naar 38 mensen uit je klas > wat zorgt voor een crash van hun device ongeacht welke browser of versies van het OS dat is het voor kinderen van een bepaalde leeftijd nog wel leuk maar dit gaat veel verder dan dat en kost veel meer tijd.

     

     

     

  • Profielfoto
    xaddict

    Als dit met backdrop filter werkt… dan zou het ook met de gewone filter functie moeten werken toch?