Un peu de CSS peut faire planter complètement un appareil iOS

Nicolas Furno |

Un bug dans WebKit, le moteur d’affichage de Safari, peut faire planter totalement un appareil iOS en affichant une page web qui contient quelques lignes de codes CSS. Ce bug touche toutes les versions d’iOS, y compris la GM d’iOS 12, installée sur cet iPhone, et même les Mac, même si certains évoquent uniquement un plantage de Safari, pas de tout macOS.

Les autres navigateurs ne sont pas nécessairement touchés, puisque le bug est lié à une propriété CSS récente, encore considérée comme expérimentale et qui n’est pas présente partout. Chrome, par exemple, ne l’active pas encore par défaut et la page web s’affichera sans problème… sauf si vous choisissez d’activer cette propriété. Safari est l’un des premiers navigateurs à l’intégrer par défaut, mais manifestement, il reste encore des bugs dans sa gestion.

Si vous avez ouvert le lien, donné dans ce tweet pour les curieux et que votre navigateur se bloque sur macOS, il est inutile de redémarrer ou même de réinstaller le système comme certains l’ont fait. Rappelons le raccourci pour forcer une app à quitter, ce qui devrait suffire dans ce cas : ⌘⌥esc. Si Safari est configuré pour rouvrir la dernière session, celle-ci posera tout autant problème : lancez le navigateur tout en maintenant la touche enfoncée pour ouvrir une nouvelle session.

Tags
avatar Guizilla | 

Autant de div imbriqués c’est pas sain...

avatar bonnepoire | 

Le div c'est du HTML donc ce n'est pas le soucis qui concerne cet article.

avatar frankm | 

@bonnepoire

À mon avis ça fait parti de la mise à mort. Il y a 3486 div imbriquées

avatar fte | 

@frankm

"À mon avis ça fait parti de la mise à mort. Il y a 3486 div imbriquées"

En 16 bit, un ordinateur sait déja compter jusqu’à 16383 voire 32767.

Il y a en outre plusieurs GB de mémoire.

Je pense que 3486 est un chiffre gérable en 2018. Surtout par les meilleurs smartphones jamais construits dotés de processeurs bioniques qui humilient la concurrence et même les ordinateurs portables.

Non ?

avatar frankm | 

@fte

Pas forcément. Ça s'applique à chaque div. Une fonction en développement peut-être buggé mal optimisée, avec un temps d'exécution pas très frais, etc. Et chaque occurence ne fait pas 1 ou 2 octets seulement.

avatar fte | 

@frankm

On ne fait pas de fonctionnel si on ne maitrise pas la récursion et les dépassements de pile. Non mais. C’est scandaleux.

avatar Guizilla | 

@bonnepoire

Oui mais le problème c’est que la propriété css s’applique à toutes les div... et y’a beaucoup de div, pour une propriété qui applique un flou sur du flou sur du flou, y’a pas vraiment de quoi être étonné que ça plante, non ?

avatar frankm | 

@Guizilla

Tout à fait !

avatar fte | 

@Guizilla

Un flou ne peut que s’appliquer sur une image nette, sinon ça plante ? Mais euh... si le bébé gigote, on ne peut pas publier un album pour grand-maman et sa tablette ? C’est chiant.

avatar frankm | 

@fte

"Un flou ne peut que s’appliquer sur une image nette, sinon ça plante"
What pourquoi pas !
Sinon si c'est votre explication : une div floue, refloue, plantage, refloue, plantage, ... x3000

avatar Guizilla | 

@fte

Pardon je rectifie : (un flou sur) * 3486 sur une image

Ca change pas le problème

avatar Bigdidou | 

Donc ça fait planter iOS et safari sur MacOS. Le titre est pas toit à fait raccord avec le,contenu.
Sinon quid des autres OS, windows et Android ?
Quelqu'un a testé ?

avatar coloribus | 

Justement... Autant de DIV ça revient à faire un WHILE.

avatar fte | 

Ce qui serait génial, ça serait un système d’exploitation moderne préemptif et à memoire protégée, pour qu’une application ne puisse ni bloquer les autres applications ou le système, ni les planter.

Hum, wait...

avatar byte_order | 

@fte
Ouais.

Ou alors que le système d'exploitation autorise la diversité des solutions logicielles pour éviter qu'un bug aux conséquences critiques (comme un reboot) induit par un logiciel imposé par le système d'exploitation expose tous les utilisateurs de manière identique et incontournable.

avatar fte | 

@byte_order

"autorise la diversité"

Alors il ne faut pas exagérer, ce serait ouvrir la porte à la pornographie ! La PORNOGRAPHIE !

avatar coloribus | 

Safari est sûrement le seul à créer du bitmap avec de genre de filtres (j’ai constaté du crénelage sur des SVG). L’accélération matérielle utilise le processeur - incapable de générer le rendu - d’où le plantage...

avatar esclandre | 

Ça fait des lustres que CSS 3 est en bêta

avatar Maxmad68 | 

Ça fait juste crasher l'application sur iOS 12

CONNEXION UTILISATEUR