CVE-2026-120209 : RCE sans authentification dans AJ-Report via un secret JWT codé en dur (CVSS 9.8). Toutes les versions jusqu'à 1.7.1 sont affectées. Mise à jour urgente.
En bref
- CVE-2026-120209 : exécution de code à distance sans authentification via un secret JWT codé en dur dans AJ-Report — CVSS 9.8
- Systèmes affectés : AJ-Report toutes versions jusqu'à 1.7.1 incluse (anji-plus/AJ-Report)
- Action urgente : mettre à jour AJ-Report au-delà de la version 1.7.1 ou bloquer l'accès à l'endpoint testTransform
Les faits
La vulnérabilité CVE-2026-120209 a été divulguée publiquement le 31 octobre 2026 et affecte AJ-Report dans toutes les versions jusqu'à 1.7.1 incluse. Notée CVSS 9.8 (critique), cette faille permet à tout attaquant distant non authentifié d'exécuter du code arbitraire sur le serveur hébergeant AJ-Report en exploitant un secret JWT codé en dur partagé par l'ensemble des installations du logiciel. La classification CWE associée est CWE-321 (Use of Hard-coded Cryptographic Key), l'une des erreurs de conception les plus critiques dans les applications utilisant des tokens d'authentification.
AJ-Report est une plateforme open source de reporting et de visualisation de données développée par Anji Plus et largement déployée dans des environnements d'entreprise en Asie et dans des projets data internationaux. L'outil permet la création de tableaux de bord, la connexion à des sources de données multiples (bases SQL, API REST) et la génération de rapports automatisés. Sa fonctionnalité de partage de rapports (Share-Token) repose sur des JSON Web Tokens (JWT) pour autoriser l'accès aux rapports partagés sans authentification complète.
Le cœur de la vulnérabilité CVE-2026-120209 réside dans l'utilisation d'un secret JWT identique et codé en dur dans le code source de toutes les installations d'AJ-Report jusqu'à la version 1.7.1. Un JSON Web Token est composé d'un header, d'un payload et d'une signature HMAC générée avec ce secret. Si le secret est connu, n'importe qui peut générer des tokens valides qui seront acceptés par l'application comme authentiques. Dans le cas d'AJ-Report, ce secret est public par nature puisqu'il est présent dans le code source open source du projet, accessible sur GitHub.
L'exploitation de CVE-2026-120209 suit un schéma en deux étapes. Premièrement, l'attaquant récupère le secret JWT hardcodé depuis le code source public d'AJ-Report sur GitHub (projet anji-plus/AJ-Report). Deuxièmement, il forge un Share-Token valide avec des claims lui permettant d'accéder à l'endpoint testTransform de l'API AJ-Report. Cet endpoint, destiné aux tests de transformation de données, accepte et exécute du code côté serveur sans vérification supplémentaire de l'identité de l'appelant lorsque le JWT est valide. Le résultat est une exécution de code arbitraire à distance (RCE) sans aucune authentification au sens traditionnel du terme.
Le vecteur CVSS de CVE-2026-120209 est AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H, soit un score de 9.8. L'absence de privilèges requis (PR:N) et la complexité d'attaque faible (AC:L) reflètent parfaitement la nature de l'exploitation : n'importe qui disposant de l'URL d'une instance AJ-Report accessible en réseau peut l'exploiter, sans credential préalable. Cette caractéristique rend CVE-2026-120209 particulièrement dangereuse pour toutes les instances AJ-Report exposées sur Internet ou accessibles depuis des zones réseau non sécurisées.
Selon les analyses publiées par TheHackerWire et radar.offseq.com, aucun exploit public n'a été confirmé à la date de divulgation du 31 octobre 2026. Cependant, la nature de la vulnérabilité (secret hardcodé dans le code source open source) signifie que l'exploitation ne requiert pas de recherche technique avancée. Tout développeur ayant accès au code source d'AJ-Report sur GitHub peut reproduire l'attaque en quelques heures. CVE-2026-120209 n'est pas non plus inscrite dans le catalogue KEV de la CISA à ce jour, mais sa criticité technique et son caractère exploitable sans authentification justifient une action immédiate.
Ce type de vulnérabilité — secret cryptographique codé en dur — est une faiblesse architecturale fondamentale qui révèle des lacunes dans le processus de développement sécurisé (Secure Development Lifecycle) de l'application. Une bonne pratique consiste à générer des secrets JWT aléatoires lors de chaque installation et à les stocker de manière sécurisée dans la configuration locale, jamais dans le code source. L'utilisation d'un secret partagé entre toutes les installations d'un logiciel distribué rend la révocation et la rotation des clés pratiquement impossibles sans mise à jour de l'ensemble des déploiements.
AJ-Report est souvent déployé dans des environnements data d'entreprise avec accès direct à des bases de données de production. Un accès RCE sur le serveur AJ-Report peut permettre à un attaquant d'exfiltrer les données de connexion aux sources de données configurées dans l'outil, d'accéder aux bases de données associées, et de rebondir vers d'autres systèmes du réseau interne. L'impact potentiel dépasse largement le périmètre de l'outil de reporting lui-même et peut conduire à une compromission de l'infrastructure data complète de l'organisation ciblée.
Impact et exposition
Toute instance AJ-Report en version 1.7.1 ou antérieure, accessible via le réseau, est vulnérable à CVE-2026-120209. L'absence d'authentification requise signifie que même les instances en accès public (dashboards partagés) sont exposées. Dans les architectures cloud ou SaaS où AJ-Report est exposé sur Internet pour permettre le partage de rapports avec des partenaires externes, la surface d'attaque est maximale.
L'endpoint testTransform, vecteur de l'exploitation, est une fonctionnalité légitime d'AJ-Report permettant de tester des transformations de données. Son accessibilité via un Share-Token forgé permet contourner intégralement le contrôle d'accès applicatif. Dans les déploiements typiques, l'accès RCE permet d'exécuter des commandes système avec les droits de l'utilisateur Java (généralement les droits du service ou d'un compte applicatif), ce qui peut suffire pour accéder aux fichiers de configuration contenant les credentials des sources de données.
Les entreprises utilisant AJ-Report dans des pipelines de Business Intelligence ou de Data Analytics doivent considérer que leurs connections strings de bases de données, credentials d'API et autres secrets stockés dans la configuration d'AJ-Report peuvent avoir été compromis si l'instance est accessible depuis l'extérieur. Un audit de sécurité post-incident est recommandé pour toute instance exposée.
Recommandations immédiates
- Mettre à jour AJ-Report vers une version corrigeant CVE-2026-120209 au-delà de la 1.7.1 — vérifier les release notes du projet anji-plus/AJ-Report sur GitHub
- Si la mise à jour est impossible : bloquer l'accès réseau à l'endpoint /dataSetParam/testTransform sur le serveur AJ-Report via règles WAF ou firewall applicatif
- Restreindre l'accès à l'interface AJ-Report aux seuls réseaux internes autorisés — ne jamais exposer l'interface d'administration sur Internet
- Auditer les logs d'accès AJ-Report pour détecter des requêtes suspectes vers l'endpoint testTransform avec des tokens inhabituels
- Faire pivoter (rotation) tous les credentials de sources de données configurés dans AJ-Report si l'instance a été exposée sur un réseau non sécurisé
⚠️ Urgence
CVSS 9.8, exploitation sans authentification possible via secret JWT codé en dur public. Toute instance AJ-Report 1.7.1 ou antérieure accessible en réseau doit être mise à jour ou isolée sans délai. La connaissance du secret JWT est accessible à tous via le code source open source public du projet.
Comment savoir si je suis vulnérable ?
Vérifiez la version d'AJ-Report déployée dans votre organisation : accédez à l'interface d'administration, section À propos ou vérifiez le fichier pom.xml du projet déployé. Si la version est inférieure ou égale à 1.7.1, l'instance est vulnérable à CVE-2026-120209. Vérifiez également si l'endpoint /dataSetParam/testTransform est accessible sans authentification depuis votre réseau ou depuis Internet en envoyant une requête de test. Si l'endpoint répond avec un message d'erreur applicatif (et non un 401 ou 403), l'instance est exposée.
Votre infrastructure est-elle exposée ?
Ayi NEDJIMI réalise des audits ciblés pour identifier et corriger vos vulnérabilités.
Demander un auditÀ propos de l'auteur
Ayi NEDJIMI
Auditeur Senior Cybersécurité & Consultant IA
Expert Judiciaire — Cour d'Appel de Paris
Habilitation Confidentiel Défense
ayi@ayinedjimi-consultants.fr
Ayi NEDJIMI est un vétéran de la cybersécurité avec plus de 25 ans d'expérience sur des missions critiques. Ancien développeur Microsoft à Redmond sur le module GINA (Windows NT4) et co-auteur de la version française du guide de sécurité Windows NT4 pour la NSA.
À la tête d'Ayi NEDJIMI Consultants, il réalise des audits Lead Auditor ISO 42001 et ISO 27001, des pentests d'infrastructures critiques, du forensics et des missions de conformité NIS2 / AI Act.
Conférencier international (Europe & US), il a formé plus de 10 000 professionnels.
Domaines d'expertise
Ressources & Outils de l'auteur
Testez vos connaissances
Mini-quiz de certification lié à cet article — propulsé par CertifExpress
Articles connexes
CVE-2026-48482 : GLPI RCE Form import CVSS 9.4 — CERT-FR
CVE-2026-48482 : faille RCE critique (CVSS 9.4) dans GLPI via l'import de formulaires. CERT-FR alerte CERTFR-2026-AVI-0675. Patch disponible dans GLPI 11.0.8 et 10.0.26.
CVE-2026-120189 : D-Link DIR-505 buffer overflow CVSS 10
CVE-2026-120189 : faille critique CVSS 10 dans le routeur D-Link DIR-505 via le service TFTP. PoC public disponible, aucun patch officiel — isolez vos équipements sans délai.
CVE-2026-118539 : Drupal Commerce auth bypass exploité
CVE-2026-118539 : bypass d'autorisation critique dans Drupal Commerce Core exploité activement sur 42 000+ sites — achats frauduleux possibles sans authentification. Patcher vers 3.3.13 ou 8.x-2.41 et auditer vos commandes.
Un projet cybersécurité ? Parlons-en.
Pentest, conformité NIS 2, ISO 27001, audit IA, RSSI externalisé… nos experts répondent sous 24h pour évaluer votre besoin et vous proposer un accompagnement sur mesure.
Commentaires
Aucun commentaire pour le moment. Soyez le premier à commenter !
Laisser un commentaire