# Failles libxml2 - XXE, SSRF et risques d'exécution de code

> Failles libxml2 : six CVE à surveiller sur Linux, avec des risques XXE, SSRF et mémoire. Environnements concernés, correctifs Ubuntu et mesures de protection.

- URL canonique : [https://forgetaboutit.fr/blog/failles-libxml2-xxe-ssrf-execution-code-linux/](https://forgetaboutit.fr/blog/failles-libxml2-xxe-ssrf-execution-code-linux/)
- Publication : 2026-10-09T00:00:00.000Z
- Catégorie : Sécurité
- Sujets : libxml2, CVE, CVE-2026-86144, Linux, Ubuntu, XXE, SSRF, Patch management

Dans le cadre de notre **veille sécurité**, nous signalons plusieurs **failles libxml2** touchant le traitement de documents XML. Parmi elles, **CVE-2026-86144** concerne des risques **XXE et SSRF**, tandis que **CVE-2026-86138** et **CVE-2026-86142** provoquent des débordements mémoire pouvant, selon le bulletin Ubuntu, conduire à une exécution de code.

Le **8 octobre 2026**, Canonical a publié le [bulletin USN-8910-1](https://ubuntu.com/security/notices/USN-8910-1), qui apporte des correctifs pour six CVE. Les vulnérabilités étaient déjà documentées en septembre : l'actualité est ici la disponibilité des mises à jour Ubuntu, pas la découverte simultanée de six nouvelles failles.

Le point à retenir : **une bibliothèque vulnérable peut se trouver derrière plusieurs services**, sans apparaître directement dans leur interface. Il faut identifier les applications qui l'utilisent et les données qu'elles acceptent avant de conclure sur leur exposition.

## libxml2 : une bibliothèque discrète dans la chaîne applicative

libxml2 sert à analyser et manipuler des documents XML. Une application peut l'utiliser directement, ou à travers une dépendance qui s'appuie sur cette bibliothèque native.

Pour qualifier l'exposition, on peut donc commencer par les services qui importent des fichiers XML, les échanges applicatifs, les traitements documentaires et les tâches automatisées recevant des données extérieures. **Ce sont des périmètres à examiner, pas une liste de produits déclarés vulnérables.**

Contrairement à [Fragnesia, qui concerne le noyau Linux](/blog/fragnesia-cve-2026-46300-dirty-frag-linux/), les problèmes examinés ici se situent dans une bibliothèque utilisée par des processus applicatifs. Le chemin d'attaque et la remédiation ne sont pas les mêmes.

## Les six CVE et leurs impacts

Les vulnérabilités ne présentent pas toutes le même risque. Certaines font planter un traitement ; d'autres touchent la mémoire ou les restrictions appliquées au chargement de ressources.

| Vulnérabilité | Traitement concerné | Impact signalé |
| --- | --- | --- |
| [CVE-2026-76781](https://ubuntu.com/security/CVE-2026-76781) | Catalogue XML spécialement conçu | Plantage et déni de service |
| [CVE-2026-86138](https://ubuntu.com/security/CVE-2026-86138) | Noms qualifiés de grande taille | Débordement mémoire, plantage ou exécution de code possible |
| [CVE-2026-86139](https://ubuntu.com/security/notices/USN-8910-1) | Échappement de grandes chaînes URI | Consommation excessive de ressources et déni de service ; Ubuntu 26.04 LTS uniquement dans ce bulletin |
| [CVE-2026-86142](https://ubuntu.com/security/CVE-2026-86142) | Expressions XPointer de grande taille | Débordement mémoire, plantage ou exécution de code possible |
| [CVE-2026-86143](https://ubuntu.com/security/CVE-2026-86143) | Longueurs transmises aux fonctions d'écriture | Plantage applicatif et déni de service |
| [CVE-2026-86144](https://ubuntu.com/security/CVE-2026-86144) | Options du parseur lors du traitement XInclude | XXE, SSRF ou déni de service dans certaines configurations |

Il ne faut donc pas résumer l'ensemble à une « RCE critique sur tous les serveurs Linux ». Ubuntu classe notamment les [CVE-2026-86138](https://ubuntu.com/security/CVE-2026-86138) et [CVE-2026-86142](https://ubuntu.com/security/CVE-2026-86142) en priorité **Medium**, avec un score CVSS de **6,9**. Le risque doit être qualifié à partir des fonctions réellement utilisées et des entrées contrôlables par un attaquant.

## CVE-2026-86144 : des restrictions réseau qui ne suivent pas le traitement XML

XInclude permet à un document XML d'inclure d'autres ressources. La [CVE-2026-86144](https://ubuntu.com/security/CVE-2026-86144) concerne les fonctions `xmlXIncludeProcess()` et `xmlXIncludeProcessTree()`, qui ne propagent pas correctement certaines options du parseur, notamment `XML_PARSE_NONET`.

Dans une application dotée d'un **chargeur de ressources personnalisé capable d'accéder à Internet**, cette perte d'options peut remettre en cause une restriction réseau attendue.

Une attaque **SSRF** consiste à faire émettre une requête par le serveur vers une destination choisie par l'attaquant. Une attaque **XXE** détourne le traitement de ressources ou d'entités externes dans un document XML. Une ressource volontairement lente peut également bloquer le traitement et contribuer à un déni de service.

**Le simple fait d'accepter un fichier XML ne suffit pas à établir que cette faille est exploitable.** Il faut vérifier l'utilisation de XInclude, le comportement du chargeur et les destinations accessibles depuis l'application. En revanche, considérer le seul drapeau `XML_PARSE_NONET` comme une protection suffisante serait précisément ignorer le problème signalé.

## Erreurs mémoire : quand une donnée malformée dépasse le plantage

Les [CVE-2026-86138](https://ubuntu.com/security/CVE-2026-86138) et [CVE-2026-86142](https://ubuntu.com/security/CVE-2026-86142) touchent respectivement `xmlDictAddQString()` et `xmlXPtrEvalXPtrPart()`.

Dans ces chemins, le traitement de données de grande taille aboutit à des **débordements de tampon dans le tas**, une zone mémoire utilisée par le processus. Des écritures peuvent alors dépasser l'espace prévu.

Le bulletin Ubuntu mentionne une exécution de code possible pour ces deux CVE. Cela ne démontre ni une exploitation universelle ni un accès distant sans authentification : il faut que l'application atteigne les fonctions concernées avec des données spécialement conçues. Les limites de taille, les fonctions activées et les droits du processus comptent dans l'analyse.

La priorité va donc aux traitements exposés à des données non maîtrisées, particulièrement lorsque le service dispose d'accès sensibles à des fichiers, des secrets ou d'autres composants de l'infrastructure.

## Versions corrigées : vérifier le paquet de sa distribution

Le [journal officiel de libxml2 2.15.4](https://raw.githubusercontent.com/GNOME/libxml2/v2.15.4/NEWS) contient les corrections amont concernées. Mais **un paquet de distribution portant un numéro inférieur peut déjà être corrigé**, grâce au rétroportage des correctifs.

Pour les versions Ubuntu LTS ci-dessous, le [bulletin USN-8910-1](https://ubuntu.com/security/notices/USN-8910-1) indique les révisions corrigées suivantes pour la bibliothèque d'exécution :

| Distribution | Paquet | Révision corrigée du bulletin |
| --- | --- | --- |
| Ubuntu 26.04 LTS | `libxml2-16` | `2.15.2+dfsg-0.1ubuntu0.3` |
| Ubuntu 24.04 LTS | `libxml2` | `2.9.14+dfsg-1.3ubuntu3.10` |
| Ubuntu 22.04 LTS | `libxml2` | `2.9.13+dfsg-1ubuntu0.14` |

Ces versions constituent des repères au **9 octobre 2026** : une révision corrigée ultérieure de la même distribution convient également. Pour les anciennes éditions Ubuntu, le bulletin précise les conditions d'accès aux correctifs via Ubuntu Pro ou son extension Legacy Support.

Côté Debian, le [suivi de CVE-2026-86144](https://security-tracker.debian.org/tracker/CVE-2026-86144) indique encore à cette date des paquets vulnérables dans **Bookworm et Trixie**, tandis que Forky et Sid disposent d'un paquet corrigé. Ce constat concerne cette CVE précise, pas automatiquement les six. Il ne justifie pas de basculer un serveur de production vers une branche de développement : suivre le correctif de sa distribution et réduire l'exposition restent les bons leviers.

## Comment vérifier la présence de libxml2

Sur un système Ubuntu ou Debian utilisant les paquets de la distribution, un premier inventaire peut être réalisé avec :

```bash
dpkg-query -W -f='${binary:Package}\t${Version}\t${db:Status-Abbrev}\n' 'libxml2*'
```

La sortie affiche le paquet, sa version complète et son état ; `ii` désigne un paquet installé. Pour examiner les versions installées et candidates proposées par les dépôts configurés :

```bash
apt-cache policy libxml2 libxml2-16
```

**Cet inventaire n'est pas exhaustif.** Une application peut embarquer sa propre copie, ou intégrer libxml2 dans une dépendance compilée. L'absence de paquet système ne prouve donc pas l'absence de bibliothèque vulnérable.

Il faut aussi examiner les images de conteneurs et les dépendances natives des applications. Un scanner de vulnérabilités aide à repérer les composants ; il ne remplace pas l'analyse du chemin de traitement XML.

## Patcher et vérifier la bibliothèque effectivement utilisée

Sur **Ubuntu 22.04 et 24.04**, pour le paquet installé `libxml2` :

```bash
sudo apt update
sudo apt install --only-upgrade libxml2
```

Sur **Ubuntu 26.04**, le paquet d'exécution concerné porte un autre nom :

```bash
sudo apt update
sudo apt install --only-upgrade libxml2-16
```

Mettre également à jour les autres paquets concernés présents sur le système, notamment les paquets de développement listés dans le bulletin. Après intervention, vérifier la révision installée et relancer de manière contrôlée les processus qui utilisent encore l'ancienne bibliothèque en mémoire.

Pour les conteneurs, **patcher l'hôte ne corrige pas leur propre copie de libxml2**. Il faut intégrer le correctif dans l'image, reconstruire ou récupérer une image corrigée, redéployer et contrôler la version dans les nouveaux conteneurs.

Enfin, tester les imports, traitements XML et tâches différées concernés. Comme nous l'expliquions à propos d'une [régression après mise à jour Apache sur Ubuntu](/blog/mise-a-jour-apache-ubuntu-regression-redemarrage/), une correction de sécurité doit aussi être validée côté fonctionnement applicatif.

## Réduire l'exposition en attendant le correctif

Lorsque le correctif n'est pas encore disponible pour votre environnement, les mesures doivent viser les usages identifiés :

- désactiver XInclude et le chargement de ressources externes lorsque l'application n'en a pas besoin ;
- restreindre les destinations réseau accessibles aux traitements XML ;
- limiter la taille des documents et la durée des traitements ;
- isoler les services concernés et réduire leurs droits ;
- surveiller les plantages et connexions sortantes inhabituelles.

Ces mesures ne constituent pas une correction générique des six CVE. Elles réduisent des chemins d'attaque précis et doivent être testées pour ne pas interrompre des échanges légitimes.

## Notre lecture opérationnelle

Ces failles libxml2 rappellent pourquoi notre [suivi des CVE doit être quotidien](/blog/suivi-cve-pourquoi-quotidien/). L'alerte ne porte pas toujours le nom du logiciel visible par l'utilisateur : elle peut concerner une bibliothèque commune à plusieurs services.

La réponse consiste à **identifier les copies présentes, qualifier les usages exposés, appliquer les correctifs adaptés et vérifier les processus réellement en service**. C'est ce travail de veille et de maintenance que nous intégrons à notre [infogérance de serveurs Linux](/infogerance/).

Votre infrastructure traite des documents ou des flux XML et vous souhaitez qualifier son exposition ? [Échangeons sur votre périmètre](/contact/).

## Questions fréquentes

### Quelles failles libxml2 sont concernées ?

Le bulletin Ubuntu USN-8910-1 regroupe six CVE : CVE-2026-76781, CVE-2026-86138, CVE-2026-86139, CVE-2026-86142, CVE-2026-86143 et CVE-2026-86144. Leurs impacts et conditions d'exploitation diffèrent.

### Un serveur avec libxml2 est-il automatiquement exploitable à distance ?

Non. L'exposition dépend de l'application, des fonctions libxml2 utilisées et de la possibilité de lui faire traiter des données spécialement conçues. La seule présence du paquet ne démontre pas un accès distant exploitable.

### Que permet CVE-2026-86144 ?

Dans certains traitements XInclude avec un chargeur de ressources personnalisé, des options du parseur ne sont pas propagées. Cela peut permettre des attaques XXE, SSRF ou un déni de service si ce chargeur accède au réseau.

### Faut-il installer libxml2 2.15.4 sur toutes les distributions ?

Non. Les distributions peuvent rétroporter les correctifs dans leurs propres paquets. Il faut comparer la révision complète installée au bulletin applicable à sa distribution, plutôt que se fier uniquement au numéro de version amont.

### La mise à jour de l'hôte corrige-t-elle aussi les conteneurs ?

Pas si les conteneurs embarquent leur propre copie de libxml2. Il faut mettre à jour leurs images et les redéployer, puis vérifier la bibliothèque utilisée dans les nouveaux conteneurs.

## Sources

- [Ubuntu - USN-8910-1, publié le 8 octobre 2026](https://ubuntu.com/security/notices/USN-8910-1).
- [Ubuntu - CVE-2026-86144, traitement XInclude et options du parseur](https://ubuntu.com/security/CVE-2026-86144).
- [Ubuntu - CVE-2026-86138, débordement mémoire dans xmlDictAddQString](https://ubuntu.com/security/CVE-2026-86138).
- [Ubuntu - CVE-2026-86142, débordement mémoire dans le traitement XPointer](https://ubuntu.com/security/CVE-2026-86142).
- [Ubuntu - CVE-2026-86143, vérification des longueurs avant écriture](https://ubuntu.com/security/CVE-2026-86143).
- [Ubuntu - CVE-2026-76781, plantage lors du traitement de catalogues XML](https://ubuntu.com/security/CVE-2026-76781).
- [GNOME - journal des changements de libxml2 2.15.4, miroir officiel](https://raw.githubusercontent.com/GNOME/libxml2/v2.15.4/NEWS).
- [Debian - état des correctifs pour CVE-2026-86144](https://security-tracker.debian.org/tracker/CVE-2026-86144).
