Avis de sécurité Balbooa Forms
Si vous avez reçu un courriel de ma part vous renvoyant vers cette page, c’est que votre site web semble
exécuter une version de Balbooa Forms (le com_baforms de Balbooa, qui se trouve dans vos fichiers
sous /components/com_baforms/ et /administrator/components/com_baforms/) affectée par un problème de
sécurité connu. Balbooa Forms est une extension de création de formulaires pour le système de gestion de
contenu Joomla. Cette page explique pourquoi cela compte, comment lire votre version de manière fiable, et
comment corriger le problème.
Cet avis concerne CVE-2026-56291, une faille critique (CVSS 10.0), activement exploitée, qui permet l’exécution de code à distance sans authentification via la gestion des pièces jointes de formulaire du front-end de l’extension. Elle affecte toutes les versions antérieures à 2.4.1. Elle a été ajoutée au catalogue des Known Exploited Vulnerabilities (vulnérabilités connues et exploitées) de la Cybersecurity and Infrastructure Security Agency des États-Unis le 10 juillet 2026.
La version qui corrige ce problème n’est pas la version vers laquelle effectuer la mise à jour, et c’est le point le plus important de cette page. La version 2.4.1, publiée le 9 juillet 2026, corrige bien CVE-2026-56291. Mais une seconde faille, distincte, dans la même extension, CVE-2026-65880, affecte les versions jusqu’à 2.4.2.1 incluse. Un exploitant qui met à jour vers 2.4.1 ou 2.4.2 referme donc la porte dont traite cet avis tout en en laissant une autre ouverte. Une version ultérieure, 2.4.3.1, est une version de sécurité supplémentaire qui renforce le même chemin de téléversement. Donc : mettez à jour Balbooa Forms vers la version 2.4.3.1 ou ultérieure, qui est la version actuelle au moment de la rédaction. Ne vous arrêtez pas à 2.4.1.
Il n’existe aucune version plus ancienne qui soit sûre. Les protections qui mettent fin à ce problème ont été ajoutées dans la version 2.4.1, ce qui signifie qu’elles étaient absentes de toutes les versions antérieures. Il ne s’agit pas d’une faille introduite en cours de route dans l’histoire de l’extension : le propre journal des modifications de l’éditeur montre que le chemin de téléversement front-end fonctionne sans interruption depuis la ligne 2.0.x jusque dans la 1.x, et j’ai confirmé directement dans le code source des versions 2.1.x, 2.2.0 et 2.3.x que cette gestion n’était pas protégée. « Mon installation est trop ancienne pour être concernée » n’est pas une échappatoire ici, et dans la pratique, une grande partie des installations concernées que je constate sont effectivement d’anciennes installations.
Rien n’a besoin d’être activé pour que cela s’applique à vous. L’hypothèse évidente serait qu’un site n’est exposé que s’il publie un formulaire acceptant les pièces jointes, aussi je tiens à préciser explicitement que ce n’est pas le cas. Aucun réglage ne permet de sortir une version concernée de la plage affectée, et l’édition gratuite de l’extension comporte le code affecté au même titre que les éditions payantes, si bien que « nous n’utilisons que la version gratuite » n’est pas non plus une échappatoire. Ce qui compte, c’est simplement la version que vous exécutez.
Comme cette faille a été exploitée avant qu’un correctif n’existe, la mise à jour à elle seule ne suffit pas. Vous devriez également vérifier votre site à la recherche de signes indiquant que quelqu’un vous a précédé (voir Si vous utilisiez une version concernée ci-dessous).
Il s’agit d’une faille de l’extension, et non d’une faille du noyau Joomla. Elle touche aussi bien les sites sous Joomla 4, 5 que 6 : un noyau Joomla parfaitement à jour ne vous protège pas si l’extension Balbooa Forms elle-même est obsolète.
Ce message est-il légitime ?
Oui. Il s’agit d’un avis de divulgation responsable et de bonne foi émis par un chercheur en sécurité indépendant. Je ne vous demande pas d’argent, de mots de passe ou d’accès à votre site, et je n’ai pas tenté de pénétrer dans votre site, de téléverser quoi que ce soit, ni d’exploiter quoi que ce soit.
Tout ce que j’ai fait a été de regarder des fichiers que votre site web sert à chaque visiteur (de la même
manière que votre page d’accueil est publique) : vos pages, les adresses des ressources front-end propres à
l’extension qui y sont inscrites, et le fichier manifeste public de l’extension. C’est tout. Je n’ai
spécifiquement pas touché à la fonctionnalité de téléversement concernée, je n’ai soumis aucun
formulaire sur votre site, et je n’ai pas demandé le répertoire images/baforms/uploads/ sur votre site ou
ailleurs. Ce chemin n’apparaît plus bas sur cette page que comme un endroit où vous pouvez regarder sur
votre propre site. Rien dans cette vérification ne touche à vos données, à votre zone d’administration, ou
à toute partie privée de votre site.
Si vous souhaitez vérifier qui je suis, consultez les coordonnées au bas de cette page et la page À propos.
Pourquoi cela compte
Balbooa Forms permet de créer des formulaires de contact, des formulaires de demande de renseignements et des formulaires similaires sur les sites Joomla. L’une des fonctionnalités qu’il propose est la possibilité, pour un visiteur, de joindre un fichier lors de la soumission d’un formulaire.
Dans les versions concernées, la gestion à l’origine de cette fonctionnalité est accessible sans connexion et ne contrôle pas correctement le type de fichier qui lui est fourni. Cette combinaison permet à un attaquant de déposer sur votre serveur un programme de son choix et de l’exécuter : une exécution de code à distance complète, sans compte et sans aucune coopération de votre part.
Ce risque n’est pas théorique. La faille a été notée 10.0 sur 10, le maximum, et elle est activement exploitée dans la nature. L’exploitation a été observée à partir du 8 juillet 2026, un jour avant la publication du correctif le 9 juillet 2026, et la Cybersecurity and Infrastructure Security Agency des États-Unis l’a ajoutée à son catalogue des Known Exploited Vulnerabilities le 10 juillet 2026. Elle a été signalée par Phil Taylor, de mySites.guru.
Je décris cela au niveau qu’un propriétaire de site doit connaître pour agir, et pas plus. Je ne publie pas les détails qui permettraient à quelqu’un de le reproduire, et je vous demande de ne pas essayer de le reproduire contre votre propre site ou celui de quiconque. Lire votre numéro de version, comme décrit ci-dessous, vous dit tout ce dont vous avez besoin pour décider quoi faire.
Si mon courriel a cité ce problème, cela signifie que la version signalée par votre site est antérieure à 2.4.1. Je n’ai pas testé si votre site en particulier est exploitable ou déjà compromis, seulement qu’il signale une version concernée.
Comment vérifier votre version
Vous n’êtes pas obligé de me croire sur parole quant à la version que vous utilisez. Il existe deux moyens fiables de vérifier, et un signal trompeur propre à cette extension qu’il vaut la peine de connaître.
Depuis l’administration Joomla (faisant foi) :
- Connectez-vous à votre administration Joomla (généralement à l’adresse
yourdomain.com/administrator). - Allez dans Système puis Gérer puis Extensions (ou Extensions puis Gérer, selon votre version de Joomla).
- Recherchez Balbooa Forms et notez la version installée.
Depuis le fichier manifeste sur le disque : ouvrez
/administrator/components/com_baforms/baforms.xml
et lisez son élément <version>. C’est ce que votre site exécute réellement.
Faites attention à quel baforms.xml vous lisez. Une installation Joomla comportant cette extension
contient trois fichiers différents portant ce nom, et seul celui situé au chemin ci-dessus appartient au
composant lui-même. Les copies situées sous /administrator/manifests/files/ et
/plugins/editors-xtd/baforms/ portent leurs propres numéros de version, bien plus anciens, et ne suivent
pas du tout le composant. Lire l’une d’elles par erreur vous fera sous-estimer nettement votre version.
Le numéro de version figurant dans le code source de votre page n’est pas fiable. Balbooa Forms appose
un numéro de version sur les adresses de ses ressources front-end, de sorte que si vous affichez le code
source d’une page comportant un formulaire, vous pourriez voir quelque chose comme ba-form.js?2.3.0.2. Ce
numéro n’est pas lu à partir des fichiers effectivement servis. Il provient de la copie du manifeste de
l’extension conservée dans la base de données de Joomla, que seule une installation effectuée via Joomla
vient mettre à jour. Si l’extension a un jour été mise à jour en copiant des fichiers par-dessus les
anciens plutôt qu’en l’installant via Joomla, la page peut afficher une version que le site n’exécute pas,
et cela peut se tromper dans les deux sens : un ancien numéro sur des fichiers à jour, ou un nouveau numéro
sur d’anciens fichiers. Utilisez plutôt l’écran d’administration ou le fichier manifeste sur le disque.
Appliquez ensuite cette règle :
- Toute version antérieure à 2.4.1 : concernée par ce problème. Il n’existe aucun seuil en dessous duquel une version plus ancienne redeviendrait sûre.
- 2.4.1 ou 2.4.2 : corrigée en ce qui concerne ce problème, mais toujours concernée par CVE-2026-65880, la faille distincte mentionnée plus haut. Continuez.
- 2.4.3.1 ou ultérieure : à jour. C’est là que vous devez être.
Comment mettre à jour
La voie la plus sûre consiste à effectuer la mise à jour via Joomla lui-même, en réalisant d’abord une sauvegarde :
- Sauvegardez votre site (fichiers et base de données) avant d’apporter des modifications. La plupart des hébergeurs proposent des sauvegardes en un clic, ou utilisez une extension de sauvegarde Joomla.
- Dans l’administration Joomla, ouvrez Extensions puis Gérer puis Mettre à jour, et cliquez sur Rechercher les mises à jour. Si une mise à jour de Balbooa Forms est répertoriée, installez-la à partir d’ici.
- Si aucune mise à jour n’y apparaît, obtenez la dernière version directement auprès de l’éditeur, Balbooa, et installez-la via Extensions puis Installer. L’édition gratuite et les éditions payantes sont toutes deux mises à jour depuis le site de l’éditeur lui-même.
- Installez via Joomla, et non en copiant des fichiers par-dessus les anciens. Copier des fichiers laisse obsolète l’enregistrement de la version par Joomla, ce qui est précisément ce qui rend le numéro affiché dans le code source de la page peu fiable, et cela peut laisser des fichiers anciens en place.
- Après la mise à jour, confirmez le nouveau numéro de version (2.4.3.1 ou ultérieure) en suivant les étapes ci-dessus, et vérifiez que vos formulaires s’affichent et se soumettent toujours normalement.
Tant que vous y êtes, il vaut la peine de confirmer que Joomla lui-même et vos autres extensions sont à jour, car le même principe s’applique à tous.
Si vous utilisiez une version concernée
Comme cette faille a été exploitée avant qu’un correctif ne soit disponible, un site qui a utilisé une version concernée ne devrait pas présumer que la mise à jour suffit. La mise à jour referme la porte, mais elle ne vous dit pas si quelqu’un l’avait déjà franchie. Cela vaut la peine d’être vérifié calmement plutôt que de s’attendre au pire : la plupart des sites ne trouveront rien.
Voici ce que vous (ou votre webmaster) pouvez rechercher sur votre propre site :
-
Des fichiers PHP inattendus dans le répertoire de téléversements. Recherchez des fichiers
.phpn’importe où sousimages/baforms/uploads/, y compris dans tous ses sous-répertoires. Rien de légitime ne place de PHP à cet endroit. Sur un hébergement Linux, la vérification est :find images/baforms/uploads -name '*.php' -type f - Des comptes administrateur que vous ne reconnaissez pas. Passez en revue votre liste d’utilisateurs dans Utilisateurs puis Gérer. Vérifiez également les dates d’inscription des comptes que vous reconnaissez, car un compte créé début juillet 2026 que vous pensiez avoir toujours existé mérite un second regard.
- Des fichiers PHP ailleurs sur le site modifiés aux alentours ou après début juillet 2026, en particulier ceux que vous ne pouvez pas expliquer.
Si vous trouvez l’un de ces éléments, considérez le site comme compromis : changez tous vos identifiants (administration Joomla, base de données, FTP/SSH, panneau d’hébergement), examinez vos comptes utilisateurs Joomla et les groupes auxquels ils appartiennent, et envisagez de restaurer une sauvegarde antérieure au 8 juillet 2026 plutôt que d’essayer de nettoyer le site en place. Nettoyer en place est difficile à bien faire, car une porte dérobée laissée en place peut annuler le nettoyage. Si votre organisation dispose d’une équipe de sécurité informatique ou d’un CERT national, impliquez-la.
Je tiens à être clair : je n’ai pas vérifié votre site pour l’un quelconque de ces indicateurs, et je ne sais pas si votre site a été touché. Cette liste est là pour que vous puissiez vérifier par vous-même.
Je n’ai pas de webmaster / je suis bloqué
Si vous n’êtes pas la personne qui maintient le site, veuillez transférer cette page à la personne qui s’en charge (votre développeur web, agence ou hébergeur). Ils reconnaîtront rapidement les étapes ci-dessus.
Si vous maintenez le site vous-même et que vous êtes bloqué, je suis heureux de vous aider à vous orienter dans la bonne direction, sans frais. Contactez-moi en utilisant les coordonnées ci-dessous.
Contact
Evan Harris, chercheur en sécurité
- Courriel: security@mail.mcpsec.dev
- X: @Evan__Harris
- GitHub: eharris128
- LinkedIn: Evan Harris
Je prends contact concernant ce type de problème uniquement pour aider les exploitants à sécuriser leurs sites. Si vous préférez ne plus être contacté, faites-le-moi savoir et je le respecterai.
Références
Avis officiels et suivi
- Fiche NVD (CVE-2026-56291)
- GitHub Advisory Database (GHSA-28f5-j5p5-xmmw)
- Catalogue CISA des vulnérabilités connues et exploitées
Éditeur (Balbooa)
Signalement et analyse