{"id":"CVE-2026-41731","aliases":["EUVD-2026-35908","GHSA-xq69-5h5v-x9x4","ROOT-APP-MAVEN-CVE-2026-41731"],"status":"published","title":"In Spring for Apache Kafka, overly broad trusted-package matching in header mappers exposes JDK classes to deserialization","description":"JsonKafkaHeaderMapper and the deprecated DefaultKafkaHeaderMapper matched type headers against trusted packages using a prefix check, meaning that trusting any package implicitly trusted all of its subpackages. Combined with Jackson's default bean deserialization, a producer could supply crafted header values that caused the consumer to deserialize arbitrary JDK types.\n\nAffected versions:\nSpring for Apache Kafka 4.0.0 through 4.0.5; 3.3.0 through 3.3.15; 3.2.0 through 3.2.13; 2.9.0 through 2.9.13; 2.8.0 through 2.8.11.","severity":{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.0051,"percentile":0.4382,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-502"],"published":"2026-06-09T23:49:26Z","modified":"2026-10-28T02:31:13Z","fixes":[{"ecosystem":"Maven","package":"org.springframework.kafka:spring-kafka","fixed_in":["4.0.6","3.3.16"],"sources":["ghsa","osv"]},{"ecosystem":"Root:Maven","package":"org.springframework.kafka:spring-kafka","fixed_in":["3.3.14-aikido.1","4.0.4-aikido.1","3.2.4-aikido.1","4.0.5-aikido.1","3.3.15-aikido.1","3.3.7-aikido.1"],"sources":["osv"]},{"ecosystem":"Root:Maven","package":"io.root.org.springframework.kafka:spring-kafka","fixed_in":["3.3.14-root.io.1","4.0.4-root.io.1","3.2.4-root.io.1","4.0.5-root.io.1","3.3.15-root.io.1","3.3.7-root.io.1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"Maven","package":"org.springframework.kafka:spring-kafka","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.0.0"},{"last_affected":"4.0.5"},{"fixed":"4.0.6"}]}]},{"source":"ghsa","ecosystem":"Maven","package":"org.springframework.kafka:spring-kafka","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.3.0"},{"last_affected":"3.3.15"},{"fixed":"3.3.16"}]}]},{"source":"ghsa","ecosystem":"Maven","package":"org.springframework.kafka:spring-kafka","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.2.0"},{"last_affected":"3.2.13"}]}]},{"source":"ghsa","ecosystem":"Maven","package":"org.springframework.kafka:spring-kafka","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.9.0"},{"last_affected":"2.9.13"}]}]},{"source":"ghsa","ecosystem":"Maven","package":"org.springframework.kafka:spring-kafka","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"2.8.11"}]}]},{"source":"osv","ecosystem":"Maven","package":"org.springframework.kafka:spring-kafka","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.0.0"},{"fixed":"4.0.6"}]}],"versions":["4.0.0","4.0.1","4.0.2","4.0.3","4.0.4","4.0.5"]},{"source":"osv","ecosystem":"Maven","package":"org.springframework.kafka:spring-kafka","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.3.0"},{"fixed":"3.3.16"}]}],"versions":["3.3.0","3.3.1","3.3.10","3.3.11","3.3.12","3.3.13","3.3.14","3.3.15","3.3.2","3.3.3","3.3.4","3.3.5","3.3.6","3.3.7","3.3.8","3.3.9"]},{"source":"osv","ecosystem":"Maven","package":"org.springframework.kafka:spring-kafka","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.2.0"},{"last_affected":"3.2.13"}]}],"versions":["3.2.0","3.2.1","3.2.10","3.2.2","3.2.3","3.2.4","3.2.5","3.2.6","3.2.7","3.2.8","3.2.9"]},{"source":"osv","ecosystem":"Maven","package":"org.springframework.kafka:spring-kafka","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.9.0"},{"last_affected":"2.9.13"}]}],"versions":["2.9.0","2.9.1","2.9.10","2.9.11","2.9.12","2.9.13","2.9.2","2.9.3","2.9.4","2.9.5","2.9.6","2.9.7","2.9.8","2.9.9"]},{"source":"osv","ecosystem":"Maven","package":"org.springframework.kafka:spring-kafka","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"2.8.11"}]}],"versions":["1.0.0.RELEASE","1.0.1.RELEASE","1.0.2.RELEASE","1.0.3.RELEASE","1.0.4.RELEASE","1.0.5.RELEASE","1.0.6.RELEASE","1.1.0.RELEASE","1.1.1.RELEASE","1.1.2.RELEASE","1.1.3.RELEASE","1.1.4.RELEASE","1.1.5.RELEASE","1.1.6.RELEASE","1.1.7.RELEASE","1.1.8.RELEASE","1.2.0.RELEASE","1.2.1.RELEASE","1.2.2.RELEASE","1.2.3.RELEASE","1.3.0.RELEASE","1.3.1.RELEASE","1.3.10.RELEASE","1.3.11.RELEASE","1.3.2.RELEASE","1.3.3.RELEASE","1.3.4.RELEASE","1.3.5.RELEASE","1.3.6.RELEASE","1.3.7.RELEASE","1.3.8.RELEASE","1.3.9.RELEASE","2.0.0.RELEASE","2.0.1.RELEASE","2.0.2.RELEASE","2.0.3.RELEASE","2.0.4.RELEASE","2.0.5.RELEASE","2.0.6.RELEASE","2.0.7.RELEASE","2.0.8.RELEASE","2.1.0.RELEASE","2.1.1.RELEASE","2.1.10.RELEASE","2.1.11.RELEASE","2.1.12.RELEASE","2.1.13.RELEASE","2.1.14.RELEASE","2.1.2.RELEASE","2.1.3.RELEASE","2.1.4.RELEASE","2.1.5.RELEASE","2.1.6.RELEASE","2.1.7.RELEASE","2.1.8.RELEASE","2.1.9.RELEASE","2.2.0.RELEASE","2.2.1.RELEASE","2.2.10.RELEASE","2.2.11.RELEASE","2.2.12.RELEASE","2.2.13.RELEASE","2.2.14.RELEASE","2.2.15.RELEASE","2.2.2.RELEASE","2.2.3.RELEASE","2.2.4.RELEASE","2.2.5.RELEASE","2.2.6.RELEASE","2.2.7.RELEASE","2.2.8.RELEASE","2.2.9.RELEASE","2.3.0.RELEASE","2.3.1.RELEASE","2.3.10.RELEASE","2.3.11.RELEASE","2.3.12.RELEASE","2.3.13.RELEASE","2.3.14.RELEASE","2.3.2.RELEASE","2.3.3.RELEASE","2.3.4.RELEASE","2.3.5.RELEASE","2.3.6.RELEASE","2.3.7.RELEASE","2.3.8.RELEASE","2.3.9.RELEASE","2.4.0.RELEASE","2.4.1.RELEASE","2.4.10.RELEASE","2.4.11.RELEASE","2.4.12.RELEASE","2.4.13.RELEASE","2.4.2.RELEASE","2.4.3.RELEASE","2.4.4.RELEASE","2.4.5.RELEASE","2.4.6.RELEASE","2.4.7.RELEASE","2.4.8.RELEASE","2.4.9.RELEASE","2.5.0.RELEASE","2.5.1.RELEASE","2.5.10.RELEASE","2.5.11.RELEASE","2.5.12.RELEASE","2.5.13.RELEASE","2.5.14.RELEASE","2.5.15.RELEASE","2.5.16.RELEASE","2.5.17.RELEASE","2.5.2.RELEASE","2.5.3.RELEASE","2.5.4.RELEASE","2.5.5.RELEASE","2.5.6.RELEASE","2.5.7.RELEASE","2.5.8.RELEASE","2.5.9.RELEASE","2.6.0","2.6.1","2.6.10","2.6.11","2.6.12","2.6.13","2.6.2","2.6.3","2.6.4","2.6.5","2.6.6","2.6.7","2.6.8","2.6.9","2.7.0","2.7.1","2.7.10","2.7.11","2.7.12","2.7.13","2.7.14","2.7.2","2.7.3","2.7.4","2.7.5","2.7.6","2.7.7","2.7.8","2.7.9","2.8.0","2.8.1","2.8.10","2.8.11","2.8.2","2.8.3","2.8.4","2.8.5","2.8.6","2.8.7","2.8.8","2.8.9"]},{"source":"osv","ecosystem":"Root:Maven","package":"org.springframework.kafka:spring-kafka","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.3.14-aikido.1"},{"fixed":"4.0.4-aikido.1"},{"fixed":"3.2.4-aikido.1"},{"fixed":"4.0.5-aikido.1"},{"fixed":"3.3.15-aikido.1"},{"fixed":"3.3.7-aikido.1"}]}]},{"source":"osv","ecosystem":"Root:Maven","package":"io.root.org.springframework.kafka:spring-kafka","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.3.14-root.io.1"},{"fixed":"4.0.4-root.io.1"},{"fixed":"3.2.4-root.io.1"},{"fixed":"4.0.5-root.io.1"},{"fixed":"3.3.15-root.io.1"},{"fixed":"3.3.7-root.io.1"}]}]}],"products":[{"vendor":"red hat","product":"red hat fuse 7"},{"vendor":"red hat","product":"red hat jboss enterprise application platform expansion pack"},{"vendor":"redhat","product":"fuse"},{"vendor":"redhat","product":"jboss_enterprise_application_platform_expansion_pack"},{"vendor":"spring","product":"spring for apache kafka"},{"vendor":"vmware","product":"spring_for_apache_kafka"}],"references":[{"url":"https://spring.io/security/cve-2026-41731","tags":["Vendor Advisory","web"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-41731","tags":["vdb-entry","x_refsource_REDHAT","Third Party Advisory","advisory"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2487375","tags":["issue-tracking","x_refsource_REDHAT","Issue Tracking","Third Party Advisory","report"]},{"url":"https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-41731.json","tags":["x_sadp-csaf-vex","Third Party Advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-41731","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-xq69-5h5v-x9x4"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/41xxx/CVE-2026-41731.json","tags":["advisory"]},{"url":"https://github.com/spring-projects/spring-kafka","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2026-41731","title":"In Spring for Apache Kafka, overly broad trusted-package matching in header mappers exposes JDK classes to deserialization","description":"JsonKafkaHeaderMapper and the deprecated DefaultKafkaHeaderMapper matched type headers against trusted packages using a prefix check, meaning that trusting any package implicitly trusted all of its subpackages. Combined with Jackson's default bean deserialization, a producer could supply crafted header values that caused the consumer to deserialize arbitrary JDK types.\n\nAffected versions:\nSpring for Apache Kafka 4.0.0 through 4.0.5; 3.3.0 through 3.3.15; 3.2.0 through 3.2.13; 2.9.0 through 2.9.13; 2.8.0 through 2.8.11.","status":"published","published":"2026-06-09T23:49:26.535Z","modified":"2026-08-05T12:14:45.446Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"cna"},{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"adp"}],"cwes":["CWE-502","CWE-502"],"updated_at":"2026-11-02T13:40:57.334596Z"}],"euvd":[{"id":"EUVD-2026-35908","description":"JsonKafkaHeaderMapper and the deprecated DefaultKafkaHeaderMapper matched type headers against trusted packages using a prefix check, meaning that trusting any package implicitly trusted all of its subpackages. Combined with Jackson's default bean deserialization, a producer could supply crafted header values that caused the consumer to deserialize arbitrary JDK types.\n\nAffected versions:\nSpring for Apache Kafka 4.0.0 through 4.0.5; 3.3.0 through 3.3.15; 3.2.0 through 3.2.13; 2.9.0 through 2.9.13; 2.8.0 through 2.8.11.","status":"published","published":"2026-06-09T23:49:26Z","modified":"2026-08-05T12:14:45Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T18:02:12.250261Z"}],"ghsa":[{"id":"GHSA-xq69-5h5v-x9x4","title":"In Spring for Apache Kafka, overly broad trusted-package matching in header mappers exposes JDK classes to deserialization","description":"JsonKafkaHeaderMapper and the deprecated DefaultKafkaHeaderMapper matched type headers against trusted packages using a prefix check, meaning that trusting any package implicitly trusted all of its subpackages. Combined with Jackson's default bean deserialization, a producer could supply crafted header values that caused the consumer to deserialize arbitrary JDK types.\n\nAffected versions:\nSpring for Apache Kafka 4.0.0 through 4.0.5; 3.3.0 through 3.3.15; 3.2.0 through 3.2.13; 2.9.0 through 2.9.13; 2.8.0 through 2.8.11.","status":"published","published":"2026-06-10T00:31:52Z","modified":"2026-06-12T21:51:09Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-502"],"updated_at":"2026-11-02T14:40:27.329706Z"}],"nvd":[{"id":"CVE-2026-41731","description":"JsonKafkaHeaderMapper and the deprecated DefaultKafkaHeaderMapper matched type headers against trusted packages using a prefix check, meaning that trusting any package implicitly trusted all of its subpackages. Combined with Jackson's default bean deserialization, a producer could supply crafted header values that caused the consumer to deserialize arbitrary JDK types.\n\nAffected versions:\nSpring for Apache Kafka 4.0.0 through 4.0.5; 3.3.0 through 3.3.15; 3.2.0 through 3.2.13; 2.9.0 through 2.9.13; 2.8.0 through 2.8.11.","status":"published","published":"2026-06-10T00:16:52.597Z","modified":"2026-08-05T13:22:14.22Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"secondary"},{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"secondary"}],"cwes":["CWE-502"],"updated_at":"2026-11-02T14:12:23.485267Z"}],"osv":[{"id":"CVE-2026-41731","title":"In Spring for Apache Kafka, overly broad trusted-package matching in header mappers exposes JDK classes to deserialization","description":"JsonKafkaHeaderMapper and the deprecated DefaultKafkaHeaderMapper matched type headers against trusted packages using a prefix check, meaning that trusting any package implicitly trusted all of its subpackages. Combined with Jackson's default bean deserialization, a producer could supply crafted header values that caused the consumer to deserialize arbitrary JDK types.\n\nAffected versions:\nSpring for Apache Kafka 4.0.0 through 4.0.5; 3.3.0 through 3.3.15; 3.2.0 through 3.2.13; 2.9.0 through 2.9.13; 2.8.0 through 2.8.11.","status":"published","published":"2026-06-09T23:49:26.535Z","modified":"2026-10-28T02:31:13.973953738Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-502"],"updated_at":"2026-11-02T15:45:03.764807Z"},{"id":"GHSA-xq69-5h5v-x9x4","title":"In Spring for Apache Kafka, overly broad trusted-package matching in header mappers exposes JDK classes to deserialization","description":"JsonKafkaHeaderMapper and the deprecated DefaultKafkaHeaderMapper matched type headers against trusted packages using a prefix check, meaning that trusting any package implicitly trusted all of its subpackages. Combined with Jackson's default bean deserialization, a producer could supply crafted header values that caused the consumer to deserialize arbitrary JDK types.\n\nAffected versions:\nSpring for Apache Kafka 4.0.0 through 4.0.5; 3.3.0 through 3.3.15; 3.2.0 through 3.2.13; 2.9.0 through 2.9.13; 2.8.0 through 2.8.11.","status":"published","published":"2026-06-10T00:31:52Z","modified":"2026-06-12T22:11:25.858397Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-502"],"updated_at":"2026-11-02T15:47:00.198893Z"},{"id":"ROOT-APP-MAVEN-CVE-2026-41731","title":"CVE-2026-41731 in org.springframework.kafka:spring-kafka - Patched by Root","description":"Root has patched CVE-2026-41731 in the org.springframework.kafka:spring-kafka package for Root:Maven. Multiple fixed versions available.","status":"published","published":"2026-09-22T08:10:59Z","modified":"2026-09-22T09:15:03.09931213Z","updated_at":"2026-11-02T15:53:27.066589Z"}]}}
