édition quotidiennecurated dispatchespas de rewritediffusion à l'aubelecture longuepublication rarearchivé à viesilence, puis signal
security2026.05.02il y a 6 jours2 min de lecture

CVE-2026-42779 : désérialisation RCE dans Apache MINA, correctif incomplet (CVSS 9.8)

Un patch incomplet sur CVE-2026-41635 laisse subsister un contournement de l'allowlist de classes dans Apache MINA 2.1.x/2.2.x, permettant l'exécution de code arbitraire sans authentification. Mise à jour vers 2.1.12 ou 2.2.7 requise.

#rce#deserialization#java#apache
§

Apache MINA, bibliothèque Java de communication réseau asynchrone utilisée notamment dans ActiveMQ, Apache Directory Server, des passerelles Syslog et de nombreux middlewares IoT, cumule les vulnérabilités de désérialisation depuis 2024. CVE-2024-52046 (CVSS 10.0) avait alerté la communauté Java en décembre 2024. CVE-2026-41635, divulguée via oss-security le 27 avril 2026, semblait clore le sujet — mais CVE-2026-42779, publiée le 1er mai 2026 (CVSS 9.8), révèle que le correctif était incomplet.

Mécanisme de la vulnérabilité

La faille réside dans AbstractIoBuffer.resolveClass(), la méthode qui détermine quelle classe charger lors de la désérialisation d'un objet via IoBuffer.getObject().

Le correctif de CVE-2026-41635 avait ajouté une vérification d'allowlist sur les classnames, mais oublié une branche dédiée aux classes statiques ou primitives. Cette branche ne procède à aucune vérification, permettant à un attaquant d'y faire aboutir la résolution d'une classe arbitraire :

IoBuffer.getObject()
  → AbstractIoBuffer.resolveClass(name)
      if (isPrimitive || isStaticInitializer) {
          return Class.forName(name);  // ← branche non filtrée
      }
      checkAllowlist(name);  // ← jamais atteint pour la branche ci-dessus

Un attaquant envoie un objet sérialisé crafté dont la classe cible déclenche cette branche. Résultat : chargement et exécution de classe arbitraire, sans authentification préalable.

CVE-2026-42778 couvre une variante similaire via le chemin des initialiseurs statiques, patchée dans le même release.

Versions affectées et correctif

BrancheVulnérableCorrigée
2.1.x2.1.0 – 2.1.112.1.12
2.2.x2.2.0 – 2.2.62.2.7

La mise à jour est disponible sur Maven Central. Vérifier les dépendances transitives :

mvn dependency:tree | grep mina

Surface d'attaque

Tout service Java qui reçoit des données réseau non-fiables via MINA est potentiellement exposé. Les cas les plus courants : serveurs Syslog over TCP, passerelles LDAP/RADIUS, connecteurs de messagerie et agents IoT. L'exploitation ne requiert aucun accès authentifié — seul l'accès réseau au port MINA suffit.

Apache MINA n'est pas omniprésent dans les applications modernes greenfield, mais reste implanté dans des projets Apache à longue durée de vie et dans des systèmes embarqués peu mis à jour. La combinaison CVE-2026-41635 + 42779 + 42778 sur une fenêtre de cinq jours est un signal fort : auditer les dépendances avant de supposer que le patch précédent suffisait.

Divulgation oss-security — CVE-2026-41635 (patch originel)

Apache MINA — site officiel et notes de release

Analyse TheHackerWire — CVE-2026-42779