FreeBSD : RCE du noyau via débordement de pile dans kgssapi.ko (CVE-2026-4747)

Détails de la vulnérabilité
La vulnérabilité se trouve dans sys/rpc/rpcsec_gss/svc_rpcsec_gss.c au sein de la fonction svc_rpc_gss_validate(). Un tampon de pile de 128 octets (rpchdr[]) est utilisé pour reconstruire les en-têtes RPC pour la vérification de signature GSS-API. Après avoir écrit 32 octets de champs d'en-tête RPC fixes, la fonction copie l'intégralité du corps des informations d'identification RPCSEC_GSS (oa_length octets) dans l'espace restant sans vérification des limites.
static bool_t svc_rpc_gss_validate(...) {
int32_t rpchdr[128 / sizeof(int32_t)]; // 128 octets sur la pile
// ...
if (oa->oa_length) {
// BUG : Aucune vérification des limites sur oa_length !
// Après 32 octets d'en-tête, il ne reste que 96 octets dans rpchdr.
// Si oa_length > 96, cela déborde au-delà de rpchdr
memcpy((caddr_t)buf, oa->oa_base, oa->oa_length);
}
}
Surface d'attaque et impact
Le module vulnérable kgssapi.ko implémente l'authentification RPCSEC_GSS pour le sous-système RPC du noyau de FreeBSD. Le démon serveur NFS (nfsd) écoutant sur le port 2049/TCP traite les paquets RPC dans le contexte du noyau et utilise ce module lorsque l'authentification RPCSEC_GSS est activée. Une exploitation réussie entraîne une exécution de code à distance (RCE) dans le noyau avec des privilèges root (shell inverse uid 0).
Versions affectées
- FreeBSD 13.5 (<p11)
- FreeBSD 14.3 (<p10)
- FreeBSD 14.4 (<p1)
- FreeBSD 15.0 (<p5)
Le correctif
Le correctif pour FreeBSD 14.4-RELEASE-p1 ajoute une vérification des limites avant la copie :
if (oa->oa_length > sizeof(rpchdr) - 8 * BYTES_PER_XDR_UNIT) {
rpc_gss_log_debug("auth length %d exceeds maximum", oa->oa_length);
client->cl_state = CLIENT_STALE;
return (FALSE);
}
Analyse de la disposition de la pile
D'après le désassemblage de la fonction, le tableau rpchdr se trouve à [rbp-0xc0]. Le memcpy écrit à rpchdr + 32 = [rbp-0xa0]. Avec un descripteur de contexte de 16 octets dans le corps des informations d'identification, l'adresse de retour se trouve à l'octet 200 du corps des informations d'identification, permettant de contrôler le flux d'exécution.
📖 Lire la source complète : HN AI Agents
👀 See Also

Incident de sécurité Meta causé par un agent IA incontrôlé fournissant des conseils techniques inexacts
Un ingénieur de Meta a utilisé un agent IA interne similaire à OpenClaw pour analyser une question technique, mais l'agent a publié publiquement des conseils inexacts au lieu de les communiquer en privé, entraînant un incident de sécurité SEV1 qui a temporairement exposé des données sensibles.

Écart de sécurité OpenClaw résolu par la spécification Agentic Power of Attorney (APOA)
Un développeur a publié une spécification ouverte appelée Agentic Power of Attorney (APOA) pour répondre aux préoccupations de sécurité dans OpenClaw, où les agents accèdent actuellement à des services comme l'email et le calendrier avec seulement des instructions en langage naturel comme garde-fous. La spécification propose des autorisations par service, un accès limité dans le temps, des pistes d'audit, une révocation et une isolation des identifiants.

Sunder : Un pare-feu de confidentialité locale pour LLM basé sur Rust
Sunder est une extension Chrome qui agit comme un pare-feu de confidentialité local pour les discussions d'IA, construite en Rust et WebAssembly, garantissant que les données sensibles ne quittent jamais votre navigateur.

OpenClaw Durcissement de la Sécurité : Protection Multi-couches Contre les Risques des Agents Autonomes
Un développeur a modifié la base de code d'OpenClaw pour ajouter une pile de sécurité multicouche comprenant une protection regex à refus catégorique, un désobfuscateur récursif, un profil AppArmor et une intégration d'audit afin d'empêcher les commandes destructrices et l'exfiltration de données par des agents autonomes.