Aller au contenu

Qubes OS et Xen project : une faille dans libxl pouvait dévoiler des informations

Bonjour,

L’avis de sécurité Qubes OS QSB-106 ⁽¹⁾, publié le 12 novembre 2024, correspond à une faille de sécurité en provenance du Xen Project (Xen), l’hyperviseur de type 1 utilisé comme base au système.

QSSB-106 fait suite à l’avis de sécurité XSA-464 ⁽²⁾, lui-même relayé sous la référence CVE-2024-45819 ⁽³⁾.

La bonne nouvelle, c’est que nous pouvons y lire :

Continue to update normally (…).
No other user action is required in response to this QSB.

Cela signifie qu’il nous suffit d’avoir mis notre système à jour. Il faudrait être bien négligent pour ne pas l’avoir fait, tant le gestionnaire de mises à jour de Qubes OS est bien conçu et fonctionne à merveille. ⁽⁰⁰⁷⁾

Nous avons donc bénéficié des correctifs apportés à libxl pour éliminer cette faille de sécurité sans même nous en apercevoir, la plupart du temps.

Les membres du projet Qubes OS surveillent scrupuleusement les XSA.
Ils déclarent des QSB lorsqu’ils pensent que les failles concernent et impactent les utilisateurs de Qubes OS.
Ils publient également les autres avis des failles XSA pour information.

XSA-464 est une faille dans la librairie libxl.

libxl (libxenlight) est l’équivalent de la bienconnue libvirt. Cette librairie fournit les interfaces pour la gestion des machines virtuelles et des ressources associées dans l’environnement Xen. Il ne faut surtout pas la confondre avec drvxen, le pilote de gestion Xen pour libvirt.

Pour les plus curieux, les codes sources de libxl sont dans xen/tools/libs/light ⁽⁴⁾ et on trouve quelques informations intéressantes dans la page Toolstacks du Wiki du projet Xen ⁽⁵⁾.

libvirt est bien là, puisque Qubes OS utilise libvirtd pour appeler libxl. L’exploitation de la faille présentée ici dépend donc aussi du fonctionnement de libvirtd (mais c’est bien libxl qui était en cause et qui a été corrigée).

Une faille dans ces librairies est forcément importante à prendre en considération, dans la mesure où elles sont parmi les « tours de contrôle » du système.

Dans le cas de XSA-464, la faille est que le programme ne veillait pas à écraser tout l’espace qu’il utilisait pour gérer les données d’une machine virtuelle lors de la libération. Il se contentait de le faire pour une partie seulement. Ceci pouvait laisser des informations dans une zone mémoire qui, une fois libérée, pouvait être utilisée lors de la création d’une autre machine virtuelle par la suite, rendant ces informations accessibles à celle-ci.

Ce type d’erreur humaine lors du développement, très bien connu maintenant, conduit à une possible fuite des données contenues dans cette zone mémoire (sous réserve que quelqu’un, au travers d’un programme, aille voir ce qu’il s’y trouve).

Cette faille nécessitait d’avoir infecté une des machines virtuelles (qubes) avec un programme adapté. Il fallait aussi que cette machine soit lancée, ce qui n’est ni simple ni invisible dans un système comme Qubes OS.

Par ailleurs, les informations qui pouvaient être révélées étaient des informations système de bas niveau (des tables ACPI). Il ne s’agissait pas de données d’applications ni de données utilisateur.

Il n’y avait donc pas grand péril dans cette faille.

C’est toutefois une excellente chose qu’elle ait été trouvée et corrigée avec soin.
C’est aussi une très bonne chose que la communication ait été transparente à son sujet.

Cela s’ajoute à la qualité des outils et des communiqués du projet Xen ⁽⁶⁾ et du projet Qubes OS.

Deux beaux projets libres non commerciaux.

Pour soutenir financièrement le projet Qubes OS, c'est par ici : https://www.qubes-os.org/donate/.
Pour soutenir financièrement la Fondation Linux qui gère le projet Xen ⁽⁷⁾, c'est par ici : https://www.linuxfoundation.org/about/donate.

Au plaisir,

Marc JESTIN


⁽¹⁾ QSB = Qubes OS Security Bulletin (bulletin de sécurité Qubes OS).
QSB-106 : https://www.qubes-os.org/news/2024/11/12/qsb-106/.

⁽²⁾ XSA = Xen Security Advisory (avis de sécurité Xen).
XSA-464 : https://xenbits.xen.org/xsa/advisory-464.html.

⁽³⁾ CVE = Common Vulnerabilities and Exposures (expositions et vulnérabilités communes).
CVE-2024-45819 : https://www.cve.org/CVERecord?id=CVE-2024-45819.

⁽⁴⁾ Lien dans le dépôt officiel : https://xenbits.xen.org/gitweb/?p=xen.git;a=tree;f=tools/libs/light;hb=refs/heads/master.

⁽⁵⁾ https://wiki.xenproject.org/wiki/Choice_of_Toolstacks.

⁽⁶⁾ ⁽⁷⁾ Le projet Xen, démarré à université de Cambridge, a vécu sous différentes formes juridiques. C’est un projet communautaire géré par la Fondation Linux depuis 2013. Voir : https://en.wikipedia.org/wiki/Xen#History.

⁽⁰⁰⁷⁾ J’en connais qui ne le font pas. Ils n’écoutent pas bien attentivement ce que je leur explique. Du coup, ils oublient et ne vont pas cliquer sur l’icône qui apparaît pour nous signaler qu’il y a des mises à jour à télécharger et à installer. Ceux qui se savent agir ainsi seraient bien avisés de me demander un contrat de suivi périodique.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *