Ce qui se passe
Des attaquants exploitent l'application optionnelle Collabora Online -
Built-in CODE Server (paquet richdocumentscode) pour poser des web shells sur
des serveurs Nextcloud. Trois administrateurs l'ont signalé sur GitHub, avec une
première attaque journalisée le 10 septembre 2026.
Collabora a corrigé la faille dans la 26.4.303 le 11 septembre, puis publié l'avis GHSA-g3vx-3m76-fghh (CVE-2026-110447) le 14 octobre : un mois de silence côté sécurité. L'avis est net : désactiver l'application ne suffit pas, il faut la mettre à jour ou la supprimer.
Le mécanisme
L'application télécharge une copie de Collabora Online Development Edition (CODE) et la fait tourner sur le serveur Nextcloud lui-même, pour éditer des documents sans serveur Collabora séparé. Sa fiche dans le catalogue la destine aux tests locaux et à un usage non productif.
Son script proxy.php démarre ce serveur local dès qu'une requête arrive et que
rien n'écoute. Jusqu'à la 26.4.302, il insérait du texte de la requête, chemin
compris, dans une commande bash entre guillemets doubles, où le shell exécute
encore tout ce qui s'écrit $(...). Un chemin piégé lançait donc une commande
avec les droits du compte du serveur web, sans authentification.
Deux précisions qui expliquent pourquoi la faille a été si discrète :
- la commande n'est construite que lorsqu'il faut démarrer le serveur CODE : l'attaque ne marche que pendant un redémarrage de conteneur, une mise à jour ou après un plantage ;
proxy.phpest un fichier PHP que le serveur web exécute directement depuis le dossier de l'app, sans charger le code de Nextcloud. Le désactiver dans l'interface ne change donc rien.
Ce que les attaquants ont fait
Les journaux du premier administrateur montrent des requêtes à 19 h 51 le
10 septembre et à 9 h 56 le 11 (UTC+2), d'une même adresse, vers
proxy.php?status avec une commande dans le chemin. Elle déposait un web shell
PHP d'une ligne dans le dossier de l'app et tentait d'envoyer la sortie de
uname -a vers une adresse webhook.site.
Sur un serveur, l'attaquant a ensuite cherché des fichiers *.kdbx,
wallet.dat, keystore.json et des noms comme bitwarden, 1password,
.bitcoin, .electrum, .monero, .ethereum. Aucune commande d'archivage ou
d'envoi de fichier n'est visible, mais tout ce que le compte web peut lire doit
être tenu pour exposé. Deux autres administrateurs ont vu la même chose, repérée
par le contrôle d'intégrité de Nextcloud ou par des courriels de tentatives
sudo échouées. Aucun accès root n'est rapporté.
Que faire, dans l'ordre
- Mettre à jour
richdocumentscodeen 26.4.303 ou plus, ou le supprimer. - Sur Nextcloud 29 ou antérieur, qui ne peut pas installer la 26.4.303 (le correctif exige Nextcloud 30+), migrer Nextcloud ou supprimer l'app.
- Même à jour : chercher
shx*.phpà partir deapps/richdocumentscodeet les supprimer, puis relire les journaux d'accès depuis le 10 septembre : requêtesproxy.php?statuscontenant%2e%2e,$(ou${IFS}, et tentativessudodu compte web. - Se méfier de la 26.4.402 (24 septembre) : plusieurs administrateurs rapportent qu'elle ne démarre pas ou n'ouvre pas les documents, et sont revenus à la 26.4.303, la version que l'avis nomme comme correctif. Aucune version plus récente au 14 octobre.
Une installation qui n'utilise que l'app Nextcloud Office (richdocuments) avec
un serveur Collabora séparé — Docker, paquet Linux ou hébergeur — n'est pas
concernée.
Indicateurs
- Fichiers :
shrf4645.php,shxa35d0.php,shx5cf91.php,shxd33ce.php,shxf4645.php(dansapps/richdocumentscode/),shx13a86.php,shx56367.php - SHA-256 du web shell d'une ligne :
4b9fbd0663fbfd6028fc216ed18e0d6ef3ae498a7fdc97083e4b0ce3cec40562 - Chemin :
/apps/richdocumentscode/proxy.php?status - IP :
139.28[.]18[.]122(attaques des 10 et 11 septembre),89.38[.]98[.]50(tentative du 14 septembre contre un serveur corrigé) - Domaine :
webhook[.]site, avec les identifiants de rappel45060ed4-de0b-4119-8f0d-2a2776bbd413et774cf5e1-b5a4-4174-a1ad-0241861029a2 - Marqueurs dans le chemin :
%2e%2e,$(,${IFS},base64 -dredirigé verssh
Un correctif sans notice
Le correctif tient en quatre lignes : la commande est transmise à bash comme un seul argument échappé, et non plus comme une chaîne entre guillemets. Écrit le 20 août par Caolán McNamara, intégré le 9 septembre, publié le 11 avec des notes qui ne parlent que de la version de CODE embarquée : la première attaque est du 10, et l'alerte publique est venue d'un utilisateur du forum Nextcloud le 3 octobre, onze jours avant l'avis. On ignore combien de serveurs ont été touchés ; le mainteneur précise que seul ce mode « CODE intégré », le plus rare, est concerné.
Source : The Hacker News, 14 octobre 2026, qui renvoie à l'avis Collabora GHSA-g3vx-3m76-fghh.