Quicly는 주로 H2O HTTP 서버 내에서 사용하기 위한 IETF QUIC 프로토콜 구현입니다. 8b178e6 커밋 이전에 Quicly는 연결 상태 손상을 통한 서비스 거부 공격에 취약했습니다. QUIC Invariants에서 연결 ID의 최대 길이는 255바이트인 반면, QUIC 버전 1에서는 최대 길이를 20바이트로 추가로 제한합니다. QUIC 버전 1을 신속하게 구현하므로 CID 버퍼가 20바이트로 제한됩니다. 하지만 알려지지 않은 QUIC 버전에 대응하려면
Quicly는 주로 H2O HTTP 서버 내에서 사용하기 위한 IETF QUIC 프로토콜 구현입니다. 8b178e6 커밋 이전에 Quicly는 연결 상태 손상을 통한 서비스 거부 공격에 취약했습니다. QUIC Invariants에서 연결 ID의 최대 길이는 255바이트인 반면, QUIC 버전 1에서는 최대 길이를 20바이트로 추가로 제한합니다. QUIC 버전 1을 신속하게 구현하므로 CID 버퍼가 20바이트로 제한됩니다. 그러나 알 수 없는 버전의 QUIC에 응답할 수 있도록 해당 패킷 디코더는 최대 255바이트의 연결 ID를 허용합니다. CID 버퍼의 길이는 20바이트에 불과하므로 Quicly는 연결 ID가 그보다 긴 QUIC 버전 1 패킷을 거부해야 합니다. Quicly와 함께 번들로 제공되는 명령줄 도구에는 해당 검사가 포함되어 있지만 라이브러리 자체에는 이러한 시행이 부족했습니다. 결과적으로 자체 적용이 부족한 응용 프로그램에서 사용하면 연결 상태가 일관되지 않아 버퍼 오버런이 발생합니다. 다행스럽게도 할당된 메모리 청크 내에서 오버플로가 중지되지만 그럼에도 불구하고 버그로 인해 어설션 오류가 발생합니다. 이 문제는 커밋 8b178e6으로 해결되었습니다.
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도 | 75.00 |
| 악용 신호(추가 악용신호 없음) | ×1.00 |
| VPI | 75.00 |
VPI 공식 vpi-v1 기준