FICHE CVE

CVE-2026-101292

Publiée le 2026-09-28 · Dernière modification le 2026-10-20

🇫🇷 EN BREF

Les versions d'Apache ActiveMQ Artemis antérieures à la 2.34.0 constituent un agent de message haute performance utilisé pour la communication asynchrone entre applications. La faille réside dans la manière dont l'agent gère les connexions entre pairs de fédération, plus précisément au sein de la méthode `FederationStreamConnectMessage`. Comme le logiciel ne valide pas les noms de classes envoyés via le réseau, il utilise une réflexion non sécurisée pour instancier toute classe fournie par l'expéditeur.

Un attaquant peut faire planter l'agent ou manipuler son état interne, impactant gravement la disponibilité et l'intégrité de votre service de messagerie. L'exploitation de cette faille est relativement simple car elle ne nécessite qu'un accès réseau, sans privilèges particuliers ni interaction de l'utilisateur. Bien qu'elle ne permette pas de fuite directe de données privées, elle permet à un acteur distant de provoquer l'épuisement de la mémoire ou d'empoisonner les propriétés du système pour désactiver le service.

CVSS 3.18.2 ÉLEVÉE
Type de faiblesse
Publiée2026-09-28
Dernière modification2026-10-20

DÉTAIL DU VECTEUR CVSS

Vecteur d'attaqueRéseau
Complexité d'attaqueFaible
Privilèges requisAucun
Interaction utilisateurAucune
PortéeInchangée
Impact sur la confidentialitéAucun
Impact sur l'intégritéFaible
Impact sur la disponibilitéÉlevé

RÉFÉRENCES

Description officielle du NVD (en anglais)

Apache ActiveMQ Artemis before 2.34.0 contains an unsafe reflection vulnerability in FederationStreamConnectMessage.getFederationPolicy(). The method calls Class.forName(clazz).getConstructor().newInstance() where clazz is read directly from the CORE protocol wire buffer without type validation. An authenticated federation peer can send a FEDERATION_DOWNSTREAM_CONNECT packet with a crafted class name, causing the broker to load and instantiate arbitrary classes visible to the Artemis module classloader. Static initializers (<clinit>) and no-argument constructors (<init>()) execute as side effects before the type cast, enabling denial of service via system-property poisoning, out-of-memory conditions via classloading, or broker state manipulation.