🇰🇷 한글 설명
Coturn 4.17.0 미만 버전에서 turnports_allocate_even() 함수가 예약 비트(R=0)가 설정된 EVEN-PORT 할당 요청 시 사용되지 않는 홀수 포트를 TPS_TAKEN_ODD로 잘못 표시하는 취약점이 있습니다. 이로 인해 인증된 클라이언트가 릴레이 포트 풀을 영구적으로 고갈시켜 후속 할당 시 STUN 에러 508을 발생시킬 수 있습니다.
💡 쉬운 설명
인증된 사용자가 서버의 통신 통로(포트)를 가짜로 점유하여 다른 사용자가 사용하지 못하게 막는 공격입니다. 이 공격이 성공하면 서버의 통신 자원이 바닥나서 정상적인 서비스 이용이 불가능해집니다.
🇺🇸 원문 (English)
Coturn is a free open source implementation of TURN and STUN Server. Prior to 4.17.0, turnports_allocate_even() in src/apps/relay/turn_ports.c marks the unused odd sibling port as TPS_TAKEN_ODD for an EVEN-PORT Allocate request with reservation bit R=0 even though no RTCP socket will release it, allowing an authenticated client to permanently exhaust the relay port pool and cause subsequent allocations to fail with STUN error 508. This issue is fixed in version 4.17.0.
📍 영향받는 시스템
Coturn 4.17.0 미만 모든 버전
⚔️ 공격 벡터
인증된 클라이언트가 특정 조건의 EVEN-PORT 할당 요청을 반복하여 포트 자원을 고갈시킴
🛡️ 대응 방법
Coturn를 4.17.0 이상의 버전으로 업데이트
🔧 검증 코드
출력된 버전 번호가 4.17.0보다 낮으면 취약한 상태입니다.
coturn --version 2>/dev/null || dpkg -l | grep coturn | awk '{print $3}'