Exception DebugPOP SS - CVE-2018-8897 [Modérée] & CVE-2018-1087 [Importante]
Mis à jour
Red Hat a été informé d'une vulnérabilité dans la façon dont le noyau Linux traite les exceptions déclenchées après les instructions POP SS et MOV vers SS. Ces problèmes peuvent aboutir à un refus de service pour les systèmes non patchés.
Ces instructions empêchent la transmission des exceptions des interruptions, points d'arrêt de données, et des exceptions «single step trap» jusqu'à la limite d'instruction qui suit la prochaine instruction. On identifie des problèmes séparés liés au noyau Linux et aux technologies KVM.
Informations générales
Les processeurs modernes fournissent une infrastructure de débogage, utilisée par les concepteurs de systèmes et les développeurs d'applications pour déboguer leurs logiciels. Elle inclut un ensemble de registres de débogage (DR0...DR7) et d'autres registres spécifiques aux machines ou MSR (Machine Specific Registers). Un utilisateur peut configurer ces registres pour surveiller les événements, y compris l'accès à la mémoire (en mode lecture ou écriture), l'exécution des instructions et l'accès aux ports d'E/S. Lorsqu'un tel événement se produit pendant l'exécution du programme, le processeur soulève une exception de débogage (#DB) pour transférer le contrôle d'exécution au logiciel de débogage (par exemple, gdb). Il intercepte alors l'exception de débogage et permet à un développeur d'examiner l'état d'exécution du programme. Par exemple, pour surveiller l'accès à la mémoire en lecture/écriture à l'adresse'0x4007c7', l'utilisateur stocke l'adresse'0x4007c7' dans l'un des registres de débogage DR0...DR3, et le processeur soulève une exception (#DB) lorsque l'on accède à l'emplacement mémoire'0x4007c7' pendant l'exécution du programme. Un tel mode d'adressage dans le registre de débogage s'appelle un Point d'arrêt ou Breakpoint.
Mov %DR0, 0x4007c7
Généralement, les exceptions sont soulevées à la limite de l'instruction ; toutes les instructions qui précèdent celle qui cause l'exception sont autorisées à procéder, et que celle qui cause l'exception est bloquée, afin qu'elle puisse reprendre son exécution une fois que l'exception a été traitée. Dans les rares cas où l'instruction provoque un changement de tâche ou un changement de pile, ces exceptions sont soulevées après l'instruction ; notamment, l'instruction à l'origine de l'exception peut procéder, comme c'est le cas avec MOV SS ou POP SS.
Remerciements
Red Hat souhaite remercier Nick Peterson d'Everdox Tech LLC pour nous informer de CVE-2018-8897.
Red Hat souhaite également remercier Andy Lutomirski pour nous informer de CVE-2018-1087.
Produits concernés
Red Hat Product Security a évalué le problème de noyau (CVE-2018-8897) à un niveau d'impact de sécurité de catégorie Modéré.
Red Hat Product Security a évalué le problème KVM (CVE-2018-1087) à un niveau d'impact de sécurité de catégorie Important.
Les versions de produits Red Hat suivants sont concernées :
- Red Hat Enterprise Linux 5
- Red Hat Enterprise Linux 6
- Red Hat Enterprise Linux 7
- Red Hat Enterprise Linux Atomic Host
- Red Hat Enterprise MRG 2
Description de l'attaque
Les changements de piles typiques sont composés de deux opérations : une pour télécharger le registre de sélection de segment « Segment Selector »(SS), et l'autre pour définir le registre des pointeurs de pile « Stack Pointer » (RSP), ainsi :
Mov SS, [RAX]
Mov RSP, RBP
Lors de la commutation de pile via les instructions MOV SS (ou POP SS) comme décrit ci-dessus, le processeur bloque la livraison de toutes les exceptions d'interruption et de débogage (#DB). Ceci est dû au fait que si une exception devait se produire après que le registre Segment Selector (SS) ait été chargé (mais avant que les registres Stack Pointer (RSP) soient positionnés correctement), le handler d'interruptions verrait un état de pile « non valide ». Ainsi, le processeur délivre des interruptions en attente et/ou des exceptions de débogage après la première instruction qui suit après que le commutateur de pile ait été exécuté.
Considérez maintenant qu'un point d'arrêt ait été défini sur l'emplacement mémoire ([RAX] ci-dessus) auquel l'instruction Mov SS a accédé pendant le changement de pile. Ce point d'arrêt générera une exception de point d'arrêt « Breakpoint exception » (#BP) après la commutation de pile. Maintenant, si la première instruction qui suit la commutation de pile est une instruction qui change le niveau de privilège actuel (CPL 3), comme SYSCALL, SYSENTER, INT3, etc., alors l'exception de point d'arrêt retardé (#BP) plus haut sera délivrée dans l'espace du noyau, ce qui peut entraîner une escalade des privilèges.
Action
On conseille aux clients de Red Hat exécutant des versions de produits Red Hat affectés de les mettre à jour dès que les errata sont disponibles. Les clients sont priés d'appliquer les mises à jour qui conviennent immédiatement.
Mises à jour des produits concernés
Produit | Paquet | Alerte/Mise à jour |
Red Hat Enterprise Linux 7 (z-stream) | noyau | RHSA-2018: 1318 |
Red Hat Enterprise Linux 7 | kernel-rt | RHSA-2018: 1355 |
Red Hat Enterprise Linux 7.4 Extended Update Support** | noyau | RHSA-2018: 1345 |
Red Hat Enterprise Linux 7.3 Extended Update Support** | noyau | RHSA-2018: 1348 |
Red Hat Enterprise Linux 7.2 Update Services for SAP Solutions, & Advanced Update Support***,**** | noyau | RHSA-2018: 1347 |
Red Hat Enterprise Linux 6 (z-stream) | noyau | RHSA-2018: 1319 |
Red Hat Enterprise Linux 6.7 Extended Update Support** | noyau | RHSA-2018: 1346 |
Red Hat Enterprise Linux 6.6 Advanced Update Support***,**** | noyau | RHSA-2018: 1351 |
Red Hat Enterprise Linux 6.5 Advanced Update Support*** | noyau | RHSA-2018: 1350 |
Red Hat Enterprise Linux 6.4 Advanced Update Support*** | noyau | RHSA-2018: 1349 |
Red Hat Enterprise Linux 5 Extended Lifecycle Support* | noyau | RHSA-2018: 1353 |
Red Hat Enterprise Linux 5.9 Advanced Update Support*** | noyau | RHSA-2018: 1352 |
RHEL Atomic Host | noyau | en attente |
Red Hat Enterprise MRG 2 | kernel-rt | RHSA-2018: 1354 |
*Un abonnement ELS actif est exigé pour pouvoir accéder à ce correctif. Veuillezcontacter l'équipe de vente de Red Hat ou bien, votre représentant commercial particulier pour obtenir plus d'informations si votre compte n'a pas d'abonnement ELS actif.
**Un abonnement EUS actif est exigé pour pouvoir accéder à ce correctif. Veuillezcontacter l'équipe de vente de Red Hat ou bien, votre représentant commercial particulier, pour obtenir plus d'informations si votre compte n'a pas d'abonnement EUS actif.
Qu'est- ce qu'un abonnement Red Hat Enterprise Linux Extended Update Support (EUS) ?
*Un abonnement AUS actif est exigé pour pouvoir accéder à ce correctif dans RHEL AUS.
*Un abonnement TUS actif est exigé pour pouvoir accéder à ce correctif dans RHEL TUS.
Bien que les conteneurs Linux de Red Hat ne soient pas directement affectés par les problèmes du noyau, leur sécurité dépend de l'intégrité de l'environnement du noyau hôte. Red Hat vous recommande d'utiliser les versions les plus récentes de vos images de conteneurs. Le Container Health Index, qui fait partie du catalogue Red Hat Container, peut toujours être utilisé pour vérifier l'état de sécurité des conteneurs de Red Hat. Pour protéger les conteneurs utilisés, vous devrez vous assurer que l'hôte du conteneur a été mis à jour contre ces attaques. Red Hat a publié une mise à jour d'Atomic Host pour ce cas d'utilisation.
Mitigation
Il n'existe pas d'autre solution que d'appliquer les mises à jour du distributeur de logiciel.
Comments