Eninformatique, l'XML entity expansion ouBillion laughs oulol flow est une attaque de typedéni de service visant les parseursXML. Cette attaque peut aussi servir de vecteur pour faciliter des attaques pardépassement de tampon
L'attaque XML entity expansion repose sur une particularité du standardXML qui permet la déclaration récursive d'entitésXML sans aucune limite de profondeur ou de longueur des éléments. L'attaquant peut donc donner une très grande longueur au résultat censé être produit lors de l'analyse lexicale du documentXML.
Ainsi, ledéni de service est provoqué par le parseurXML tentant de lire le document avec toutes ses entités décrites de manière récursive, ce qui peut potentiellement provoquer un dépassement des capacités de la machine ciblée.
Dans cet exemple, 128 entitésXML sont déclarées dans ledoctype du document. Elle contiennent chacune deux appels à l'entité déclarée précédemment, sauf la première qui affiche simplement la chaîne"lol"
.Dans le document, la dernière entité déclarée est appelée et, par conséquent, toutes les autres sont appelées en cascade jusqu'à afficher finalement caractères (680564733841876926926749214863536422912).
<!DOCTYPE root [<!ENTITY lol "lol"><!ENTITY lol2 "&lol; &lol;"><!ENTITY lol3 "&lol2; &lol2;"><!ENTITY lol4 "&lol3; &lol3;"><!ENTITY lol5 "&lol4; &lol4;">…<!ENTITY lol128 "&lol127; &lol127;">]><root>&lol128;</root>
Notons que c'est de cet exemple que l'attaque tient ses surnoms de « Billion laughs » (« milliards de rires » en anglais) et « lol flow » (« inondation de lol » en anglais) puisqu'il afficherait réellement des milliards de « lol » en résultat.
Audit de sécurité informatique | |
---|---|
Test | |
Outils | |
Attaque | |
Protection | Sécurité par l'obscurité |
Normes ISO/CEI |
Compilation | |
---|---|
Exécution | |
Bug | |