Une importante faille de sécurité vient de refaire surface. Elle touche les systèmes Linux, OpenBSD, NetBSD, FreeBSD et Solaris, sur i386 et AMD64, ainsi que certaines versions d’Android.

La faille Stack Clash vise une corruption de la pile d’exécution (Stack) et du tas (heap) de chaque application afin d’élever les privilèges.

La pile d’exécution est une zone de mémoire spécifique qui se développe automatiquement lorsque le programme le nécessite. Si la mémoire de pile augmente trop et devient trop proche d’une autre région de mémoire du tas dans laquelle elle se trouve, l’ordonnanceur du noyau (kernel) peut être amené à déplacer rapidement ces zones mémoires. Si le déplacement n’est pas assez rapide, le kernel lance un appcrash (demande de dépilage et suppression rapide du processus), pour tuer l’application et limiter un risque d’instabilité. Cet appcrash pouvant être trop lent, le chevauchement de deux zones mémoires avec une injection de code permet d’exploiter une faille d’élévation de privilèges.

Ainsi, un attaquant disposant de n’importe quel type de niveau d’accès à un système peut exploiter la faille, et tenter d’obtenir des privilèges « root » complets.

La faille n’est pas récente puisqu’elle avait déjà été détectée en 2005 et 2010. Un mécanisme de sécurité, nommé Stack Guard Page, avait été mis en place, mais il se révèle aujourd’hui insuffisant pour éviter une attaque, à cause de la vitesse matérielle des machines d’aujourd’hui.

A l’heure actuelle, la faille a été uniquement exploitable en local, sauf dans certains cas à distance via le serveur SMTP Exim.

Le moyen le plus simple pour se protéger consiste à mettre jour son système. La mise à jour des noyaux et du glibc de chaque serveur en production et de chaque poste client est donc à faire en urgence.

La faille a fait l’objet d’une déclaration de vulnérabilité : CVE-2017-1000364

Sources : Icodia/Qualys/cve.mitre.org