🇰🇷 한글 설명
pupnp SDK의 parse_hostport 함수가 공격자가 제공한 호스트네임을 처리할 때 getaddrinfo를 동기적으로 호출하여 발생합니다. 원격의 인증되지 않은 공격자가 응답이 느린 호스트네임을 사용하여 서버의 작업 스레드를 점유함으로써 서비스 거부(DoS)를 유발할 수 있습니다.
💡 쉬운 설명
공격자가 일부러 응답이 매우 느린 주소를 보내 서버가 그 주소를 확인하느라 계속 기다리게 만드는 공격입니다. 이로 인해 서버의 일꾼(스레드)들이 모두 멈춰버려 정상적인 서비스를 이용할 수 없게 됩니다.
🇺🇸 원문 (English)
pupnp is an SDK for development of UPnP device and control point applications. Prior to 22.0.4, parse_hostport in upnp/src/genlib/net/uri/uri.c synchronously calls getaddrinfo while parse_uri is processing attacker-supplied hostnames from inbound HTTP request targets in upnp/src/genlib/net/http/httpparser.c and GENA SUBSCRIBE CALLBACK headers handled by create_url_list in upnp/src/gena/gena_device.c. A remote unauthenticated peer can choose a slow or nonresponsive hostname and block a bounded miniserver worker for the resolver timeout, allowing a small number of requests to exhaust the thread pool and deny UPnP service. This issue is fixed in 22.0.4.
📍 영향받는 시스템
pupnp SDK 22.0.4 미만 버전
⚔️ 공격 벡터
원격에서 조작된 HTTP 요청 타겟 또는 GENA 헤더를 통한 호스트네임 주입
🛡️ 대응 방법
pupnp SDK를 22.0.4 버전 이상으로 업데이트
🔧 검증 코드
출력된 버전 번호가 22.0.4보다 낮은지 확인하십시오.
dpkg -l | grep pupnp 2>/dev/null | awk '{print $3}'
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
💻 영향받는 소프트웨어
Windows iSCSI Target Service