Réalisation d’une preuve de concept pour la vulnérabilité CVE-2017-5123

Magazine
Marque
MISC
Numéro
96
Mois de parution
mars 2018
Domaines


Résumé

Début octobre 2017, une vulnérabilité a été découverte par Chris Salls dans l’implémentation de l’appel système waitid [1] au sein du noyau GNU/Linux, permettant notamment d’écrire des données dans l’espace mémoire réservé au noyau. Cet article tente de retracer de façon détaillée l’étude de la cause de celle-ci ainsi que les différents obstacles rencontrés lors de son exploitation.


 

1. Premier coup d’œil

1.1 Détails de la vulnérabilité

Un coup d’œil sur le correctif [PATCH] permet de voir que la vulnérabilité est présente au sein du syscallwaitid. Pour rappel, celui-ci permet de mettre une tâche en attente de la complétion d’une autre. Le message de commit est assez sommaire (waitid(): Add missing access_ok() checks) et la modification apportéene fait que deux lignes :

+ if (!access_ok(VERIFY_WRITE, infop, sizeof(*infop)))

+ goto Efault;

Après une rapide lecture de la documentation sur access_ok, on découvre que cet appel de fonction permet de s’assurer de l’innocuité de l’accès pour une taille donnée à une adresse passée en argument. Par innocuité et dans notre cas d’une architecture x86, on entend ici deux choses :

  • cette adresse pointe vers l’espace utilisateur ; ne pas oublier que nous sommes en train de traiter un appel système et que nous sommes donc en espace noyau en train...
Cet article est réservé aux abonnés. Il vous reste 96% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

Les taxonomies se cachent pour ne pas mourir

Magazine
Marque
MISC
Numéro
113
Mois de parution
janvier 2021
Domaines
Résumé

« Attention, nouveau virus ! » Nombreux sont les articles à nous alerter régulièrement, par cette métonymie, sur l’émergence d’un nouveau malware. Pourtant, le terme de virus a-t-il encore un sens aujourd’hui ? Wannacry était-il un ver, ou un ransomware ? NotPetya, un wiper, ou bien un ver ? Et plus encore, au-delà de l’utilisation de termes et expressions se pose la question de la nécessaire catégorisation des incidents de cybersécurité ; pourquoi, comment, à quelles fins ? Essai (critique) de réponse.

Jenkins, Docker et Kubernetes pour déployer en CI/CD

Magazine
Marque
Linux Pratique
Numéro
123
Mois de parution
janvier 2021
Domaines
Résumé

La mise en place d'un processus d'intégration continue et de déploiement continu nécessite une réflexion sérieuse avant de la concrétiser dans la vraie vie d'une organisation. La diversité des méthodes agiles, la panoplie des outils DevOps disponible sur le marché et le choix de l'infrastructure sous-jacente pour créer vos projets nécessitent de prendre du recul avant de se lancer. Découvrez dans cet article comment créer un CI/CD.