本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
【腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云
以前,我们说 Log4j、Fastjson 是漏洞之王。现在 AI 来了,发现几乎主流框架都成了漏洞之王。
这其中的原因就是,AI 发现漏洞太快, 而且找的还很准确。这不,今天我突然发现 Netty 也更新了一个新版本,一次发版修了 22 个漏洞,10 个内存耗尽、3 个 DNS 投毒。
由于漏洞太多了,官方一次发不了两个版本,Netty 4.2.15.Final 和 4.1.135.Final。根据官方 Release Note 可知,4.2.15 版本共修复了 22 个 CVE,其中多个被评为高危(High)级别,涵盖内存耗尽、DNS 缓存中毒、请求走私、TLS 绕过等经典攻击向量。
值得注意的是,这已经是 2026 年以来 Netty 第三次大规模安全更新。早在 4 月份的 4.2.13、4.1.133 版本中,就已经修复了 13 个 CVE;而最近的这次更新,漏洞数量和严重程度都再创新高。
这次到底修了什么?
我将 22 个 CVE 按攻击类型分类,方便大家快速定位风险,下面分别展开看看。
文章配图参见 https://mp.weixin.qq.com/s/8VkJz2tM89DsCc0_Jb-2og。
内存耗尽类(DoS)
这是本次更新最密集的漏洞类型,属于重灾区,共涉及10 个 CVE。
| CVE 编号 | 影响模块 | 核心风险 |
|---|---|---|
| CVE-2026-48059 | netty-codec-haproxy | HAProxy 协议解析内存泄漏 |
| CVE-2026-44893 | netty-codec-haproxy | SSL TLV 解析导致内存泄漏 |
| CVE-2026-50011 | netty-codec-redis | Redis 数组聚合器无限嵌套 |
| CVE-2026-44250 | netty-codec-redis | 同上 |
| CVE-2026-44890 | netty-codec-redis | 同上 |
| CVE-2026-48006 | netty-codec-redis | 同上 |
| CVE-2026-44892 | netty-codec-http3 | HTTP/3 内存耗尽 |
| CVE-2026-48748 | netty-codec-http3 | 同上 |
| CVE-2026-48043 | netty-codec-http2 | HTTP/2 内存耗尽 |
| CVE-2026-46340 | netty-transport-sctp | SCTP 消息碎片耗尽内存 |
就拿 CVE-2026-48059 来说,HAProxy PROXY 协议 v2 解码器在处理嵌套的PP2_TYPE_SSL TLV 时,存在引用计数泄漏。攻击者发送特制的嵌套 SSL 类型记录,会导致底层ByteBuf被永久固定(pinned),无法回收到内存池。由于 Netty 默认使用池化直接内存,这种泄漏会逐步耗尽 JVM 的直接内存配额,最终触发 OOM 导致服务不可用。
DNS 缓存中毒
有三个 DNS 相关 CVE 构成了完整的 Kaminsky 攻击链,这是一类隐蔽且危险的漏洞。
- CVE-2026-47691(高危)
- CVE-2026-45673
- CVE-2026-45674(高危)
这类漏洞产生的主要原因是 Netty 的 DNS 解析器使用了可预测的伪随机数生成器(PRNG)生成 DNS 事务 ID,且默认使用静态 UDP 源端口。这大大降低了 DNS 查询的熵值,使攻击者能够伪造 DNS 响应,污染解析缓存,将流量劫持到恶意服务器。
请求走私与协议绕过
对应的漏洞如下表格所示。
| CVE 编号 | 影响模块 | 攻击场景 |
|---|---|---|
| CVE-2026-50020 | netty-codec-http | HTTP/1.1 请求走私 |
| CVE-2026-44249 | netty-handler | IPv6 子网规则绕过 |
| CVE-2026-50010 | netty-handler | TLS 主机名验证被静默禁用 |
这其中 CVE-2026-44249 非常值得警惕。由于IpSubnetFilterRule.compareTo()中的掩码操作错误,合法的公网 IPv6 地址可以绕过子网过滤规则。这意味着基于 IP 白名单的访问控制可能完全失效。
其他高危漏洞
除了上面所说的之外,还有下面 4 个高危漏洞。
- CVE-2026-50560(HTTP/2 DDoS):利用 HTTP/2 流控制机制,单客户端可快速耗尽服务器内存
- CVE-2026-44894(QUIC 流量放大):QUIC 协议实现中的流量放大漏洞
- CVE-2026-45416(SNIHandler 内存过量):TLS SNI 处理中的内存分配失控
- CVE-2026-45536(文件描述符泄漏):epoll/kqueue 传输层的 fd 泄漏
除了安全,还有什么?
如果有网友还在使用 4.1.x 版本,除了安全修复,4.2 主线版本还带来了下面这些值得关注的架构改进。
自适应内存分配器
Netty 4.2 将实验性的自适应分配器 AdaptiveByteBufAllocator 提升为默认选项,替代了传统的池化分配器。它能够:
- 根据工作负载自动调整内存分配策略
- 与 Java 虚拟线程(Virtual Threads)更好地协同工作
- 在多数场景下降低内存占用,提升吞吐量
不过官方也很坦诚,某些特定负载下,自适应分配器可能表现不如池化分配器。如果升级后观察到 GC 压力增大,可以通过-Dio.netty.allocator.type=pooled回退到传统模式。
io_uring 正式毕业
Linux 高性能异步 I/O 机制 io_uring 从“孵化器”模块正式成为一等公民。
- 包名从
io.netty.incubator.channel.uring变为io.netty.channel.uring - 类名前缀统一为
IoUring(注意大小写变化) - 需要 Java 9+ 支持
根据 Cassandra 等项目的测试,io_uring 相比 epoll 能显著减少系统调用次数,提升 I/O 密集型应用的性能。
统一事件循环组
除此之外,新的 4.2 版本还打破了 4.1 版本中 EventLoopGroup 与传输实现的紧耦合,统一了事件循环组(MultiThreadIoEventLoopGroup)。
// 4.1 时代
new EpollEventLoopGroup();
// 4.2 时代
new MultiThreadIoEventLoopGroup(EpollIoHandler.newFactory());
这种设计让监控和定制更加灵活,可以精确统计每个 EventLoop 的 I/O 处理时间、任务处理时间、注册的 Channel 数量等指标。
Netty 还稳吗?
面对密集的安全更新,Netty 还可靠吗?是否值得继续投入?
这点别慌,Netty 的核心维护者 Norman Maurer(Apple 杰出工程师)和 Chris Vest 等核心成员持续活跃。而且从 GitHub 提交记录看,2026 年以来 Norman Maurer 个人就提交了数十个安全修复 PR,响应速度极快。
况且,Netty 的生态根基深厚,它仍是 Java 高性能网络编程的事实标准。
- 数据库:Cassandra、Elasticsearch
- 消息队列:RocketMQ
- RPC 框架:gRPC、Dubbo
- 响应式框架:Spring WebFlux、Vert.x
- 云原生:Micronaut、Quarkus
目前,Spring Boot 4.1.0、Micronaut 5.0.2 等主流框架已率先升级至 Netty 4.2.15。但这也意味着,Netty 一段出事,影响范围非常广。
总结
Netty 4.2.15 的发布,既是一次安全补丁的集中爆发,也是 4.2 架构成熟度的验证。对于生产环境,官方建议:
- 两周内完成升级:涉及内存耗尽和 DNS 中毒的 CVE 均为高危,且部分已有公开利用细节
- 优先检查 Redis/HAProxy 模块:如果你的服务使用了这些协议,风险敞口最大
- 4.1 用户建议规划迁移:官方已明确 4.1 仅接收 bug 修复,新特性只在 4.2 发展
- 升级后重点监控:直接内存使用量、GC 频率、TLS 连接错误率
AI 这波狂潮,带来了巨量的漏洞被发现。短时间内,给社区和相关生态,以及程序员等都带来了不小冲击。别的不说,看看今天的股市就知道了 🤣。

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!
本文原文出处:业余草: » Netty 4.2.15 紧急发布,22 个 CVE 漏洞,10 个内存耗尽、3 个 DNS 投毒