Netty框架HTTP请求走私漏洞深度解析与实战修复方案
漏洞背景与影响范围
HTTP请求走私(HTTP Request Smuggling)是一种利用服务器与代理之间解析差异的安全漏洞。Netty作为高性能网络框架的代表,其4.1.124.Final至4.2.4.Final版本中存在一个关键解析缺陷——对HTTP/1.1分块编码的换行符处理不当。具体表现为:
- 标准要求:HTTP/1.1规范明确规定块大小行必须以CRLF(
\r\n)终止 - 漏洞表现:受影响版本错误接受单独LF(
\n)作为终止符 - 攻击场景:当Netty部署在解析规则不同的反向代理(如Nginx、HAProxy)后方时
影响版本对照表:
| 分支版本 | 受影响范围 | 安全版本 |
|---|---|---|
| 4.1.x | < 4.1.125.Final | 4.1.125.Final |
| 4.2.x | 4.2.0.Alpha3 - 4.2.4.Final | 4.2.5.Final |
漏洞原理与技术细节
HTTP分块传输机制解析
正常HTTP分块传输格式示例:
POST /api HTTP/1.1
Transfer-Encoding: chunked
3\r\n
abc\r\n
0\r\n
\r\n
漏洞利用关键在于构造非常规终止符:
3\n <-- 单独LF终止
xyz\n
0\n
\n
代理差异攻击模型
- 前端代理:严格遵循RFC标准,将LF终止视为非法请求
- 后端Netty:错误接受LF终止,导致请求边界识别错位
- 走私效果:代理认为是一个请求,Netty解析为两个独立请求
关键风险:攻击者可利用此差异绕过安全控制,实施未授权访问或数据窃取

&spm=1001.2101.3001.5002&articleId=155010357&d=1&t=3&u=28b42a9795a54657ab23da779632c024)
201

被折叠的 条评论
为什么被折叠?



