{"id":"CVE-2026-59317","aliases":["CLSA-2026-1792408723","CLSA-2026-1792411688","CLSA-2026-1792417151","CLSA-2026-1792590657","CLSA-2026-1792686647","CLSA-2026-1793720331","CLSA-2026-1793728180","CLSA-2026-1793883738","CLSA-2026-1793883976","CLSA-2026-1793885501","CLSA-2026-1793885795","CLSA-2026-1793887316","EUVD-2026-67199","GHSA-v648-fvf7-jrg2"],"status":"published","title":"In Spring for Apache Kafka, missing header validation in DeadLetterPublishingRecovererFactory enables denial of service via a poison-pill loop","description":"DeadLetterPublishingRecovererFactory reads the retry_topic-original-timestamp header from an inbound ConsumerRecord and passes its raw bytes directly to new BigInteger(header.value()) with no length or format validation.\nSpring for Apache Kafka 4.1.0\nSpring for Apache Kafka 4.0.0 - 4.0.6\nSpring for Apache Kafka 3.0.0 - 3.3.16\nSpring for Apache Kafka 2.9.0 - 2.9.14\nSpring for Apache Kafka 2.8.12 and earlier","severity":{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-11","score":0.0042,"percentile":0.36778,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-1284"],"published":"2026-08-27T18:04:46Z","modified":"2026-11-06T13:15:21Z","fixes":[{"ecosystem":"TuxCare:Maven","package":"org.springframework.kafka:spring-kafka","fixed_in":["2.7.14-tuxcare.2"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"TuxCare:Maven","package":"org.springframework.kafka:spring-kafka","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.3.16"},{"fixed":"3.3.16-tuxcare.1"}]}],"versions":["3.3.16"],"bundled":2},{"source":"osv","ecosystem":"TuxCare:Maven","package":"org.springframework.kafka:spring-kafka","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.9.13"},{"fixed":"2.9.13-tuxcare.2"}]}],"versions":["2.9.13","2.9.13-tuxcare.1"],"bundled":2},{"source":"osv","ecosystem":"TuxCare:Maven","package":"org.springframework.kafka:spring-kafka","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.8.11"},{"fixed":"2.8.11-tuxcare.2"}]}],"versions":["2.8.11","2.8.11-tuxcare.1"],"bundled":2},{"source":"osv","ecosystem":"TuxCare:Maven","package":"org.springframework.kafka:spring-kafka","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.7.14"},{"fixed":"2.7.14-tuxcare.2"}]}],"versions":["2.7.14","2.7.14-tuxcare.1"]},{"source":"osv","ecosystem":"TuxCare:Maven","package":"org.springframework.kafka:spring-kafka","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.3.11"},{"fixed":"3.3.11-tuxcare.2"}]}],"versions":["3.3.11","3.3.11-tuxcare.1"],"bundled":2},{"source":"osv","ecosystem":"TuxCare:Maven","package":"org.springframework.kafka:spring-kafka","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.0.13"},{"fixed":"3.0.13-tuxcare.3"}]}],"versions":["3.0.13","3.0.13-tuxcare.1","3.0.13-tuxcare.2"],"bundled":2},{"source":"osv","ecosystem":"TuxCare:Maven","package":"org.springframework.kafka:spring-kafka","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.1.10"},{"fixed":"3.1.10-tuxcare.3"}]}],"versions":["3.1.10","3.1.10-tuxcare.1","3.1.10-tuxcare.2"],"bundled":2},{"source":"osv","ecosystem":"TuxCare:Maven","package":"org.springframework.kafka:spring-kafka","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.8.5"},{"fixed":"2.8.5-tuxcare.1"}]}],"versions":["2.8.5"],"bundled":3},{"source":"osv","ecosystem":"TuxCare:Maven","package":"org.springframework.kafka:spring-kafka","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.8.6"},{"fixed":"2.8.6-tuxcare.1"}]}],"versions":["2.8.6"],"bundled":3},{"source":"osv","ecosystem":"TuxCare:Maven","package":"org.springframework.kafka:spring-kafka","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.1.5"},{"fixed":"3.1.5-tuxcare.2"}]}],"versions":["3.1.5","3.1.5-tuxcare.1"],"bundled":3},{"source":"osv","ecosystem":"TuxCare:Maven","package":"org.springframework.kafka:spring-kafka","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.2.9"},{"fixed":"3.2.9-tuxcare.2"}]}],"versions":["3.2.9","3.2.9-tuxcare.1"],"bundled":3},{"source":"osv","ecosystem":"TuxCare:Maven","package":"org.springframework.kafka:spring-kafka","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.2.10"},{"fixed":"3.2.10-tuxcare.4"}]}],"versions":["3.2.10","3.2.10-tuxcare.1","3.2.10-tuxcare.2","3.2.10-tuxcare.3"],"bundled":3}],"products":[{"vendor":"spring","product":"spring for apache kafka"},{"vendor":"vmware","product":"spring_for_apache_kafka"}],"references":[{"url":"https://spring.io/security/cve-2026-59317","tags":["Vendor Advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-59317","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-v648-fvf7-jrg2"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/59xxx/CVE-2026-59317.json","tags":["advisory"]}],"sources":{"cve":[{"id":"CVE-2026-59317","title":"In Spring for Apache Kafka, missing header validation in DeadLetterPublishingRecovererFactory enables denial of service via a poison-pill loop","description":"DeadLetterPublishingRecovererFactory reads the retry_topic-original-timestamp header from an inbound ConsumerRecord and passes its raw bytes directly to new BigInteger(header.value()) with no length or format validation.\nSpring for Apache Kafka 4.1.0\nSpring for Apache Kafka 4.0.0 - 4.0.6\nSpring for Apache Kafka 3.0.0 - 3.3.16\nSpring for Apache Kafka 2.9.0 - 2.9.14\nSpring for Apache Kafka 2.8.12 and earlier","status":"published","published":"2026-08-27T18:04:46.006Z","modified":"2026-08-28T22:47:09.357Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium","assessor":"cna"}],"cwes":["CWE-1284"],"updated_at":"2026-11-02T14:19:58.560602Z"}],"euvd":[{"id":"EUVD-2026-67199","description":"DeadLetterPublishingRecovererFactory reads the retry_topic-original-timestamp header from an inbound ConsumerRecord and passes its raw bytes directly to new BigInteger(header.value()) with no length or format validation.\nSpring for Apache Kafka 4.1.0\nSpring for Apache Kafka 4.0.0 - 4.0.6\nSpring for Apache Kafka 3.0.0 - 3.3.16\nSpring for Apache Kafka 2.9.0 - 2.9.14\nSpring for Apache Kafka 2.8.12 and earlier","status":"published","published":"2026-08-27T18:04:46Z","modified":"2026-08-28T22:47:09Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-02T18:01:22.342607Z"}],"ghsa":[{"id":"GHSA-v648-fvf7-jrg2","title":"DeadLetterPublishingRecovererFactory reads the retry_topic-original-timestamp header from an...","description":"DeadLetterPublishingRecovererFactory reads the retry_topic-original-timestamp header from an inbound ConsumerRecord and passes its raw bytes directly to new BigInteger(header.value()) with no length or format validation.\nSpring for Apache Kafka 4.1.0\nSpring for Apache Kafka 4.0.0 - 4.0.6\nSpring for Apache Kafka 3.0.0 - 3.3.16\nSpring for Apache Kafka 2.9.0 - 2.9.14\nSpring for Apache Kafka 2.8.12 and earlier","status":"published","published":"2026-08-27T21:31:49Z","modified":"2026-08-29T00:30:57Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"cwes":["CWE-1284"],"updated_at":"2026-11-02T15:11:08.705354Z"}],"nvd":[{"id":"CVE-2026-59317","description":"DeadLetterPublishingRecovererFactory reads the retry_topic-original-timestamp header from an inbound ConsumerRecord and passes its raw bytes directly to new BigInteger(header.value()) with no length or format validation.\nSpring for Apache Kafka 4.1.0\nSpring for Apache Kafka 4.0.0 - 4.0.6\nSpring for Apache Kafka 3.0.0 - 3.3.16\nSpring for Apache Kafka 2.9.0 - 2.9.14\nSpring for Apache Kafka 2.8.12 and earlier","status":"published","published":"2026-08-27T20:17:57.797Z","modified":"2026-09-04T19:21:37.703Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium","assessor":"secondary"}],"cwes":["CWE-1284"],"updated_at":"2026-11-02T14:12:42.035353Z"}],"osv":[{"id":"CVE-2026-59317","title":"In Spring for Apache Kafka, missing header validation in DeadLetterPublishingRecovererFactory enables denial of service via a poison-pill loop","description":"DeadLetterPublishingRecovererFactory reads the retry_topic-original-timestamp header from an inbound ConsumerRecord and passes its raw bytes directly to new BigInteger(header.value()) with no length or format validation.\nSpring for Apache Kafka 4.1.0\nSpring for Apache Kafka 4.0.0 - 4.0.6\nSpring for Apache Kafka 3.0.0 - 3.3.16\nSpring for Apache Kafka 2.9.0 - 2.9.14\nSpring for Apache Kafka 2.8.12 and earlier","status":"published","published":"2026-08-27T18:04:46.006Z","modified":"2026-10-28T02:30:41.938097377Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-02T15:45:12.496548Z"},{"id":"CLSA-2026-1792408723","title":"TuxCare security update for org.springframework.kafka:spring-kafka (2 CVEs)","description":"TuxCare rebuilt org.springframework.kafka:spring-kafka to address 2 CVEs. Fixed in 3.3.16-tuxcare.1.","status":"published","published":"2026-10-19T11:18:43Z","modified":"2026-10-30T13:30:02.508003311Z","updated_at":"2026-11-02T15:43:54.119956Z"},{"id":"CLSA-2026-1792411688","title":"TuxCare security update for org.springframework.kafka:spring-kafka (2 CVEs)","description":"TuxCare rebuilt org.springframework.kafka:spring-kafka to address 2 CVEs. Fixed in 2.9.13-tuxcare.2.","status":"published","published":"2026-10-19T12:08:08Z","modified":"2026-10-30T13:30:04.840010329Z","updated_at":"2026-11-02T15:43:54.119956Z"},{"id":"CLSA-2026-1792417151","title":"TuxCare security update for org.springframework.kafka:spring-kafka (2 CVEs)","description":"TuxCare rebuilt org.springframework.kafka:spring-kafka to address 2 CVEs. Fixed in 2.8.11-tuxcare.2.","status":"published","published":"2026-10-19T13:39:11Z","modified":"2026-10-30T13:30:06.876642292Z","updated_at":"2026-11-02T15:43:54.119956Z"},{"id":"CLSA-2026-1792590657","title":"TuxCare security update for org.springframework.kafka:spring-kafka (1 CVE)","description":"TuxCare rebuilt org.springframework.kafka:spring-kafka to address 1 CVE. Fixed in 2.7.14-tuxcare.2.","status":"published","published":"2026-10-21T13:50:57Z","modified":"2026-10-30T13:30:03.61110381Z","updated_at":"2026-11-02T15:43:54.672859Z"},{"id":"CLSA-2026-1792686647","title":"TuxCare security update for org.springframework.kafka:spring-kafka (2 CVEs)","description":"TuxCare rebuilt org.springframework.kafka:spring-kafka to address 2 CVEs. Fixed in 3.3.11-tuxcare.2.","status":"published","published":"2026-10-22T16:30:47Z","modified":"2026-10-30T07:30:48.938982829Z","updated_at":"2026-11-02T15:43:54.981307Z"},{"id":"CLSA-2026-1793720331","title":"TuxCare security update for org.springframework.kafka:spring-kafka (2 CVEs)","description":"TuxCare rebuilt org.springframework.kafka:spring-kafka to address 2 CVEs. Fixed in 3.0.13-tuxcare.3.","status":"published","published":"2026-11-03T16:38:52Z","modified":"2026-11-03T19:30:03.813456351Z","updated_at":"2026-11-03T20:03:57.215693Z"},{"id":"CLSA-2026-1793728180","title":"TuxCare security update for org.springframework.kafka:spring-kafka (2 CVEs)","description":"TuxCare rebuilt org.springframework.kafka:spring-kafka to address 2 CVEs. Fixed in 3.1.10-tuxcare.3.","status":"published","published":"2026-11-03T18:49:41Z","modified":"2026-11-04T02:30:03.821104826Z","updated_at":"2026-11-04T02:55:01.518827Z"},{"id":"CLSA-2026-1793883738","title":"TuxCare security update for org.springframework.kafka:spring-kafka (3 CVEs)","description":"TuxCare rebuilt org.springframework.kafka:spring-kafka to address 3 CVEs. Fixed in 2.8.5-tuxcare.1.","status":"published","published":"2026-11-05T14:02:19Z","modified":"2026-11-06T13:15:09.696373768Z","updated_at":"2026-11-06T13:44:21.739016Z"},{"id":"CLSA-2026-1793883976","title":"TuxCare security update for org.springframework.kafka:spring-kafka (3 CVEs)","description":"TuxCare rebuilt org.springframework.kafka:spring-kafka to address 3 CVEs. Fixed in 2.8.6-tuxcare.1.","status":"published","published":"2026-11-05T14:06:17Z","modified":"2026-11-06T13:15:14.17841743Z","updated_at":"2026-11-06T13:44:09.891978Z"},{"id":"CLSA-2026-1793885501","title":"TuxCare security update for org.springframework.kafka:spring-kafka (3 CVEs)","description":"TuxCare rebuilt org.springframework.kafka:spring-kafka to address 3 CVEs. Fixed in 3.1.5-tuxcare.2.","status":"published","published":"2026-11-05T14:31:42Z","modified":"2026-11-06T13:15:21.614306016Z","updated_at":"2026-11-06T13:44:09.891978Z"},{"id":"CLSA-2026-1793885795","title":"TuxCare security update for org.springframework.kafka:spring-kafka (3 CVEs)","description":"TuxCare rebuilt org.springframework.kafka:spring-kafka to address 3 CVEs. Fixed in 3.2.9-tuxcare.2.","status":"published","published":"2026-11-05T14:36:36Z","modified":"2026-11-06T13:15:13.441399421Z","updated_at":"2026-11-06T13:44:09.891978Z"},{"id":"CLSA-2026-1793887316","title":"TuxCare security update for org.springframework.kafka:spring-kafka (3 CVEs)","description":"TuxCare rebuilt org.springframework.kafka:spring-kafka to address 3 CVEs. Fixed in 3.2.10-tuxcare.4.","status":"published","published":"2026-11-05T15:01:57Z","modified":"2026-11-06T13:15:08.681733781Z","updated_at":"2026-11-06T13:44:21.739016Z"}]}}
