CVE-2026-40859
Apache Camel : Camel-Vertx-Http : Désérialisation Java non sécurisée des corps de réponses HTTP via un ObjectInputStream brut lorsque transferException est activé
- Publié
- 6 juil. 2026
- Mise à jour
- 6 juil. 2026
- Attribution de CNA
- apache
- Preuve observée
- 6 août 2026
CVSS primaire
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:HFaible · 30 prochains jours
- Percentile
- 57,2 %
- Date du modèle
- 21 sept. 2026
EPSS est une estimation statistique, et non une certitude ou une mesure d'impact. Combinez-le avec CVSS, le statut KEV, l'exposition et votre environnement.
Résumé
# Vulnérabilité de désérialisation de données non fiables dans Apache Camel Vulnérabilité de désérialisation de données non fiables dans Apache Camel. Le composant camel-vertx-http désérialise les corps de réponses HTTP portant le Content-Type `application/x-java-serialized-object` à l'aide d'un `java.io.ObjectInputStream` brut, sans appliquer aucun `ObjectInputFilter` (`VertxHttpHelper.deserializeJavaObjectFromStream`). Ce chemin de désérialisation n'est atteint que lorsque le point de terminaison producteur est configuré avec `transferException=true` (ou l'option au niveau du composant `allowJavaSerializedObject=true`) et que `throwExceptionOnFailure` conserve sa valeur par défaut `true` ; dans ce cas, une réponse HTTP backend avec un statut 5xx et le type de contenu `application/x-java-serialized-object` voit son corps désérialisé sans aucune restriction de classe. Un attaquant qui contrôle le backend auquel le producteur Camel communique — via une position d'homme du milieu sur une connexion non chiffrée (HTTP simple), ou en compromettant le service backend — peut renvoyer un objet Java sérialisé conçu et, si une chaîne de gadgets appropriée est présente sur le classpath, parvenir à une exécution de code à distance sur l'hôte de l'application Camel. Le chemin n'est pas accessible dans la configuration par défaut, où `transferException` est `false`. Cette vulnérabilité affecte Apache Camel : de 4.0.0 avant 4.14.8, de 4.15.0 avant 4.18.3, de 4.19.0 avant 4.20.0. Il est recommandé aux utilisateurs de mettre à niveau vers la version 4.20.0, qui corrige le problème. Si les utilisateurs sont sur le flux de versions LTS 4.14.x, il leur est suggéré de passer à 4.14.8. Si les utilisateurs sont sur le flux de versions 4.18.x, il leur est suggéré de passer à 4.18.3. Après la mise à niveau, la désérialisation effectuée par les deux utilitaires d'assistance est contrainte par un `ObjectInputFilter` par défaut (liste blanche `java.**;javax.**;org.apache.camel.**;!*`), qui peut être personnalisé via la nouvelle option de point de terminaison `deserializationFilter` ou la propriété système JVM globale `-Djdk.serialFilter`. Pour les déploiements qui ne peuvent pas être mis à niveau immédiatement : n'activez pas `transferException=true` (ou `allowJavaSerializedObject=true`) sur les producteurs qui communiquent avec des backends non fiables ou accessibles via le réseau ; assurez-vous que les connexions producteur utilisent TLS (https) afin qu'une réponse ne puisse pas être substituée par un homme du milieu ; et, lorsque l'option est requise, définissez une liste blanche explicite `-Djdk.serialFilter` (par exemple `java.**;org.apache.camel.**;!*`) pour contraindre la désérialisation.
Utilisation responsable
Utilisez les informations de vulnérabilité uniquement sur les systèmes que vous possédez ou que vous êtes autorisé à tester. Kitploit renvoie aux métadonnées de la recherche publique et ne stocke pas de code d'exploitation ni de charges utiles malveillantes.