Faille de sécurité sur eBay : tant qu’il y aura JSFuck

Averti à la mi-décembre de l’existence, sur sa plate-forme e-commerce, d’une faille de sécurité exposant potentiellement plus de 150 millions d’utilisateurs actifs, eBay n’a toujours pas appliqué de correctif.

Check Point, qui a mis le doigt sur cette vulnérabilité aujourd’hui objet d’alertes croisées, souligne que le groupe américain n’a « pas prévu » de remédier à la vulnérabilité, comme il le lui a fait savoir dans une communication du 16 janvier.

Alors, c’est grave, docteur ?

Conçue pour contourner les processus de validation de code mis en place par eBay, la faille est assez impressionnante sur le plan technique. Elle s’appuie en l’occurrence sur JSFuck, présenté par son fondateur Martin Kleppe comme « un style de programmation ésotérique et éducatif ».

martin-kleppe

Sa particularité : il n’exploite que 6 caractères pour contourner les processus de nettoyage des principaux systèmes de détection d’intrusions et d’activités malveillantes.

Les crochets ouverts et fermants (« [ » et « ] ») permettent d’accéder à des éléments de tableau et à des propriétés d’objets, mais aussi d’obtenir des nombres et les convertir en chaînes de caractère.

Les parenthèses ( « ( » et « ) ») servent à appeler des fonctions et à éviter des erreurs d’analyse. Le « + » et le « – » sont quant à eux exploitables pour ajouter des éléments à des chaînes de caractères, tout en additionnant en en convertissant des éléments en nombres. Quant au point d’exclamation ( « ! »), il crée des valeurs booléennes.

Un petit exemple : « +[] » produit la valeur 0 (zéro), car on demande la première valeur d’une liste vide.

« What the JSF*** ? »

Pour la conversion en valeurs booléennes : « ![] » produit « faux » ; « !![] » produit « vrai ». En convertissant « vrai » en nombre entier avec la commande « +!![] », on obtient la valeur 1. Si on souhaite obtenir une chaîne de caractères, on ajoute « +[] ». Cela donne, dans le cas présent, « +!![]+[] ».

Pour avoir une idée de ce à quoi ressemble un entier ainsi représenté, voici le nombre 123 : « +((+!![]+[])+(!+[]+!![])+(!+[]+!![]+!![]+[])) » (plus de détails dans le répertoire GitHub de JSFuck).

En théorie, le système de filtrage de balises HTML mis en place par eBay empêche l’intégration de scripts ou d’iframes. Sauf que les 6 caractères utilisés avec JSFuck passent à travers les mailles du filet, car aucun d’eux n’est de type alphanumérique.

Qu’est-ce que cela signifie ? Qu’un tiers peut, dans n’importe quelle annonce, insérer du code malveillant qui déclenchera diverses actions : téléchargement d’une application qui se révélera être vérolée, ouverture d’un formulaire invitant l’utilisateur à renseigner son mot de passe, etc.

Crédit photo : Morrowind – Shutterstock.com

Recent Posts

Microsoft 365 : pourquoi il faut renforcer les mesures de sécurité

Face aux menaces ciblant Microsoft 365, une approche de sécurité multicouche, combinant les fonctionnalités natives,…

6 jours ago

Deux suites collaboratives intègrent des offres cyber packagées

Deux offres de cybersécurité portées par ITrust et Docaposte intègrent des suites collaboratives. Présentation.

3 semaines ago

PC IA : les entreprises sont enthousiastes malgré quelques incertitudes

Les dernières migrations de Windows 10 vers Windows 11 vont accélérer l'adoption des PC IA. Mais des…

1 mois ago

Digital Workplace : comment l’IA Générative s’installe dans l’environnement de travail

L’IA générative excelle dans plusieurs cas d’usage, notamment dans l’analyse, la recherche et la synthèse…

2 mois ago

PC Copilot+ : avec Arm ou x86 ?

Trop tôt pour envisager d'acquérir un PC Copilot+ ? Les roadmaps d'Intel et d'AMD peuvent…

3 mois ago

Copilot+ : une sélection de PC convertibles

Dévoilés lors du CES 2025, les PC Copilot+ au format convertible restent encore limitée dans…

3 mois ago