Sources : avis de sécurité d'UnrealIRCd relayé sur oss-security (Bram Matthys, 8 novembre 2026) ; annonce de UnrealIRCd 6.2.7.1 et du hot-patch (forum officiel, 7 novembre 2026) ; catalogue KEV de la CISA ; bogue Red Hat 2568818.
Le 7 novembre 2026, Bram Matthys, alias Syzop, mainteneur d'UnrealIRCd, serveur IRC (ircd) open source qui se présente comme le plus déployé au monde, a publié la version 6.2.7.1 et un hot-patch pour toute la branche 6. Ils corrigent neuf problèmes de sécurité, dont un critique : CVE-2026-114713. Le module labeled-response n'échappe pas le tag IRCv3 label quand il le renvoie dans ses réponses. N'importe quel utilisateur connecté peut donc glisser ses propres commandes dans le trafic entre serveurs liés, et elles s'exécutent avec l'autorité d'un serveur ou d'un IRCOp : KILL, GLINE et bien d'autres actions réservées aux opérateurs. L'éditeur parle du problème « le plus critique trouvé dans UnrealIRCd depuis 15 ans ». La fiche CVE lui attribue un score CVSS 3.1 de 8,6.
L'avis initial, relayé sur la liste oss-security le 8 novembre, ne signalait aucune exploitation. Le même jour, Red Hat a noté que l'amont rapportait des tentatives d'exploitation, et la CISA a ajouté la faille à son catalogue KEV des vulnérabilités exploitées le 13 novembre. Cette actualité s'adresse à ceux qui administrent un réseau IRC sur un VPS ou un serveur dédié : communauté de jeu, serveur de discussion d'un projet open source, réseau historique. Elle détaille les versions touchées, la façon de vérifier l'état de chaque serveur, puis les étapes dans l'ordre : le SPAMFILTER de contournement, le hot-patch sans redémarrage, la mise à niveau vers 6.2.7.1 et le cas des réseaux restés en UnrealIRCd 5. Si votre ircd tourne comme service au démarrage, gardez sous la main notre guide pour créer un service systemd sous Linux : la mise à niveau se termine par un redémarrage.
Ce qu'il faut retenir
- Faille : CVE-2026-114713, injection de commandes serveur à serveur par le tag
labeldu modulelabeled-response(CWE-140, délimiteurs non neutralisés). CVSS 3.1 : 8,6, sans authentification ni action de la victime. - Condition : d'après la fiche CVE, le réseau doit compter au moins deux serveurs liés. N'importe quel utilisateur connecté peut alors exploiter la faille.
- Versions touchées : UnrealIRCd 6.0.0 à 6.2.7, et la branche 5, en fin de vie depuis le 1er juillet 2023. Les branches 3.2 et 4 n'ont pas été vérifiées.
- Correction : UnrealIRCd 6.2.7.1, ou le hot-patch
bundle-20261107sur les versions 6.0.0 à 6.2.7, sans redémarrage. Les deux corrigent aussi huit autres problèmes (fuites d'adresses IP, plantages). - Exploitation : signalée par l'amont dès le 8 novembre ; faille inscrite au catalogue KEV de la CISA le 13 novembre.
- Paquets : Debian et Ubuntu n'empaquettent pas UnrealIRCd. Fedora et EPEL distribuent encore la 6.1.10, Alpine 3.24 a rétroporté le seul correctif de cette CVE et Alpine edge est en 6.2.7.1.
CVE-2026-114713 : un tag IRCv3 mal échappé qui donne les droits du serveur
IRCv3 est l'ensemble d'extensions modernes du protocole IRC. L'une d'elles, labeled-response, permet à un client de coller un tag label sur une commande : le serveur recopie ce tag dans sa réponse, et le client sait à quelle requête elle correspond. La spécification IRCv3 traite la valeur comme un identifiant opaque choisi par le client, limité à 64 octets. C'est utile aux clients modernes et aux bouncers qui servent plusieurs connexions à la fois.
Le protocole IRC est un protocole texte : chaque message tient sur une ligne, terminée par un retour chariot et un saut de ligne. UnrealIRCd recopiait la valeur du label sans échapper ces caractères. Un utilisateur pouvait donc placer dans son label un saut de ligne suivi d'une commande complète. Quand le serveur relayait la réponse vers un autre serveur du réseau, cette commande arrivait comme une ligne de protocole légitime, émise par le serveur lui-même. L'avis de l'éditeur résume la conséquence : un utilisateur ordinaire peut exécuter des commandes avec l'autorité d'un serveur ou d'un IRCOp, donc déconnecter n'importe qui par KILL, poser des bannissements globaux par GLINE, et bien d'autres choses.
Le vecteur CVSS publié, AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N, traduit ce scénario : attaque à distance, simple, sans privilège ni action de la victime, avec un impact fort sur l'intégrité du réseau, au-delà du seul serveur touché. La fiche CVE situe le défaut dans la routine labeled_response_mtag_is_ok() du fichier src/modules/labeled-response.c. L'éditeur précise que le bogue a été trouvé lors d'un audit interne mené avec l'aide de l'IA, et il en tire un avertissement : un démon réseau qui n'a reçu aucun correctif de sécurité majeur ces derniers mois n'a sans doute pas encore été audité de cette façon, ou l'a été par quelqu'un qui ne l'a pas signalé.
Le pare-feu du serveur ne change rien ici. L'attaque passe par une connexion client normale, sur les ports IRC que vous laissez ouverts à vos utilisateurs, et vise le lien entre vos propres serveurs. Filtrer le port de liaison aux seuls serveurs du réseau, comme le décrit notre guide pour ouvrir les ports d'un serveur Linux avec UFW, reste une bonne pratique, mais ne protège pas contre cette faille.
Chronologie de la faille
| Date | Événement |
|---|---|
| 4 novembre 2026 | Syzop annonce sur le forum une version de sécurité critique pour le samedi 7 novembre et invite à tester le hot-patch à l'avance. |
| 7 novembre 2026, 16 h (heure de Paris) | Publication d'UnrealIRCd 6.2.7.1 et du hot-patch bundle-20261107, qui corrigent neuf problèmes. |
| 8 novembre 2026 | Avis relayé sur oss-security, publication de la fiche CVE-2026-114713. Le bogue Red Hat 2568818 note que l'amont signale des tentatives d'exploitation. Alpine edge passe en 6.2.7.1. |
| 9 novembre 2026 | Alpine 3.24 publie un paquet 6.1.10-r1 qui intègre le correctif de la CVE. Ouverture des bogues de suivi Fedora et EPEL. |
| 13 novembre 2026 | La CISA ajoute CVE-2026-114713 au catalogue KEV, avec une échéance au 16 novembre pour les agences fédérales américaines. |
Versions d'UnrealIRCd touchées et correctif à appliquer
| Version installée | Exposition | Correctif |
|---|---|---|
| 6.2.7.1 | Corrigée | Rien à faire |
| 6.0.0 à 6.2.7 sous Linux ou BSD | Vulnérable | SPAMFILTER, puis hot-patch bundle-20261107 sans redémarrage, ou ./unrealircd upgrade |
| 6.0.0 à 6.2.7 sous Windows | Vulnérable | SPAMFILTER, puis installateur 6.2.7.1 (pas de hot-patch sous Windows) |
| 5.x | Vulnérable, fin de vie depuis le 1er juillet 2023 | blacklist-module "labeled-response"; et redémarrage, puis migration vers la 6 |
| 3.2.x et 4.x | Non vérifiées par l'éditeur | Migration vers la 6.2.7.1 |
La FAQ d'UnrealIRCd donne la 6.2.7.1 comme dernière version stable et annonce la 6.2.8 pour fin novembre ou début décembre 2026. N'attendez pas cette dernière : le correctif est disponible dès maintenant.
Vérifier la version et l'état du correctif sur chaque serveur
La documentation d'UnrealIRCd demande de compiler et de lancer l'ircd sous un utilisateur dédié, jamais en root, et l'installe par défaut dans le dossier ~/unrealircd de cet utilisateur. Toutes les commandes ./unrealircd qui suivent se lancent depuis ce dossier, en SSH sur chaque serveur du réseau. Adaptez le nom du compte, ici unrealircd :
sudo -iu unrealircd
cd ~/unrealircd
./unrealircd module-status | grep labeled-response
Si le hot-patch est actif, la ligne affichée est la suivante :
labeled-response 5.0-hot-patch-bundle-20261107
Sans le suffixe hot-patch-bundle-20261107, le module chargé n'est pas corrigé, sauf si le serveur tourne déjà en 6.2.7.1. Pour connaître la version exacte, la commande /VERSION envoyée depuis un client IRC affiche la version du serveur auquel vous êtes connecté. Depuis IRC, un IRCOp peut aussi lister les modules chargés et chercher labeled-response dans la sortie, sur son serveur puis sur chaque serveur distant :
MODULE -all
MODULE -all serveur-distant.exemple.org
Faites le tour de tous les serveurs liés, hubs compris : un seul serveur vulnérable sur le réseau suffit à laisser passer des commandes injectées.
Étape 1 : poser le SPAMFILTER de contournement en IRCOp
Avant toute autre action, l'avis demande d'ajouter un filtre sur le réseau. Connectez-vous avec un compte IRCOp et envoyez la commande suivante, précédée d'une barre oblique dans la plupart des clients IRC :
SPAMFILTER add -regex T block - Invalid_label ^label=(?![^\r\n;\x20]*\z)
Lecture de la commande : -regex indique une expression régulière, la cible T filtre les tags de message envoyés par les clients, comparés sous la forme nom=valeur, block refuse le message, le tiret laisse la durée par défaut, et Invalid_label est le motif affiché, les soulignés devenant des espaces. L'expression bloque tout label dont la valeur contient un retour chariot, un saut de ligne, un point-virgule ou une espace, c'est-à-dire exactement les caractères qui permettent l'injection.
Un spamfilter est global : posé sur un serveur, il s'applique à tout le réseau. L'avis précise que ce filtre protège tous les serveurs liés contre la faille critique, à condition que tous soient en 6.0.4 ou plus. Il ne règle pas les huit autres problèmes : c'est une protection d'attente, à garder en place jusqu'à ce que le dernier serveur soit corrigé.
Étape 2 : appliquer le hot-patch sans redémarrage
Sur chaque serveur Linux ou BSD en version 6.0.0 à 6.2.7, toujours sous l'utilisateur dédié et depuis ~/unrealircd :
./unrealircd hot-patch bundle-20261107
Le hot-patch est téléchargé, compilé sur place puis chargé à chaud : les utilisateurs restent connectés. Le compilateur utilisé à l'installation doit donc toujours être présent sur la machine. Selon la FAQ d'UnrealIRCd, une application réussie se termine par le message All should be good now. Contrôlez ensuite avec ./unrealircd module-status | grep labeled-response, comme plus haut.
Trois cas d'échec sont décrits dans la FAQ :
- Le patch ne s'applique pas ou ne compile pas : le hot-patch n'est pas utilisable sur ce serveur, passez à la mise à niveau avec redémarrage.
- Le patch a compilé mais le rehash a échoué : le correctif n'est pas encore actif. Lancez un
REHASHen IRCOp, puis vérifiez de nouveau. - « Patch already applied. Nothing to do. » : ce message ne prouve pas que le correctif est chargé. Le serveur peut encore exécuter l'ancien code : seule la sortie de
module-statusfait foi.
Passer en 6.2.7.1 : Windows et hot-patch impossible
Sous Linux, la mise à niveau vers 6.2.7.1 reste la solution durable, et la seule quand le hot-patch échoue. Faites d'abord une copie du dossier d'installation, qui contient la configuration et les bases de données de l'ircd, puis lancez la commande de mise à jour intégrée :
cp -a ~/unrealircd ~/unrealircd-sauvegarde-$(date +%F)
cd ~/unrealircd
./unrealircd upgrade
La commande ne redémarre pas le serveur. Lisez sa sortie, ou son code de retour : 0, mise à jour et test de configuration réussis ; 5, mise à jour faite mais configuration à adapter, ne redémarrez pas avant de l'avoir corrigée ; 1, erreur ; 10, aucune version plus récente. Si tout est bon, redémarrez :
./unrealircd restart
Le redémarrage déconnecte les utilisateurs du serveur concerné : sur un réseau de plusieurs serveurs, faites-le l'un après l'autre. Si l'ircd est piloté par une unité systemd, redémarrez plutôt par systemctl, pour que le service reste suivi. Copiez aussi la sauvegarde hors de la machine, par exemple avec notre guide pour sauvegarder un VPS avec rsync vers un serveur distant.
Sous Windows Server, le hot-patch n'existe pas et ./unrealircd upgrade non plus. Sur un VPS Windows, la procédure est manuelle : téléchargez l'installateur 6.2.7.1 depuis la page Downloads du site d'UnrealIRCd, arrêtez UnrealIRCd, sauvegardez son dossier (par défaut C:\Program Files\UnrealIRCd 6), lancez l'installateur, puis redémarrez UnrealIRCd.
Réseau resté en UnrealIRCd 5 : désactiver labeled-response
UnrealIRCd 5 est en fin de vie depuis le 1er juillet 2023 et ne recevra aucun correctif, alors qu'il est touché par la faille critique. En attendant la migration, l'avis demande d'ajouter cette ligne dans le fichier de configuration de tous les serveurs :
blacklist-module "labeled-response";
La directive blacklist-module empêche le chargement du module, même si une ligne loadmodule le réclame. Pour la branche 5, l'avis insiste : il faut redémarrer les serveurs, un simple rehash ne suffit pas. Le serveur cesse alors de proposer la capacité IRCv3 labeled-response à ses clients. Cette mesure ne couvre que CVE-2026-114713 : les fuites d'adresses IP et les plantages corrigés en 6.2.7.1 remontent, selon l'éditeur, pour plusieurs d'entre eux jusqu'à la branche 3.2. La documentation d'UnrealIRCd consacre une page au passage de la 5 à la 6, qui ne se fait pas avec ./unrealircd upgrade : c'est le moment de la planifier. La fiche CVE propose d'ailleurs la même ligne blacklist-module comme contournement pour tous les serveurs qui ne peuvent pas encore être corrigés.
Debian, Ubuntu, Fedora, EPEL, Alpine : l'état des paquets
Debian et Ubuntu n'empaquettent pas UnrealIRCd : une recherche sur toutes les versions de leurs archives ne renvoie aucun paquet. Sur ces distributions, l'ircd a donc été compilé depuis les sources dans le dossier personnel d'un utilisateur dédié, et les mises à jour automatiques du système ne le touchent pas. Les outils décrits dans notre guide pour automatiser les mises à jour de sécurité sur Ubuntu protègent le système, pas un logiciel installé à la main : la correction passe forcément par le hot-patch ou ./unrealircd upgrade.
Ailleurs, un paquet existe, et il faut le contrôler avant de se croire à jour. État relevé le 13 novembre 2026 :
| Distribution | Paquet unrealircd | État |
|---|---|---|
| Debian (toutes versions) | Aucun | Installation depuis les sources : hot-patch ou mise à niveau |
| Ubuntu (toutes versions) | Aucun | Installation depuis les sources : hot-patch ou mise à niveau |
| Fedora 43, 44, 45 et Rawhide | 6.1.10 | Vulnérable, bogue de suivi ouvert sans version corrigée |
| EPEL 8, 9 et 10 | 6.1.10 | Vulnérable, bogue de suivi ouvert sans version corrigée |
| Alpine edge | 6.2.7.1-r0 | Corrigé (paquet du 8 novembre) |
| Alpine 3.24 | 6.1.10-r1 | Correctif de CVE-2026-114713 rétroporté (paquet du 9 novembre), sans les huit autres corrections |
| Alpine 3.22 et 3.23 | 6.1.10-r0 | Vulnérable, aucun paquet corrigé |
Sur Fedora, AlmaLinux ou Rocky Linux avec EPEL, la version seule ne dit rien d'un éventuel rétroportage : cherchez la CVE dans le journal du paquet installé. Aucune sortie signifie que le correctif n'est pas là.
rpm -q unrealircd
rpm -q --changelog unrealircd | grep CVE-2026-114713
Sur Alpine, relevez la version installée, puis mettez à jour depuis le dépôt community :
apk info -v | grep unrealircd
apk update && apk upgrade unrealircd
Les commandes ./unrealircd hot-patch et ./unrealircd upgrade de l'avis visent une installation compilée depuis les sources. Avec un paquet de distribution, la correction dépend de son mainteneur. Tant qu'elle n'est pas publiée, posez le SPAMFILTER si tout le réseau est en 6.0.4 ou plus, ou ajoutez blacklist-module "labeled-response"; dans la configuration puis redémarrez le service. Si vous choisissez la distribution d'un nouveau serveur IRC, notre comparatif quelle distribution Linux pour un VPS aide à trancher.
Les neuf problèmes corrigés par UnrealIRCd 6.2.7.1
Seule la faille critique a reçu un identifiant CVE dans l'avis. Les huit autres justifient à elles seules le hot-patch ou la mise à niveau, même sur un serveur isolé.
| N° | Problème corrigé | Conséquence pour l'administrateur |
|---|---|---|
| 1 | CVE-2026-114713 : commandes exécutées avec l'autorité d'un serveur ou d'un IRCOp | KILL, GLINE et autres actions d'opérateur lancées par n'importe quel utilisateur |
| 2 | Un utilisateur peut révéler l'adresse IP masquée (cloak) d'un autre | Fuite d'adresse IP, exposition des membres au déni de service |
| 3 | Une seconde fuite d'adresse IP | Même risque pour la vie privée des utilisateurs |
| 4 | La revérification des listes noires peut bloquer le serveur | Serveur figé |
| 5 | Plantage sur un CHGIDENT envoyé par les services, déclenchable par un utilisateur | Serveur arrêté, utilisateurs déconnectés |
| 6 | Erreur de comptage qui renvoie « This server is full » à chaque nouvelle connexion | Plus aucune connexion jusqu'au redémarrage |
| 7 | Les services ne peuvent poser qu'au plus deux fois set::maxbans bannissements | Limite imposée aux services |
| 8 | Possible inondation par renégociations TLS | Charge excessive sur le serveur |
| 9 | Possible plantage dans whowasdb | Serveur arrêté |
Après la correction : chercher les traces d'une exploitation
La faille permettait d'agir au nom du serveur : une attaque peut avoir laissé des traces durables sur le réseau. Une fois tous les serveurs corrigés, contrôlez au minimum les points suivants :
- Les bannissements globaux. Listez les G-lines actives depuis un compte IRCOp (la commande
/STATSsans paramètre affiche les catégories disponibles), et retirez celles que votre équipe n'a pas posées, avec le masque précédé d'un tiret :/GLINE -utilisateur@hote. - Les déconnexions forcées. Relisez les journaux de l'ircd, en remontant au moins jusqu'au 7 novembre, et cherchez des KILL ou des bannissements qu'aucun opérateur n'a lancés.
- Les accès au système. L'avis ne décrit pas de prise de contrôle de la machine elle-même, mais un serveur exposé mérite un contrôle des connexions SSH et des comptes ; notre guide pour sécuriser SSH sur un VPS Linux rappelle les réglages de base.
Pour les agences fédérales américaines, la CISA exige en plus un tri forensique au titre de sa directive BOD 26-04. Hors de ce cadre, c'est une bonne indication du sérieux accordé à la faille.
Les termes à connaître
| Terme | Définition |
|---|---|
| UnrealIRCd | Serveur IRC (ircd) open source, sous licence GPL, qui fait tourner de nombreux réseaux de discussion. |
| IRCOp | Opérateur IRC : compte doté de droits d'administration sur un serveur ou tout le réseau. |
| KILL | Commande d'opérateur qui déconnecte de force un utilisateur. |
| GLINE | Bannissement global, appliqué à tout le réseau, d'un masque utilisateur@hôte. |
| Serveurs liés | Serveurs d'un même réseau IRC reliés entre eux, qui se transmettent les messages par un protocole serveur à serveur. |
| IRCv3 | Ensemble d'extensions modernes du protocole IRC, négociées par capacités entre client et serveur. |
| labeled-response | Capacité IRCv3 qui fait recopier par le serveur le tag label d'une commande dans sa réponse. |
| Tag de message | Métadonnée nom=valeur placée en tête d'un message IRC. |
| SPAMFILTER | Filtre global d'UnrealIRCd, à base de texte ou d'expression régulière, qui bloque des messages selon leur contenu. |
| Hot-patch | Correctif d'UnrealIRCd appliqué à chaud avec ./unrealircd hot-patch, sans redémarrer le serveur. |
| Rehash | Relecture de la configuration par l'ircd, sans déconnecter les utilisateurs. |
| KEV | Known Exploited Vulnerabilities : catalogue de la CISA qui recense les failles exploitées. |
En résumé
Sur un réseau UnrealIRCd de deux serveurs ou plus, n'importe quel utilisateur peut aujourd'hui agir avec les droits du serveur, et la faille est exploitée. Posez d'abord le SPAMFILTER en IRCOp. Appliquez ensuite ./unrealircd hot-patch bundle-20261107 sur chaque serveur et vérifiez-le avec module-status. Passez en 6.2.7.1 sous Windows ou si le hot-patch échoue. Désactivez labeled-response et redémarrez si vous êtes encore en version 5. Sur Fedora, EPEL et Alpine, contrôlez le paquet installé au lieu de vous fier à la mise à jour du système. Pour héberger un réseau IRC, un VPS Linux par serveur du réseau, ou un serveur dédié découpé en machines virtuelles, permet d'appliquer ces correctifs serveur par serveur sans toucher au reste de vos services. Pour repérer ensuite les tentatives d'intrusion sur ces machines, voir notre guide CrowdSec sur un VPS Linux.
FiveM
Minecraft
Rust
RedM
Hytale