procfs et sysfs

Plusieurs fichiers sous /proc/sys et /sys sont des chemins d'assistant en espace utilisateur ou des déclencheurs : le noyau de l'hôte les lit et exécute le programme référencé en tant que root dans les espaces de noms de l'hôte, ou expose la mémoire de l'hôte. Lorsqu'un conteneur a le véritable procfs ou sysfs de l'hôte monté en écriture, écrire dans core_pattern, modprobe ou uevent_helper, ou lire kcore, mène directement à l'hôte.

2 min de lecturemis à jour le 12 oct. 2026florianamette1 contributeur
Demander à votre assistant (MCP)Modifier sur GitHub

/proc et /sys ne sont pas des fichiers ordinaires : de nombreuses entrées sont des points de contrôle que le noyau relit et sur lesquels il agit. Une poignée d'entre elles nomment un programme que le noyau exécute, en tant que root dans les espaces de noms init de l'hôte, lorsqu'un événement survient : un plantage (core_pattern), un chargement automatique de module noyau (modprobe), ou un uevent de périphérique (uevent_helper). D'autres exposent directement la mémoire de l'hôte (kcore) ou permettent à un processus de solliciter le noyau de l'hôte (sysrq-trigger). Il ne s'agit d'évasions que lorsque le conteneur a le véritable procfs ou sysfs de l'hôte monté et accessible en écriture, ce qui se produit avec un -v /proc:/host/proc imprudent, un remontage de procfs, ou un conteneur privilégié.

Vérifiez ce qui est exposé et accessible en écriture :

bash
mount | grep -E 'proc|sys'                       # look for host proc/sys without "ro"
ls -l /proc/sys/kernel/core_pattern /proc/sys/kernel/modprobe 2>/dev/null
ls -l /sys/kernel/uevent_helper 2>/dev/null
for f in /proc/sys/kernel/core_pattern /proc/sys/kernel/modprobe /sys/kernel/uevent_helper; do
  [ -w "$f" ] && echo "writable: $f"; done

Sous-thèmes#

  • core_pattern : rediriger par pipe le core dump d'un processus qui plante vers un programme de l'hôte.
  • chemin modprobe : détourner le chargeur automatique de modules que le noyau exécute en tant que root.
  • uevent_helper : exécuter un programme sur un uevent de périphérique.
  • binfmt_misc : enregistrer un interpréteur pour un format de fichier.
  • sysrq-trigger : invoquer les actions magic-sysrq du noyau de l'hôte.
  • accès aux processus de l'hôte : lire la mémoire et l'environnement des processus de l'hôte.
  • lecture mémoire kcore : extraire la mémoire du noyau de l'hôte via /proc/kcore.

Références#