IPBUF安全漏洞报告
English
CVE-2026-43969 CVSS 3.2 低危

CVE-2026-43969 cowlib CRLF注入漏洞导致请求拆分

披露日期: 2026-05-11
来源: 6b3ad84c-e1a6-4bf7-a703-f496b71e49db

漏洞信息

漏洞编号
CVE-2026-43969
漏洞类型
CRLF注入
CVSS评分
3.2 低危
攻击向量
本地 (AV:L)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
ninenines cowlib

相关标签

CRLF注入cowlibHTTP请求拆分Cookie走私Erlang

漏洞概述

ninenines cowlib库存在CRLF注入漏洞。由于cow_cookie:cookie/1函数在构建Cookie请求头时未对名称和值进行验证,攻击者可注入控制字符。这可能导致HTTP请求拆分或Cookie走私攻击,影响应用安全性。受影响版本包括2.9.0及以上。

技术细节

该漏洞位于ninenines cowlib库的cow_cookie:cookie/1函数中。该函数用于将键值对序列化为客户端的Cookie请求头,但缺少对输入字段的有效性验证。具体而言,攻击者若能控制Cookie的名称或值,即可注入分号、逗号、CR(回车)、LF(换行)或TAB等特殊字符。虽然解码端函数(如parse_cookie_name/1)已具备校验机制,但编码端存在缺陷。利用此漏洞,攻击者可在单个头部内进行Cookie走私(如注入“; admin=1”伪造管理员身份),或通过CRLF注入拆分HTTP请求,追加任意头部或通过共享上游代理走私完整的第二个请求。

攻击链分析

STEP 1
侦察
识别使用ninenines cowlib库且版本大于等于2.9.0的目标应用。
STEP 2
构造载荷
攻击者准备包含CRLF(\r\n)序列的恶意Cookie名称或值,例如"admin\r\nX-Admin: true"。
STEP 3
注入
将恶意载荷发送至应用,应用调用cow_cookie:cookie/1函数处理该数据。
STEP 4
序列化
由于缺乏验证,函数将CRLF字符直接序列化到HTTP请求头中。
STEP 5
攻击执行
服务器端解析HTTP请求时,将注入的CRLF视为头部结束,从而执行Cookie走私或请求拆分攻击。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
% PoC for CVE-2026-43969 in cowlib % Demonstrates CRLF injection via cookie name -module(cve_2026_43969_poc). -export([test/0]). test() -> % Attacker controls the cookie name containing CRLF characters MaliciousName = <<"sessionid\r\nX-Injected-Header: pwned">>, Value = <<"12345">>, % Call the vulnerable cow_cookie:cookie/1 function % This function builds the header without validating the name CookieHeader = cow_cookie:cookie(#{MaliciousName => Value}), % Output the resulting header string io:format("Generated Cookie Header: ~p~n", [CookieHeader]), % Expected output will contain the injected newline: % <<"sessionid\r\nX-Injected-Header: pwned=12345">> ok.

影响范围

cowlib >= 2.9.0

防御指南

临时缓解措施
在无法立即升级的情况下,应在业务逻辑层面对所有用于构建Cookie的输入进行过滤,禁止CR、LF等字符进入cowlib的编码函数。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表