Chrome, Opera et Vivaldi, trois navigateurs basés sur Chromium, réagissent bien mal à certaines URL contenant des caractères bien particuliers. Pour les deux premiers, cela va même jusqu'au plantage pur et simple.
Au cours des derniers mois, plusieurs éditeurs/fabricants ont dû faire face à un problème pour le moins insolite : un simple message provoquait parfois des problèmes à répétitions. Chez Wiko un « = » envoyé par SMS pouvait rebooter le smartphone du destinataire, tandis que les applications Messages d'iOS et Skype plantaient elles aussi avec une chaine de caractères bien précise.
C'est dans les vieux codes qu'on fait les meilleurs bugs
Aujourd'hui, c'est Google qui est sur le devant de la scène avec un problème similaire sur Chrome qui a été mis en lumière par Andris Atteka. Il explique qu'il suffit de valider une URL d'un des types ci-dessous dans la barre d'adresse pour faire complètement planter le navigateur, l'obligeant à rebooter :
http:/a/%%30%30
http:/a/%%300
file:///%%300
Notez qu'il s'agit d'une liste non exhaustive et que bien d'autres combinaisons sont possibles, notamment en remplaçant le « a » par d'autres caractères ou bien par des adresses de sites comme http:/nextinpact.com/%%300. Et ce n'est pas tout puisque, s'il s'agit d'un lien hypertexte placé sur un mot ou une image par exemple, il suffit de passer la souris dessus pour que l'onglet plante. Il en entraine parfois d'autres avec lui dans sa chute, mais cela ne provoque dans tous les cas pas un crash complet du navigateur.
Certains s'en amusent et ont même développé un jeu basé sur ce bug. Le principe est simple : passer de haut en bas en ne survolant que les oursons. Un arbre et l'onglet Chrome plante.
Opera et Vivaldi aussi touchés, Edge et Firefox épargnés
De notre côté, nous avons tenté la même expérience sous Edge et Firefox, sans aucun problème. Par contre, on retrouve exactement le même souci sur Opéra, ce qui n'est pas une surprise étant donné qu'il se base sur Chromium 45 (tout comme Chrome). Plus étonnant par contre, Vivaldi (qui exploite également Chromium) ne plante pas avec ce genre d'URL, mais un survol de lien hypertexte du même acabit par la souris provoque une erreur sur la page.
Un ticket a évidemment été ouvert sur le site du projet Chromium. Il reprend tous les détails connus sur ce bug et, selon un des développeurs, « il semble que le plantage s'effectue dans un très vieux code », probablement dans la fonction GURLToDatabaseURL(). Dans tous les cas, les équipes de Chromium et de Google sont sur la brèche et une mise à jour devrait prochainement corriger le tir. De son côté, Andris Atteka précise qu'il n'a « malheureusement pas reçu de récompense, car ce bug est considéré comme une vulnérabilité DOS ».
Si le problème n'est effectivement pas une faille de sécurité à proprement parler et qu'elle n'entraine pas de fuite de données, il reste potentiellement gênant. On peut en effet imaginer des sites, des emails ou bien des messages instantanés contenant ce genre d'URL afin de provoquer un plantage du navigateur du correspondant.
Commentaires (38)
Lol
Le jeu
" />
Et c’est pour ça que lorsque l’on utilise des String, soit on fait très attention, soit on utilise des classes bien faites.
Sympa merci ^^
P-A contribue au developpement de Chromium ?
Et pour rendre le jeu plus marrant on le met à la fin d’un formulaire bien long pour le valider ^^. (Pourquoi pas pour valider un commentaire sur NextInpact? :))
L’avantage des bases communes, tout le monde se partage les bugs.
Après ça semble être aussi pas mal lié à l’intégration si le comportement de Vivaldi diffère des autres…
Safari ne plante pas.
Je ne peux plus utiliser feedly :(
Pas de souci sur Opera pourtant (12.17 :P)
Qui utilise Safari ?
Faire un jeu à partir d’un bug, c’est quand même fort.
" />
Vivaldi 1.0.278.17 plante AUSSI avec http:/domain.tld/%%300 ouhttps://vivaldi.com/%%30%30 :)
“Quand Chrome et Opera Chromium plante à cause de quelques caractères” aurait été plus juste dans le titre.
plutôt “quand tous les navigateurs basés sur Chromium” plutot … parce que si tu dis que Chromium plante, perso, je ne me sens pas concerné
" />
Du coup c’est quand même étrange que 3 navigateurs utilisent une même implémentation foireuse…
Pas de soucis sur Maxthon, basé aussi sur chromium (26
" />), je garde la main sur la page et le navigateur.
Je croyais que c’était basé sur Blink et pas sur le navigateur Chromium “en entier” ?
C’est lundi. Il faut laisser les gens le temps de se réveiller.
Je confirme, Opera 32.0 plante bien. Il y a moyen de faire ch**r quelques chalands sur Facebook avec ça.
Confirmé, plante sous Linux également.
Apparemment il y a un workaround pour éviter le plantage en attendant le patch.
Donc les version mobile plante aussi, merci ;)
Trop fort le jeu de la forêt :)