Noyaux StackX
Comme pour StackX PHP, l’histoire a commencé avec une vulnérabilité critique.
CVE-2026-98432 touche la gestion mémoire des options TCP/IPv4 dans le noyau Linux. Ce défaut peut conduire à l’utilisation d’une zone mémoire déjà libérée, avec des conséquences allant du plantage du serveur à une compromission potentielle à distance.
Dans l’urgence, nous avons commencé par rétroporter le correctif amont sur le noyau Debian 11 Bullseye. Le premier lot publié reposait sur Linux 5.10.262, avec notre révision 5.10.262-1+sx1. Les portages pour Debian 9 Stretch et Debian 10 Buster ont suivi après leurs propres adaptations et validations.
Cette première étape était volontairement ciblée : corriger CVE-2026-98432 sur les noyaux natifs de ces trois distributions, sans prétendre reprendre la maintenance complète de Debian 9, 10 ou 11.
Une fois l’urgence traitée, le projet aurait pu s’arrêter là. Il a fait exactement l’inverse.
Nous avons décidé d’aller plus loin et de remettre du neuf sous le capot : porter Linux 6.12 LTS sur Stretch, Buster et Bullseye, afin que des serveurs historiques puissent bénéficier d’un noyau récent, de ses protections et de ses corrections de sécurité, tout en conservant leurs applications particulièrement délicates à migrer.
Le besoin est très concret. Certains de ces serveurs restent liés à des systèmes industriels ou médicaux qui ne connaîtront plus de mise à jour, à des équipements dont les protocoles sont encodés en dur ou à des applications dont la migration demande beaucoup plus qu’un simple changement de version.
Nous avons prévu d’assurer le suivi et les mises à jour de cette gamme jusqu’en 2028. Cette maintenance porte sur les noyaux StackX et leur compatibilité avec les distributions concernées. Elle ne constitue pas une reprise générale du support de ces anciennes versions de Debian.
Les noyaux StackX répondent donc aujourd’hui à deux besoins différents : corriger CVE-2026-98432 sur les noyaux natifs de Debian 9, 10 et 11, ou apporter Linux 6.12 LTS à ces mêmes systèmes sans remplacer leur environnement utilisateur.
Il ne s’agit donc pas de « trois générations de noyaux LTS ». Le miroir contient six ensembles distincts : trois branches Debian natives corrigées, puis trois constructions spécifiques de Linux 6.12, une par distribution. Tous les paquets présentés ici sont destinés à amd64.
Deux choix selon le besoin
Rester sur le noyau natif corrigé : le changement est volontairement limité. Le paquet conserve la génération de noyau de la distribution et ajoute le rétroportage ciblé de CVE-2026-98432.
Passer à Linux 6.12 LTS : le système conserve sa glibc, ses en-têtes utilisateurs et son environnement Debian, mais démarre sur un noyau 6.12 construit, configuré et testé séparément pour cette distribution.
Ces deux lignes sont séparées. Installer 6.12 ne transforme pas les paquets +sx1 en dépendances et les paquets natifs corrigés ne prétendent pas fournir les fonctions d’un noyau moderne.
Noyaux Debian natifs corrigés
| Distribution | Base | Révision publiée | Noyau démarré |
|---|---|---|---|
| Debian 9 Stretch | Linux 4.9.320 | 4.9.320-2+sx1 | 4.9.0-19-sx1-amd64 |
| Debian 10 Buster | Linux 4.19.316 | 4.19.316-1+sx1 | 4.19.0-27-sx1-amd64 |
| Debian 11 Bullseye | Linux 5.10.262 | 5.10.262-1+sx1 | 5.10.0-46-sx1-amd64 |
Ces trois lots apportent un rétroportage ciblé du correctif CVE-2026-98432. L’adaptation s’appuie sur le commit stable b3b027ef0cd3. Les options IPv4 sont libérées après un délai RCU, afin que les lecteurs encore actifs ne manipulent pas une zone déjà libérée. Stretch et Buster reçoivent aussi la garde explicite des pointeurs nuls nécessaire à leur implémentation.
La portée est volontairement précise : ces révisions +sx1 corrigent CVE-2026-98432. Elles ne constituent pas une reprise générale de la maintenance de sécurité des noyaux 4.9, 4.19 ou 5.10, encore moins de l’ensemble de Debian.
Linux 6.12 LTS pour Stretch, Buster et Bullseye
| Distribution | Révision des paquets | Noyau démarré |
|---|---|---|
| Debian 9 Stretch | 6.12.115-1 | 6.12.115-stackx-stretch-1 |
| Debian 10 Buster | 6.12.115-1 | 6.12.115-stackx-buster-1 |
| Debian 11 Bullseye | 6.12.115-1 | 6.12.115-stackx-bullseye-1 |
Chaque distribution possède son propre lot de quatre paquets : l’image et les modules, les en-têtes avec les outils nécessaires aux modules externes, un métapaquet et une chaîne de compilation GCC 12.4 dédiée.
GCC est installé sous /opt/stackx-toolchain. Le compilateur global et ses alternatives restent inchangés. Les paquets ne remplacent ni la glibc de la distribution, ni linux-libc-dev, ni les en-têtes de /usr/include.
Le format des fichiers est également adapté au système cible. Stretch conserve des modules .ko non compressés pour ses outils natifs. Buster et Bullseye utilisent XZ. Les images utilisent gzip et l’initramfs est généré par les outils Debian lors de l’installation.
Les configurations ont été adaptées aux distributions et aux protections retenues pour les serveurs. Une adaptation du durcissement Debian de perf accompagne les sources. Certaines options et certains pilotes anciens ne sont plus disponibles à l’identique dans Linux 6.12. Les notices de chaque canal exposent ces différences au lieu de prétendre à une équivalence matérielle universelle.
Ce qui a été vérifié
Les noyaux natifs corrigés ont été construits et testés dans leurs distributions respectives. Les vérifications couvrent la présence du correctif dans le binaire, l’installation à côté du noyau précédent, le démarrage, les échanges TCP IPv4 et IPv6, les options IPv4 concernées, ainsi que la compilation, le chargement et le retrait d’un module externe.
Pour Linux 6.12, les essais isolés comprennent le cycle ancien noyau, candidat, ancien noyau, puis candidat. Ils couvrent notamment :
- le réseau et le filtrage ;
- ext4 et AppArmor ;
- les modules externes et DKMS ;
- les contrôles
perfretenus ; - les cgroups v1/hybrides pour Stretch et Buster, et les cgroups v2 pour Bullseye.
Les premiers déploiements en production ont été réalisés sur plusieurs dizaines de machines, sous Bullseye, Stretch et Buster. Les noyaux ont également été testés sur les machines virtuelles Proxmox de ScalarCloud, sur le Public Cloud OVHcloud, sur des VPS et sur des serveurs dédiés OVHcloud en Europe et aux États-Unis.
Ce retour terrain complète les essais isolés, mais ne les transforme pas en qualification universelle. La batterie de tests complète de Debian n’a pas été exécutée : nous nous en sommes tenus à nos cas d’usage, aux matériels concernés et aux fonctions nécessaires à nos environnements.
Les dépôts et leurs scripts d’ajout ont aussi été éprouvés avec les versions natives d’APT des trois distributions : ajout, réexécution, refus d’une mauvaise clé ou d’un index corrompu, téléchargement vérifié et réinstallation des versions exactes.
Installation, redémarrage et retour au noyau précédent
Les scripts publics ajoutent uniquement la source APT et son trousseau, puis contrôlent la clé et l’index signé. Ils n’installent aucun noyau et ne redémarrent pas la machine. La simulation, l’installation et le redémarrage restent des décisions explicites de l’administrateur.
Avant un essai, il faut conserver le noyau précédent et son initramfs, prévoir une console de secours et examiner les opérations proposées par APT. Il ne faut pas lancer autoremove dans cette procédure.
Après installation, le choix effectif dans GRUB doit être vérifié. Un noyau plus récent peut modifier l’ordre du menu, tandis qu’un ancien choix persistant peut au contraire rester prioritaire. Après le redémarrage décidé par l’opérateur :
uname -rLe résultat doit correspondre au noyau attendu dans les tableaux ci-dessus. Le réseau, le stockage, le filtrage, les applications et les modules externes doivent ensuite être contrôlés sur la machine concernée. Pour revenir en arrière, il suffit de sélectionner le noyau précédent conservé dans GRUB. Aucun noyau ne doit être effacé pour réaliser cet aller-retour.
Signatures, sources et limites
Les dépôts APT sont signés avec la clé suivante :
AF97 ED98 AACE 4CE1 29A0 3B6E 2C97 36B5 93BA BF7FLa signature APT authentifie les index et les paquets qu’ils référencent. Les images des noyaux ne sont pas signées pour Secure Boot. Une machine qui impose cette vérification au démarrage nécessite une procédure distincte de signature et de confiance.
Les lots natifs fournissent les sources Debian exactes modifiées. Les lots 6.12 fournissent l’archive Linux officielle, la configuration finale, le correctif perf, les sources de la chaîne de compilation et une recette de reconstruction. Cette recette documente la construction, mais aucune reproductibilité binaire bit à bit n’est revendiquée.
Ces essais portent sur des scénarios et des environnements définis. Ils ne qualifient pas tous les matériels, firmwares, systèmes de fichiers, pilotes propriétaires ou modules tiers. Le premier essai sur le matériel et les applications concernés reste indispensable.
Ressources
Noyaux natifs corrigés :
- Debian 9 Stretch, Linux 4.9 corrigé
- Debian 10 Buster, Linux 4.19 corrigé
- Debian 11 Bullseye, Linux 5.10 corrigé
Linux 6.12 LTS :
- Linux 6.12 pour Debian 9 Stretch
- Linux 6.12 pour Debian 10 Buster
- Linux 6.12 pour Debian 11 Bullseye
- StackX PHP pour Debian 9, 10 et 11
Les licences et les attributions des composants sont conservées.
—
Christophe Casalegno (retrouvez tous mes réseaux sur : all.bo)