Une CVE (Common Vulnerabilities and Exposures) est un identifiant public attribué à une faille de sécurité connue, par exemple CVE-2021-4034. Une distribution assemble un grand nombre de logiciels venus d'autres projets : chaque CVE publiée sur l'un d'eux peut la concerner. GLF OS surveille donc ces failles automatiquement, chaque nuit, avec l'outil vulnix.

Pourquoi c'est particulier sous NixOS

GLF OS repose sur NixOS : chaque paquet y est rangé dans son propre dossier du store Nix (/nix/store), et le système est un ensemble de ces paquets. On appelle closure l'ensemble des paquets dont dépend un élément ; la closure d'exécution se limite à ce qui sert à le faire fonctionner, sans les outils de construction.

vulnix parcourt cette closure et compare le nom et la version de chaque paquet à la NVD (National Vulnerability Database), la base publique américaine qui recense les CVE. Comme le résume un fichier du dépôt glf-os, « vulnix rapproche NOM + VERSION contre la base NVD : il ne teste rien ». D'où deux conséquences :

Chaque CVE porte enfin un score CVSS (Common Vulnerability Scoring System), une note de gravité sur 10. Le rapport de GLF OS distingue les CVE critiques (9 et plus), hautes (7 et plus), moyennes (4 et plus) et basses (moins de 4).

L'audit de nuit de GLF OS

Quand et sur quoi

L'audit tourne uniquement dans les pipelines planifiés du dépôt glf-os, jamais lors d'un envoi de code ou d'une demande de fusion. D'après l'historique public des pipelines, il passe vers 01:03 UTC (03:03 heure de Paris) sur testing et vers 03:03 UTC (05:03 heure de Paris) sur develop. Aucun audit ne tourne sur main. L'audit attend le job qui construit le système et alimente le cache de GLF : si ce job échoue, l'audit est sauté. Entre le 24 juillet et le 13 septembre 2026, les audits réussis ont duré de 7 à 22 minutes.

Le système analysé n'est pas votre ordinateur, mais la configuration glf-installer, celle de l'ISO live d'installation (GNOME, modules GLF OS et installeur), sans KDE Plasma ni le catalogue d'applications optionnelles. Seule la closure d'exécution est examinée, à la révision de nixpkgs (le dépôt de paquets de NixOS) figée dans le fichier flake.lock du dépôt : le 13 septembre 2026, une révision de NixOS 26.05 du 6 septembre.

Les outils et les étapes

L'analyse est confiée à vulnxscan (projet sbomnix, version 1.7.6), qui appelle vulnix (version 1.12.4) et interroge repology, un site qui recense les versions des paquets dans de nombreuses distributions, pour savoir si une version corrigée existe : c'est le « triage ». Le rapport ne retient que les trouvailles de vulnix.

# Étape
1 Construction du système glf-installer, ou récupération depuis le cache Attic de GLF
2 vulnxscan --triage : analyse, mise à l'écart des CVE dont un correctif porte l'identifiant, interrogation de repology
3 Pour chaque paquet signalé, version proposée par la dernière révision de nixos-26.05
4 Rapport (Markdown et HTML), pastille et recommandation d'épinglage
5 Publication des pastilles sur la branche badges, archivage des rapports (30 jours)

Trier ce qui compte

Les cinq niveaux du rapport

Le rapport sépare la gravité (le score CVSS) de l'actionnabilité (peut-on corriger ?). Pour la seconde, il croise le verdict de repology, qui se réfère à nixpkgs unstable, avec la version proposée par le dernier nixos-26.05, le canal de GLF OS.

Niveau Sens
À corriger Correctif applicable sur le canal 26.05 : il faut avancer l'épinglage, c'est-à-dire la révision de nixpkgs fixée dans flake.lock
Canal supérieur Corrigé seulement dans unstable ou 26.11 : cela demanderait une migration de canal
En attente amont Faille considérée comme réelle, sans correctif dans nixpkgs
À vérifier repology n'a pas su trancher, ou le paquet n'a pas été évalué sur 26.05 : revue manuelle
Non applicable repology confirme que la version n'est pas vulnérable, ou la CVE est acquittée par la liste d'exceptions

Le rapport du 13 septembre 2026 pour develop (identique pour testing) comptait 179 CVE détectées, plus 10 acquittées par la liste d'exceptions : 9 critiques, 92 hautes, 73 moyennes et 5 basses ; 6 à corriger (aucune critique), 34 canal supérieur, 51 en attente amont, 61 à vérifier et 27 non applicables.

La liste d'exceptions

Le fichier ci/vulnix-whitelist.toml du dépôt glf-os recense les alertes examinées à la main et jugées sans objet. Au 14 septembre 2026, il compte 14 entrées couvrant 69 CVE, inchangées depuis le 23 juillet 2026.

Catégorie Entrées CVE
Collisions de noms : la CVE vise un logiciel totalement différent 7 29
Bindings (interfaces vers une bibliothèque C) dont la version n'a rien à voir avec celle de la bibliothèque 3 36
Non applicables démontrés lors du tri des critiques du 23 juillet 2026 3 3
Rapprochement peu fiable, acquittement court (jusqu'au 31 octobre 2026) 1 1

La règle écrite en tête du fichier : « ne jamais acquitter une CVE sans avoir verifie que la description NVD parle bien d'un AUTRE logiciel. En cas de doute, on laisse remonter. » Chaque entrée porte un commentaire qui justifie l'acquittement, par convention plutôt que par contrainte technique. Deux exemples :

Côté correction, l'historique du dépôt montre un levier : avancer l'épinglage de nixpkgs, fait explicitement le 23 juillet 2026 pour corriger 11 critiques remontées par l'audit.

Lire la pastille et le rapport

Une pastille (badge) est une étiquette colorée affichée sur la page d'un dépôt. Celle de l'audit, « CVE develop », affiche par exemple 0 crit a corriger (2026-09-13). Elle est rouge s'il existe au moins une CVE critique au niveau « À corriger », verte sinon, et ne compte rien d'autre : le 13 septembre 2026, elle était verte alors que le rapport contenait 9 critiques (3 « Canal supérieur », 6 « En attente amont ») et 92 hautes.

Important

Une pastille verte ne signifie pas « aucune faille ». Elle signifie qu'aucune CVE critique n'est corrigeable en avançant l'épinglage de nixpkgs sur le canal 26.05.

La seconde pastille recommande ou non d'avancer l'épinglage :

Affichage Couleur Sens
pin 26.05@<commit> : -<nombre> CVE (<date>) bleu avancer vers ce commit corrigerait ce nombre de CVE « À corriger », toutes gravités confondues
pin a jour sur 26.05 vert aucune CVE « À corriger »
canal non evalue gris la comparaison avec 26.05 a échoué

Au 13 septembre 2026, elle affichait pin 26.05@21a67dc4 : -6 CVE (2026-09-13). Aucun automatisme n'applique cette recommandation : c'est une indication pour les mainteneurs.

Où les voir. Les pastilles de develop figurent dans le README du dépôt glf-os sur Framagit, section « Sécurité (CVE) » ; celles de testing sont seulement publiées, par exemple https://framagit.org/gaming-linux-fr/glf-os/glf-os/-/raw/badges/vulnix-testing.json. Les rapports complets sont les artefacts du job audit: vulnix (CVE), conservés 30 jours : ouvrez-le depuis la liste des jobs, ou utilisez https://framagit.org/api/v4/projects/117857/jobs/<id_job>/artifacts/vulnix-rapport.md. Aucune adresse stable ne mène au dernier rapport.

Savoir si l'audit a tourné. La date entre parenthèses de la pastille est celle du dernier audit qui a produit un rapport. L'audit étant non bloquant, un pipeline peut apparaître réussi malgré un audit en échec : le 14 septembre 2026, repology refusait les connexions, aucun rapport n'a été produit et les pastilles sont restées datées du 13 septembre.

Ce que l'audit ne dit pas

Important

L'audit est un outil de visibilité, pas une barrière. Selon la configuration de la CI, « nixpkgs traine en permanence des CVE amont, l'objectif est la visibilite, pas le gate ».

Et de votre côté

Garder le système à jour

La mesure la plus utile reste un système à jour. Par défaut, glf-update s'en charge : il se lance une minute après le démarrage, puis toutes les 12 heures. Voir Mettre à jour son système.

Lancer vulnix sur votre machine

Vous pouvez analyser votre système sans installer vulnix :

nix run nixpkgs#vulnix -- -C --system

--system désigne le système en cours d'utilisation, et -C limite l'analyse à la closure d'exécution, comme le rapport de GLF OS.

Le premier lancement télécharge la base NVD dans ~/.cache/vulnix ; les suivants ne récupèrent que les modifications. Sur une machine de test GLF OS, le 14 septembre 2026, il a pris 7 min 54 s (commande préfixée par nice -n 19), avec un pic de mémoire d'environ 2,0 Gio et un cache de 358 Mio. Un code de sortie 2 signifie simplement que des vulnérabilités ont été trouvées. En cas d'erreur d'encodage, lancez d'abord export LANG=C.UTF-8.

Cet essai a signalé « 72 derivations with active advisories », soit 215 CVE distinctes. Un tel résultat diffère du rapport de GLF OS pour deux raisons :

Note

Une longue liste de CVE ne signifie pas que votre machine est compromise. vulnix ne cherche aucune trace d'intrusion : chaque ligne est une correspondance de nom et de version, qui peut être un faux positif ou une faille déjà corrigée sans changement de version. Pour juger une alerte, lisez sa description NVD et vérifiez la plage de versions visée.

Si vous pensez qu'une faille touche réellement GLF OS, ou si vous repérez un faux positif non documenté, consultez Signaler un problème.

Voir aussi