HIGH 8.1

CVE-2026-42527: Apache Camel Deserialization DNS Reconnaissance Vulnerability

Apache Camel contains a deserialization vulnerability that allows attackers to trigger DNS queries during message processing. When serialized Java objects are sent to affected Camel components—particularly JMS consumers—the framework's default security filter allows certain classes like java.net.URL through. An attacker can craft a HashMap with malicious URL keys that, when deserialized, causes the JVM to issue DNS queries to attacker-controlled servers. This creates an out-of-band information disclosure channel without requiring code execution. The risk is highest in JMS deployments where message deserialization happens by default.

Source data · NVD / CISA · public domain

CVSS
3.1 · 8.1 HIGH · CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Weaknesses (CWE)
CWE-502
Affected products
2 configuration(s)
Published / Modified
2026-07-06 / 2026-07-07

NVD description (verbatim)

Deserialization of Untrusted Data vulnerability in Apache Camel. The default ObjectInputFilter pattern shipped with several Apache Camel components for defense-in-depth deserialization filtering ('java.**;javax.**;org.apache.camel.**;!*', or the no-'javax.**' variant in the aggregation-repository components) uses a recursive 'java.**' glob that admits classes whose hashCode/equals/readObject methods perform network I/O, notably java.net.URL and java.net.InetAddress. When an attacker can deliver a Java-serialized payload to an affected Camel consumer, deserialization of a HashMap (or any collection that calls hashCode on its elements) containing java.net.URL keys causes the JVM to issue DNS queries to the attacker-supplied host during the deserialization side-effect. The class-level filter check passes because the resulting object's class (HashMap) is allow-listed; the DNS query is observable on an attacker-controlled DNS server, providing an out-of-band side channel. The exposure is highest on the camel-jms family because JmsBinding.extractBodyFromJms invokes ObjectMessage.getObject() unconditionally when mapJmsMessage=true (default). Affected components: camel-jms, camel-sjms, camel-amqp, camel-mina, camel-netty, camel-netty-http, camel-vertx-http, camel-infinispan, and the aggregation repository components camel-leveldb, camel-cassandraql, camel-consul, camel-sql (JDBC aggregation repository). This issue affects Apache Camel: from 4.14.0 before 4.14.8, from 4.15.0 before 4.18.3, from 4.19.0 before 4.21.0. Users are recommended to upgrade to a version that contains the CAMEL-23372 fix once available: 4.21.0 for the 4.21.x line, 4.18.3 for the 4.18.x line, and 4.14.8 for the 4.14.x line. For deployments that cannot upgrade immediately, configure a JMS-provider-side allow-list (Apache ActiveMQ Artemis 'deserializationAllowList' / 'deserializationDenyList', Apache ActiveMQ Classic 'org.apache.activemq.SERIALIZABLE_PACKAGES') as the primary mitigation, and/or override the in-code default via the endpoint-level 'deserializationFilter' option or the JVM-wide '-Djdk.serialFilter' system property with an explicit deny: '!java.net.**;java.**;javax.**;org.apache.camel.**;!*' (or '!java.net.**;java.**;org.apache.camel.**;!*' for the aggregation-repository components, which do not include javax.**).

2 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

CVE-2026-42527 is a CWE-502 deserialization vulnerability affecting Apache Camel versions 4.14.0–4.14.7, 4.15.0–4.18.2, and 4.19.0–4.20.x. The ObjectInputFilter patterns used for defense-in-depth employ a recursive 'java.**' glob that inadvertently permits classes whose hashCode, equals, or readObject methods perform network operations—primarily java.net.URL and java.net.InetAddress. When a HashMap containing these classes as keys is deserialized, those methods are invoked during the deserialization process itself, before any class-level allow-list check occurs. In the JmsBinding component, the default mapJmsMessage=true setting causes ObjectMessage.getObject() to deserialize unconditionally, creating a direct attack surface. The vulnerability affects camel-jms, camel-sjms, camel-amqp, camel-mina, camel-netty, camel-netty-http, camel-vertx-http, camel-infinispan, and the aggregation-repository components (camel-leveldb, camel-cassandraql, camel-consul, camel-sql).

Business impact

This vulnerability enables attackers to discover network topology and verify the presence of specific systems without triggering traditional intrusion detection. In regulated environments, unauthorized DNS queries may violate data residency or network segmentation policies. The out-of-band channel can be weaponized for reconnaissance prior to a targeted attack. For organizations running Camel-based message brokers in zero-trust or air-gapped networks, the ability to perform external DNS lookups represents a control bypass. Reputational risk exists if an organization's infrastructure is observed querying attacker-controlled domains during forensic analysis.

Affected systems

Apache Camel deployments in versions 4.14.0 through 4.14.7, 4.15.0 through 4.18.2, and 4.19.0 through 4.20.x are vulnerable. The most critical scenario involves camel-jms and camel-sjms consumers with default JMS configuration; camel-amqp, camel-mina, camel-netty, and camel-netty-http also accept serialized payloads. Aggregation-repository components (camel-leveldb, camel-cassandraql, camel-consul, camel-sql) are affected if they process untrusted serialized state. Any deployment accepting serialized Java objects from external message brokers, files, or network endpoints is at risk.

Exploitability

Exploitability is moderate-to-high. The attack requires the ability to deliver a serialized Java object to an affected Camel consumer—typically through a JMS broker, but also through other transport protocols that Camel supports. No authentication or special privileges are required if the consumer is exposed to untrusted message sources. The attacker's DNS server must be reachable from the target network, and the exploitation is passive from the JVM's perspective; the DNS query occurs as a side effect of deserialization. Detection via network monitoring is straightforward if an organization logs DNS queries. Weaponization does not require custom gadget chains or complex serialization payloads; a standard HashMap with URL keys suffices.

Remediation

Upgrade to Apache Camel 4.21.0 (for 4.21.x), 4.18.3 (for 4.18.x), or 4.14.8 (for 4.14.x) to obtain the CAMEL-23372 fix. If immediate upgrade is not feasible, implement compensating controls: configure allow-list and deny-list policies on the JMS broker itself (ActiveMQ Artemis 'deserializationAllowList'/'deserializationDenyList' or ActiveMQ Classic 'org.apache.activemq.SERIALIZABLE_PACKAGES'), and/or override Camel's endpoint-level 'deserializationFilter' option or JVM-wide '-Djdk.serialFilter' property to explicitly deny java.net.** classes before permitting others.

Patch guidance

Verify availability and test the target patch version in a non-production environment before rollout. For the 4.14.x line, patch to 4.14.8 or later; for 4.18.x, patch to 4.18.3 or later; for 4.21.x, patch to 4.21.0 or later. Check the Apache Camel release notes and security advisory for any additional considerations or breaking changes. Rolling deployment is recommended for high-availability installations. After patching, confirm that the ObjectInputFilter pattern no longer uses the vulnerable recursive 'java.**' glob and explicitly denies 'java.net.**'.

Detection guidance

Monitor outbound DNS queries from systems running Camel consumers, particularly unexpected queries to external or attacker-controlled domains. Enable JVM serialization logging via '-Djdk.serialFilter=java.util.logging.ConsoleHandler' to log deserialization attempts. Review message broker logs for unusual or unexpected serialized payloads. Implement network segmentation to restrict DNS egress from message processing tiers. Search deployment configurations for instances of JmsBinding with mapJmsMessage=true and non-restrictive ObjectInputFilter patterns. Correlate suspicious DNS activity with Camel application restarts or message ingestion events.

Why prioritize this

Assign HIGH priority. The vulnerability affects widely-deployed message-processing infrastructure, requires only network-adjacent access to deliver payloads, and enables reconnaissance that can precede more damaging attacks. The CVSS score of 8.1 reflects high confidentiality and integrity impact despite moderate attack complexity. Although patches are available for all affected versions, the prevalence of Camel in enterprise integration platforms and the ease of exploitation warrant rapid remediation. Organizations with Camel deployments exposed to untrusted message sources should prioritize patching or deploying compensating controls within 7–14 days.

Risk score, explained

CVSS 3.1 score of 8.1 (HIGH) is driven by: Network attack vector (AV:N), no user interaction required (UI:N), and high impact on confidentiality and integrity (C:H, I:H, A:H). Attack complexity is High (AC:H) because the attacker must craft a specific serialized payload and have a network path to the target. The scope is Unchanged (S:U). The score appropriately captures the severity of an information-disclosure channel that can be leveraged for lateral movement reconnaissance, balanced against the requirement to deliver a crafted payload.

Frequently asked questions

Can this vulnerability be exploited without sending a message to Camel?

No. The vulnerability requires delivering a serialized Java object to an affected Camel consumer. The attack vector is the message itself—typically through JMS, but also through mina, netty, vertx-http, or other transport bindings. If your Camel deployment does not accept external serialized input, your risk is minimal.

Does upgrading the JMS broker alone protect me?

Configuring allow-lists and deny-lists on the broker side provides substantial mitigation, especially for ActiveMQ Classic and Artemis. However, relying on broker-level controls alone is not as robust as patching Camel itself. A defense-in-depth approach using both broker configuration and Camel patching is recommended.

What if we cannot upgrade immediately?

Apply the JVM-wide '-Djdk.serialFilter' property with an explicit deny rule: '!java.net.**;java.**;javax.**;org.apache.camel.**;!*'. Alternatively, override the Camel endpoint-level 'deserializationFilter' option on each JMS consumer. Additionally, implement network-layer controls to prevent your systems from issuing DNS queries to unexpected external servers. Test the filter rule thoroughly in a staging environment to avoid blocking legitimate messages.

How do I know if my Camel version is affected?

Check your Camel version in your build or deployment configuration. If you are running 4.14.0–4.14.7, 4.15.0–4.18.2, or 4.19.0–4.20.x, you are affected. Versions 4.14.8, 4.18.3, 4.21.0 and later contain the fix. Consult the Apache Camel security advisory and your organization's version management records.

This analysis is provided for informational purposes and reflects the vulnerability details as of the publication date. Readers are responsible for verifying patch availability, compatibility, and organizational readiness before deploying fixes. Consult official Apache Camel security advisories and release notes for definitive patching information. Network and broker configurations should be tested in non-production environments. This page does not constitute security advice specific to your organization's infrastructure. Source: NVD (public-domain), retrieved 2026-08-15. Analysis generated by SEC.co (claude-haiku-4-5).