---
id: "CVE-2026-85246"
kind: "vulnerability"
aliases: ["CVE-2026-85246"]
title: "Apache Camel MINA: failed exchanges leak exception details to remote peers"
severity: "medium"
cvss: 5.3
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["apache-camel", "java", "mina", "package", "self-hosted"]
not_affected_if: ["no-mina-consumer", "patched-version"]
published_at: "2026-10-19T11:17:22+00:00"
first_seen_at: "2026-10-23T21:57:18+00:00"
updated_at: "2026-10-25T04:25:18+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-85246", "first_seen_at": "2026-10-23T21:57:18+00:00"}]
---

# Apache Camel MINA: failed exchanges leak exception details to remote peers

When an Apache Camel MINA consumer fails to process an exchange, it writes the exception back over the socket to the remote peer. The peer can read the exception class name, message, or serialised exception with its cause chain, which can expose paths, host names and connection details.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Search route definitions and dependency lists for `camel-mina` and note the Apache Camel version, e.g. with `mvn dependency:tree | grep camel-mina` or by checking the `camel-mina` version in build files.
- Look for MINA consumers (`mina:tcp://...` or `mina2:` endpoints) that accept connections from untrusted peers.

## Fix

- Upgrade Apache Camel to `4.23.0`.
- If on the 4.18.x LTS stream, upgrade to `4.18.5`; if on the 4.22.x LTS stream, upgrade to `4.22.1`.
- Until upgraded, add an onException handler that sets the reply body explicitly so the framework never writes the exception back to the peer.

## Timeline

- 2026-10-23T21:57:18+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-85246

## From the sources

Generation of Error Message Containing Sensitive Information vulnerability in Apache Camel Mina component.

This issue affects Apache Camel: from 4.0.0 before 4.18.5, from 4.19.0 before 4.22.1.

When processing of an exchange failed, the Mina consumer wrote exchange.getException() straight back over the socket to the remote peer. Over a textline codec that hands the peer the exception's class name and message; over the object codec it hands over the serialised exception, cause chain included. A remote peer able to provoke a failure could therefore read internal detail about the deployment - class and package names, and whatever a message or nested cause happens to carry, which in practice can include paths, host names and connection detail. The consumer had no option to suppress this, unlike the HTTP-family consumers aligned by CAMEL-23651.

Upgrade to Apache Camel 4.23.0, which fixes the issue. Users on the 4.18.x LTS releases stream should upgrade to 4.18.5. Users on the 4.22.x LTS releases stream should upgrade to 4.22.1. A muteException consumer option, defaulting to true, replaces the route exception with a generic one carrying no class name, message or stack trace, while still writing a reply so that a synchronous peer is not left to time out. Set muteException=false to restore the previous behaviour. For deployments that cannot upgrade immediately, add an onException handler that sets the reply body explicitly, so the framework never writes the exception back to the peer.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
