Une vulnérabilité Copy Fail a été découverte fin avril 2026. Elle concerne beaucoup d’ordinateurs sous linux.
Pour savoir si la vulnérabilité existe sur votre ordinateur : taper les commandes indiquées à la fin de cet article, dans le chapitre sur la vérification.
mettre à jour mon ordinateur linux
J’ai suivi les instructions de cet excellent site.
On peut aussi vérifier ensuite que tout a bien fonctionné :
lsmod | grep algif_aead
Rien ne devrait s’afficher en principe. Si rien ne s’affiche ça signifie que le module vulnérable ne se charge pas. C’est bien ce que l’on veut.
Ultime vérification : Pour Ubuntu 24.04 (Noble Numbat), tu devrais avoir une version égale ou supérieure à la 6.8.0-31 (ou une version spécifique 6.14 si tu es sur un kernel HWE). C’est ce que me dit Gemini le 11 mai.
uname -r
La réponse est « 6.17.0-23-generic ». Tout va bien donc.
Une image explicative de la faille
Image créée par Gemini
L’image est conçue comme une infographie technique simplifiée, divisée en deux parties distinctes pour expliquer le fonctionnement et les risques de la vulnérabilité CVE-2026-31431 :
La zone « VULNERABILITY » (à gauche) : Un utilisateur avec des privilèges normaux lance une commande de copie de fichier. Cette action, normalement anodine, déclenche une erreur dans le noyau Linux. Cette erreur est symbolisée par des fragments de code brisés et une « fuite » d’informations qui contourne les sécurités habituelles.
La zone « RISK » (à droite) : Un attaquant exploite cette corruption de mémoire pour contourner les protections. Un pictogramme montre un cadenas qui se brise, menant à une icône de l’utilisateur « Root » (super-utilisateur) symbolisé par une clé et une couronne, indiquant une prise de contrôle totale du système.
L’interface Nginx : En haut de l’image, une interface graphique simplifiée de Nginx agit comme une barrière externe. Elle souligne le point que nous avons abordé : le danger survient lorsqu’une application exposée sur le web (via Nginx) est piratée et sert de point d’entrée pour lancer l’exploit « Copy Fail ».
J’ai expliqué dans des articles précédents comment j’ai installé des logiciels sous forme de containers Docker sur mon ordinateur Linux. Je veux maintenant pouvoir les sauvegarder automatiquement dans le cloud. Pour cela, il faut d’abord que je sache où sont stockés les fichiers essentiels — et surtout que je les regroupe tous au même endroit..
Pourquoi regrouper les données ?
Si on voit les containers comme des maisons, le fichier YAML (docker-compose.yml) est le plan de construction, mais il ne contient pas les habitants ni les meubles. Pour chaque container, il faut pouvoir localiser :
Le docker-compose.yml : c’est le plan de l’architecte. Si la maison brûle, le plan permet de reconstruire exactement la même structure.
Les volumes (les dossiers sur le Beelink) : ce sont tes meubles, tes photos et tes souvenirs. Si tu reconstruis la maison avec le plan mais que tu n’as plus tes meubles, la maison est vide.
Pour Stirling PDF ce n’est pas très grave de perdre les volumes car rien n’y est stocké de façon critique. Mais pour Portainer, ce serait une catastrophe : le fichier YAML réinstallera le logiciel, mais tu perdras toutes tes stacks, l’historique de tes containers et tes réglages utilisateurs.
L’objectif est donc de tout regrouper dans /home/USER/docker/nom-du-logiciel/ : le docker-compose.yml ET les dossiers de données, pour pouvoir tout sauvegarder d’un seul coup.
Pour toute nouvelle installation, suis la checklist PDF qui résume les 4 étapes à suivre avant de cliquer sur Deploy. Cet article explique comment corriger des installations existantes qui n’ont pas suivi cette discipline dès le départ.
Comment contraindre Docker à utiliser un répertoire spécifique ?
Par défaut, quand on utilise des « named volumes » dans le YAML, Docker stocke les données dans un dossier système caché et protégé – invisible depuis Portainer et inaccessible facilement. Il faut remplacer ces named volumes par des chemins absolus pointant vers ton dossier personnel.
La procédure est différente selon que le container est nouveau ou qu’il tourne déjà.
Cas 1 – Nouveau container (pas encore installé)
Étape 1 – Identifier les volumes dans la documentation
Va sur la page Docker Hub du logiciel et cherche la section « Volumes » ou « Mounts ». Elle liste les chemins internes du container – ce sont eux que tu vas « brancher » sur ton Beelink. Note-les avant de créer la stack.
Tu Tu crées autant de dossiers que de volumes nécessaires. Et tu choisis librement leurs noms. Ce qui compte c’est que le YAML pointe ensuite vers ces mêmes dossiers.
Étape 3 – Écrire le YAML directement avec les chemins absolus
Dans l’éditeur de Stack Portainer, écris les volumes avec les chemins complets dès le départ :
Arrête le container depuis Portainer (Stop), puis copie les données :
# Le /. à la fin copie le contenu du dossier, pas le dossier lui-même
sudo cp -r /var/lib/docker/volumes/stirling-pdf_stirling_trainingData/_data/. /home/USER/docker/stirling-pdf/trainingData/
sudo cp -r /var/lib/docker/volumes/stirling-pdf_stirling_extraConfigs/_data/. /home/USER/docker/stirling-pdf/configs/
sudo cp -r /var/lib/docker/volumes/stirling-pdf_stirling_customFiles/_data/. /home/USER/docker/stirling-pdf/customFiles/
sudo cp -r /var/lib/docker/volumes/stirling-pdf_stirling_logs/_data/. /home/USER/docker/stirling-pdf/logs/
# Redonne les droits à ton utilisateur
sudo chown -R USER:USER /home/USER/docker/stirling-pdf
Étape 4 – Modifier le YAML dans Portainer
Dans l’éditeur de Stack, remplace les named volumes par les chemins absolus :
Supprime la section volumes: en bas du fichier (celle qui listait les noms). Puis clique sur Update the stack.
Pourquoi le chemin complet plutôt que ./ ? Portainer stocke ses fichiers de manière un peu invisible. En écrivant le chemin entier, tu es certain à 100 % de l’endroit où les données atterrissent sur le disque – indispensable pour tes futures sauvegardes.
Cas particulier – Nginx Proxy Manager et les certificats Let’s Encrypt
NPM est indispensable à relocaliser car c’est là que se trouvent tes certificats Let’s Encrypt et toute ta configuration de proxy.
Sa structure de dossiers est la suivante :
nginx-proxy-manager/
├── data/ - base de données, logs, configuration nginx
└── letsencrypt/ - certificats SSL
├── archive/ - les vrais fichiers .pem
├── live/ - liens symboliques vers archive/
└── renewal/ - configuration de renouvellement
Point d’attention important : le dossier letsencrypt/live/ ne contient pas de vrais fichiers mais des liens symboliques (symlinks) qui pointent vers les fichiers dans letsencrypt/archive/. Les deux dossiers doivent être présents dans ta sauvegarde pour que la restauration fonctionne. L’outil de sauvegarde Rclone doit être configuré avec l’option --links pour les copier correctement – c’est détaillé dans l’article sur la sauvegarde automatique.
La procédure de relocalisation est identique au Cas 2, avec ces volumes dans le YAML :
Une fois le container configuré et fonctionnel, crée immédiatement un fichier docker-compose.yml dans son dossier. Ce fichier est indispensable pour pouvoir reconstruire le container depuis zéro en cas de problème – et pour que la sauvegarde automatique soit complète.
Le chown est important : il permet au script de sauvegarde de mettre à jour ce fichier automatiquement à chaque sauvegarde, si tu modifies la stack dans Portainer.
Le script de sauvegarde vérifie à chaque lancement que ce fichier existe dans chaque dossier. Si ce n’est pas le cas, il écrit une ligne ATTENTION dans le log – un rappel quotidien jusqu’à ce que ce soit fait.
Cas particulier – Portainer
Portainer ne s’installe pas via une stack mais via une commande docker run directe – il n’apparaît donc pas dans la liste des stacks de Portainer et son YAML ne peut pas être exporté automatiquement. Crée son fichier manuellement :
Note sur les droits des données Portainer : contrairement aux autres containers, les fichiers dans portainer/data/ doivent appartenir à root (Portainer les crée et les gère en root). Ne fais pas de chown USER sur ce sous-dossier – uniquement sur le docker-compose.yml.
Supprimer les volumes inutilisés
Une fois que tu as vérifié que tout fonctionne avec les nouveaux chemins, supprime les anciens named volumes pour libérer de l’espace disque :
sudo docker volume prune
Cette commande supprime tous les volumes qui ne sont attachés à aucun container (allumé ou éteint). Elle ne touche pas à ce qui est dans ton dossier personnel ni aux volumes actifs.
En résumé, ton nouveau réflexe
« Un nouveau container ? Un nouveau dossier dans /home/USER/docker/ et un chemin complet dans le YAML – plus un docker-compose.yml créé immédiatement. »
C’est cette discipline qui fera que, dans 6 mois, quand tu auras 10 logiciels différents, tu pourras tout sauvegarder sur ton Google Drive d’une seule traite, car tout sera sagement rangé au même endroit.
Dans le prochain article de cette série, nous verrons comment configurer Rclone pour sauvegarder automatiquement tout le dossier /home/USER/docker/ vers Google Drive.
J’ai décrit dans la série « Mon ordinateur Ubuntu » les étapes d’installation d’un logiciel libre de gestion des pdf. Je n’ai pas vraiment parlé du logiciel lui-même car le sujet c’était plutôt l’installation locale dans un container Docker, et accessible depuis l’extérieur. Mais je trouve utile de décrire rapidement ce que je peux faire avec ce nouveau logiciel à ma disposition.
Stirling PDF a d’énormes qualités : il a une multitude de fonctionnalités (cf la copie d’écran de ses outils ci-dessous), il est gratuit, il peut être installé pour plusieurs utilisateurs (avec une limite de 5 cependant).
Stirling PSF est disponible en version « desktop », pas seulement en version serveur hébergé. On peut le télécharger sur le site de Stirling : https://www.stirling.com/download
mais quelques limites cependant
J’utilise actuellement une version payante (wondershare pdf), dont le coût me paraît excessif, tout comme toutes les autres solutions un peu complètes que j’avais trouvé jusqu’à présent.
Je pense que Stirling PDF est parfait pour toutes les manipulations sophistiquées de pdf (fusion, séparation, modifications, compression, conversion, etc). Mais malheureusement il laisse de côté deux fonctions bien utiles : l’impression « pdf » et la gestion du scanner pour générer un pdf.
impression de PDF
Tu as déjà dans ta liste d’imprimantes : « Microsoft Print to PDF ».
Elle fonctionne exactement comme une vraie imprimante : tu fais « Imprimer » depuis n’importe quel logiciel (Word, une page web, un mail), tu choisis cette imprimante, et cela te crée un fichier PDF sur ton bureau.
Pas besoin d’un logiciel pour ça !
utiliser le scanner
lire un pdf
j’utiliserai Edge, qui est intégré à mon ordinateur déjà.
Manipulations Complexes
Là j’utiliserai Stirling PDF, pour l’OCR (reconnaissance de caractères), fusionner des fichiers, protéger par mot de passe, ou convertir un Word.
Améliorations possibles de mes utilisations de logiciel PDF
Il y a une option intéressante dans Stirling pour utiliser son téléphone pour générer des PDF : le téléphone peut également servir de scanner mobile. Voir les explications (en anglais) ici : https://docs.stirlingpdf.com/Functionality/Mobile-Scanner/. Je configurerai prochainement Stirling pour ça.
Avant de suivre ce tutoriel, je te recommande vivement de lire l’article Docker (et Portainer) – regrouper les données qui explique pourquoi il est important de bien organiser les fichiers de tes containers dès le départ. Tu peux aussi télécharger la checklist PDF et la garder sous la main pendant l’installation.
Note pour les lecteurs : le YAML utilisé ici crée des « named volumes » gérés par Docker (et Portainer) dans un dossier système caché. Si tu veux pouvoir sauvegarder facilement tes données, il faut les relocaliser dans /home/USER/docker/stirling-pdf/. La procédure complète est expliquée dans l’article Docker (et Portainer) — regrouper les données, section « Pour Stirling PDF ».
Cette action a été réalisée après avoir installé Docker et Portainer sur mon PC ubunto (cf l’article Docker et Portainer sur ubuntu). Les actions ont été réalisées à partir de Portainer, dans un navigateur web de mon ordinateur Windows. Mais stirling PDF est installé dans un container Docker sur l’ordinateur Linux.
Maintenant que tu es dans Portainer, on va utiliser ce qu’on appelle un « Stack ». C’est une façon élégante de dire « un fichier de configuration qui installe tout d’un coup ».
Installer Stirling PDF à partir de Portainer
Dans Portainer, clique sur ton environnement « local », puis va dans l’onglet « Stacks » à gauche.
Clique sur le bouton « + Add stack ».
Donne-lui un nom : stirling-pdf.
Dans la zone « Web editor », copie et colle ce bloc de code (c’est le fameux Docker Compose, en YAML) :
Le code contient les instructions pour que Stirling PDF puisse faire de la reconnaissance de caractères (OCR) en anglais et en français. Il prévoit aussi qu’il redémarre tout seul si l’ordinateur Linux redémarre et règle le fuseau horaire sur Europe/Paris.
Le code prévoit aussi que DOCKER_ENABLE_SECURITY=true. Cela obligera toute personne qui accèderai à l’application à entrer un nom d’utilisateur et un mot de passe. Je le prévois tout de suite car on verra plus tard comment je peux accéder à mon logiciel Stirling PDF de partout.
Descends tout en bas et clique sur « Deploy the stack ». Docker va télécharger l’image (cela peut prendre 1 ou 2 minutes selon ta connexion car Stirling PDF est un outil complet).
Utiliser Stirling PDF
Une fois que le statut passe à « Running » (vert) dans Portainer :
Retourne sur ton navigateur Windows.
Ouvre un nouvel onglet et tape : http://[IP_DU_BEELINK]:8080 (ici c’est du http classique, sans le « s »).
Victoire ! Tu devrais voir l’interface magnifique de Stirling PDF.
Identifiants de connexion par défaut
Nom d’utilisateur: admin
Mot de passe: stirling
La page http://192.168.86.152:8080/ me propose de télécharger pour windows. Ne pas le faire car ca crée un programme windows standalone.
Par contre je peux installer une PWA (Progressive Web App) lorsque j’aurai un certificat permettant l’affichage https de stirling PDF.
J’ai un ordinateur Linux et un ordinateur windows sur le même réseau. J’ai voulu disposer d’un répertoire commun dans lequel je peux échanger simplement des fichiers. Pour cela j’utilise SAMBA dans l’ordinateur Linux. SAMBA c’est l’implémentation du protocole SMB (Server Message Block), le langage standard créé par Microsoft pour le partage de fichiers et d’imprimantes. Ainsi on peut partager des fichiers et des répertoires entre deux systèmes d’exploitation distincts.
Le principe
Un ou plusieurs répertoires du disque dur de mon ordinateur Linux devient un dossier partagé sur ton réseau. Le répertoire est accessible normalement sur l’ordinateur Linux ET sur l’ordinateur Windows (11).
1. Installer Samba sur Ubuntu
Sur l’ordinateur Ubuntu, ouvre un Terminal (raccourci Ctrl + Alt + T) et saisie les commandes suivantes :
Tu peux partager un dossier existant ou en créer un nouveau, par exemple appelé « Partage ».
Crée le dossier : mkdir ~/Partage
Donne-lui les droits pour que tu puisses y copier des fichiers sans blocage : chmod 777 ~/Partage
3. Configurer le partage
On va modifier le fichier de configuration de Samba :
Ouvre le fichier :
sudo nano /etc/samba/smb.conf
Descends tout en bas du fichier avec les flèches de ton clavier et ajoute ceci :
[Beelink-Share]
path = /home/TON_NOM_UTILISATEUR/Partage
browseable = yes
read only = no
guest ok = no
Attention : Remplace TON_NOM_UTILISATEUR par ton vrai nom de session Ubuntu.
Sauvegarde : Ctrl + O, puis Entrée, puis quitte avec Ctrl + X.
Redémarre le service :
sudo systemctl restart smbd
4. Définir un mot de passe Samba
Pour que Windows accepte de se connecter, Samba a besoin de son propre mot de passe (il peut être le même que ta session Ubuntu, mais il doit être enregistré spécifiquement). Tape :
sudo smbpasswd -a TON_NOM_UTILISATEUR
Saisis le mot de passe deux fois. Attention, rien ne s’affiche à l’écran quand tu tapes, c’est normal.
5. Accéder au dossier depuis Windows 11
Comment trouver l’adresse IP de ton Beelink ?
Sur l’ordinateur Linux, dans le terminal, tape : hostname -I. C’est généralement une suite de chiffres comme 192.168.x.x.
Maintenant, retourne sur ton PC principal Windows 11 :
Ouvre l’explorateur de fichiers.
Dans la barre d’adresse en haut, tape : \\ADRESSE_IP_DU_LINUX (ex: \\192.168.1.50).
Windows va te demander un nom d’utilisateur et le mot de passe que tu viens de créer.
Astuce : Fais un clic droit sur le dossier qui apparaît et choisis « Connecter un lecteur réseau ». Il apparaîtra désormais comme un disque dur classique (Z:, Y:, etc.) dans ton poste de travail.
Et voilà !
Ton pont entre Windows et Ubuntu est prêt. Désormais, tout ce que tu glisses dans ce dossier sur Windows sera physiquement sur l’ordinateur Ubuntu et vice versa. Me voici prête pour des tâches plus complexes.
Commentaires récents