CVE-2013-2094 : Linux kernel perf_events local root

Magazine
Marque
MISC
Numéro
69
Mois de parution
septembre 2013
Spécialité(s)


Résumé

En avril dernier, [TRINITY], le fuzzer d'appel système Linux, met en évidence une mauvaise vérification des bornes d'une valeur numérique normalement non signée qui est considérée comme signée dans le système perf_events [PATCH]. Cette erreur permet l'obtention des privilèges root sur un système utilisant un noyau Linux dont la version est comprise entre 2.6.37 et 3.8.8 (incluses) ainsi qu'à partir de la version 2.6.32 pour les systèmes CentOS. Cet article a pour but de présenter l'exploitation de cette vulnérabilité sur les architectures x86, x86_64 et ARM.


1. Introduction

Le système perf_events a été implémenté dans le noyau Linux à partir de la version 2.6.31. Il permet de faire du profiling et repose sur les hardwares performance counters. Il s'agit de registres spéciaux présents sur les CPU modernes, qui ont pour but de surveiller et compter les événements hardware comme le nombre d'instructions exécutées, les branches mal prédites ou les échecs d’accès au cache, mais également les événements software comme les tracepoints ou les context-switch.

Étonnamment, il est activé par défaut sur de nombreuses distributions comme Ubuntu, CentOS, ou encore sur différents smartphones Android, bien qu'il ne soit pas nécessaire à la grande majorité des utilisateurs.

Afin de savoir si un système est compilé avec perf_events, il est possible de vérifier son fichier de configuration, ou la présence de symboles liés à perf_events :

#…

Cet article est réservé aux abonnés. Il vous reste 95% à découvrir.
S'abonner à Connect
  • Accédez à tous les contenus de Connect en illimité
  • Découvrez des listes de lecture et des contenus Premium
  • Consultez les nouveaux articles en avant-première
Je m'abonne


Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous