-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 - --- title: "Apache Camel Security Advisory - CVE-2026-46456" date: 2026-07-03T10:00:00+02:00 url: /security/CVE-2026-46456.html draft: false type: security-advisory cve: CVE-2026-46456 severity: MEDIUM summary: "Camel-AWS2-SQS: Inbound message attributes are mapped into the Exchange without an inbound HeaderFilterStrategy, allowing a message sender to inject Camel control headers" description: "The camel-aws2-sqs component maps inbound message attributes into the Camel Exchange through a component-specific HeaderFilterStrategy. Sqs2HeaderFilterStrategy configured only an outbound filter (setOutFilterPattern, which blocks Camel*, breadcrumbId and org.apache.camel.* headers being written to the broker) but did not configure an inbound filter. As a result, when Sqs2Consumer copies each SQS MessageAttribute into the Exchange via HeaderFilterStrategy.applyFilterToExternalHeaders, DefaultHeaderFilterStrategy applied no inbound rule and treated every header name as not filtered - including Camel-internal control headers such as CamelHttpUri, CamelFileName or CamelSqlQuery - copying them unmodified onto the Camel message. Any principal able to send messages to the consumed SQS queue (for example a cross-account sender or a lower-privileged in-account component holding sqs:SendMessage) could therefore set arbitrary Camel control headers that influence the behaviour of downstream producers in the route (for example redirecting an HTTP producer, changing a file name, or overriding a query); the injected headers also persist across internal direct, seda and vm hops. The concrete downstream impact depends on which producers the route uses." mitigation: "Users are recommended to upgrade to version 4.21.0, which fixes the issue. If users are on the 4.14.x LTS releases stream, then they are suggested to upgrade to 4.14.8. If users are on the 4.18.x releases stream, then they are suggested to upgrade to 4.18.3. The fix adds an inbound HeaderFilterStrategy rule to Sqs2HeaderFilterStrategy that filters the Camel header namespace case-insensitively on inbound mapping, so sender-supplied Camel* / camel* headers are no longer copied into the Exchange. For deployments that cannot upgrade immediately, strip the Camel control headers from inbound messages before they reach any downstream producer (for example removeHeaders('Camel*') and removeHeaders('camel*') at the start of the route), and restrict who may send to the consumed SQS queue by applying least-privilege sqs:SendMessage permissions on the queue resource policy." credit: "This issue was discovered by Yu Bao from PayPal" affected: "From 4.0.0 before 4.14.8, from 4.15.0 before 4.18.3, from 4.19.0 before 4.21.0." fixed: 4.14.8, 4.18.3 and 4.21.0 - --- The JIRA ticket: https://issues.apache.org/jira/browse/CAMEL-23506 refers to the various commits that resolved the issue, and have more details. The fix was merged on main in https://github.com/apache/camel/pull/23221 (commit 5f57258fb33d33ef99df10594f8fe9f11d7c2b7e) and backported to camel-4.18.x (commit 7b334be0419839097a132d4ff3427fc4083e695e) and camel-4.14.x (commit b7f78292e747a28dbf5da444265557b5f9f3c1a1). The issue is classified as CWE-20 (Improper Input Validation). It belongs to the same Camel message-header-injection family as CVE-2025-27636, CVE-2025-29891, CVE-2025-30177, CVE-2026-40453, CVE-2026-46454 and CVE-2026-47323, all of which stem from Camel components mapping inbound message headers into the Exchange without a HeaderFilterStrategy that blocks the Camel header namespace. The producer-only camel-aws2-sns component received the same defensive inbound-filter alignment under this fix; because it has no consumer, that change is defense-in-depth hardening only and is tracked separately as CVE-2026-56140. -----BEGIN PGP SIGNATURE----- iQEzBAEBCgAdFiEEJ2Y0ButtuvUpHyYV406fOAL/QQAFAmpHoh4ACgkQ406fOAL/ QQDC0wgAvwaDpZY+pwEqntncXb0FEeBBfw2zaKbiP4obgBfdZWRTHeQqfEAI0Hn5 ahzC1TrhUhU3kY0mMUY2qZu4bS0Pl1OLpGHzD7LvbCKjvY0NqTPBrj4eVsZx/H3V hrTK88/AQlrrplo4g+kY8qJfhuieE7kAttmvMgV0jC4qf6dLkh8zzOjrkFL/S47V n8Ha6qBrUPnzcP0puo7oP2kSvsiY2Z16l0uyiCfM6Hfm4akXFOdvg0kpfPV7Vxv+ HlubuFZQOGn9Ns+QZVGfhAliI6JE5mAMcAop/cFXz48FzUFKMyvtj7iWaP0tLoZk Tf12/1M5bGoRjBrscyblJePVnmad/w== =Rn3y -----END PGP SIGNATURE-----