CVE-2026-42545Granian是一个为Python应用程序设计的Rust HTTP服务器。在0.2.0至2.7.4之前的版本中存在一个安全漏洞,当WSGI应用程序返回包含无效名称或值的HTTP响应头时,Granian会强制中止其工作进程。漏洞成因是WSGI响应转换路径在处理头部数据时使用了`.unwrap()`方法,导致应用程序输出的畸形数据直接引发进程崩溃(panic)而不是被捕获为可处理的错误,攻击者可利用此漏洞造成拒绝服务。
该漏洞源于Granian在处理WSGI应用响应时的错误处理机制缺失。具体而言,在WSGI响应转换路径中,代码直接对Header Name和Header Value的构造函数调用了`.unwrap()`方法。在Rust语言中,当构造函数接收到非法输入(例如包含空字节、换行符等控制字符)时,会返回Result类型的Err值。`.unwrap()`在遇到Err时会直接触发panic,导致当前线程崩溃。由于这是在处理响应头时发生的,会导致Granian的工作进程意外退出。虽然这通常不会导致数据泄露,但会导致服务可用性中断,符合CVSS向量中可用性影响为高的描述。攻击者只需能触发WSGI应用返回畸形头部即可利用此漏洞。