CVE-2022-50004 in Linuxinformation

Résumé

par VulDB • 08/06/2026

Dans le noyau Linux, le code d'erreur `CR2: 00000000000000c0` indique une **erreur de segmentation** (page fault) sur l'adresse virtuelle `0xc0`.

### Analyse de l'erreur

1. **Adresse invalide (`0xc0`)** : * L'adresse `0xc0` est très proche de zéro. * Dans le noyau Linux, les adresses inférieures à `PAGE_SIZE` (généralement 4 Ko) sont **réservées** et ne doivent jamais être accédées. * Cela signifie presque toujours qu'un **pointeur NULL** ou un pointeur corrompu a été dereferencé.

2. **Fonction responsable : `xfrmi_xmit`** : * La trace montre que le crash se produit dans `xfrmi_xmit+0xde/0x460`. * `xfrmi` est le module **XFRM Interface** (interface de sécurité IPsec). * Cette fonction est appelée lors de l'envoi de paquets via une interface IPsec.

3. **Contexte d'appel** : * Le paquet provient d'un socket raw (`raw_sendmsg`), via `ip_push_pending_frames`, puis `dev_hard_start_xmit`. * Cela suggère qu'une application a envoyé un paquet via un socket raw sur une interface configurée avec IPsec (XFRM).

---

### Cause probable

Le bug est très probablement dû à un **pointeur NULL** dans la structure `struct xfrm_state` ou `struct xfrm_mode` utilisé par le pilote IPsec.

Dans `xfrmi_xmit`, le noyau tente d'accéder à un membre d'une structure qui n'a pas été initialisé correctement, ou dont le pointeur parent est NULL.

Exemple de code suspect (simplifié) : ```c // Dans xfrmi_xmit struct xfrm_state *x = ...; // Peut être NULL struct xfrm_mode *mode = x->mode; // Si x est NULL, accès à l'adresse 0x0 + offset -> CR2 = offset ``` Si `CR2 = 0xc0`, cela signifie que le code a tenté d'accéder à l'offset `0xc0` d'un pointeur NULL.

---

### Solutions et correctifs

#### 1. Mise à jour du noyau Ce type de bug est souvent corrigé dans les versions plus récentes du noyau Linux. Vérifiez si vous utilisez une version ancienne (par exemple, < 5.15 ou < 6.1 selon la distribution).

#### 2. Vérification de la configuration IPsec Si vous utilisez IPsec (via `strongSwan`, `Libreswan`, `systemd-networkd`, etc.) : - Vérifiez qu'aucune règle IPsec n'est corrompue. - Essayez de désactiver temporairement IPsec pour voir si le crash cesse. - Assurez-vous que les interfaces virtuelles (comme `veth`, `br_netfilter` dans votre trace) ne sont pas mal configurées avec des règles XFRM.

#### 3. Contournement temporaire Si vous ne pouvez pas mettre à jour le noyau immédiatement : - Désactivez les fonctionnalités IPsec sur les interfaces concernées. - Si vous utilisez des conteneurs (Docker/Kubernetes), vérifiez les plugins CNI qui pourraient injecter des règles IPsec incorrectes.

#### 4. Rapport de bug Si ce bug est reproductible, il est recommandé de le signaler aux mainteneurs du noyau Linux. Incluez : - La version exacte du noyau (`uname -r`). - La configuration IPsec utilisée. - La trace complète du crash (comme celle que vous avez fournie).

---

### Résumé technique

| Élément | Valeur | |---------|--------| | **Erreur** | Page fault sur adresse `0xc0` (pointeur NULL corrompu) | | **Fonction** | `xfrmi_xmit` (module `xfrm_interface`) | | **Cause** | Accès à un membre d'une structure `xfrm_state` ou `xfrm_mode` via un pointeur NULL | | **Action** | Mettre à jour le noyau ou désactiver IPsec temporairement |

Si vous avez besoin d'aide pour identifier la version du noyau ou la configuration IPsec, n'hésitez pas à fournir plus de détails.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Responsable

Linux

Réserver

18/06/2025

Divulgation

18/06/2025

Modérer

accepté

Entrée

VDB-312993

EPSS

0.00252

KEV

non

Activités

très faible

Sources

Want to stay up to date on a daily basis?

Enable the mail alert feature now!