🇰🇷 한글 설명
dhcpcd 10.3.2 이하 버전에는 힙 use-after-free 취약점이 존재하며, 커밋 5733d3c에서 수정되었습니다. 같은 링크에 있는 인증되지 않은 공격자가 RFC6603 OPTION_PD_EXCLUDE와 0으로 설정된 생존 시간이 포함된 조작된 DHCPv6 RENEW 응답을 보내 데몬을 충돌시킬 수 있습니다. dhcp6_deprecateaddrs() 내부의 반복자가 해제된 포인터를 참조하면서 TAILQ_REMOVE 단계에서 해제된 메모리에 접근합니다.
💡 쉬운 설명
같은 네트워크에 있는 공격자가 가짜 DHCPv6 서버처럼 행동하는 잘못된 응답을 보내면 IP 주소를 관리하는 dhcpcd 프로그램이 멈출 수 있습니다. 이로 인해 네트워크 연결 관리에 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
dhcpcd through 10.3.2, fixed in commit 5733d3c, contains a heap use-after-free vulnerability that allows unauthenticated same-link attackers to crash the daemon by sending a crafted DHCPv6 RENEW reply with RFC6603 OPTION_PD_EXCLUDE and both preferred and valid lifetimes set to zero. Attackers acting as or impersonating a DHCPv6 server can trigger dhcp6_deprecatedele() to free a delegated child address while an outer TAILQ_FOREACH_SAFE iterator in dhcp6_deprecateaddrs() still holds the freed pointer, causing a use-after-free when TAILQ_REMOVE is reached.
📍 영향받는 시스템
dhcpcd 10.3.2 이하 버전 (커밋 5733d3c 적용 전)
⚔️ 공격 벡터
같은 네트워크 링크의 공격자가 조작된 DHCPv6 RENEW 응답을 전송하여 데몬 충돌 유발
🛡️ 대응 방법
dhcpcd를 커밋 5733d3c가 포함된 최신 버전으로 업데이트
🔧 검증 코드
출력된 버전이 10.3.2 이하이면 취약하며, 수정 커밋이 포함된 이후 버전이면 패치된 것입니다.
dhcpcd --version 2>/dev/null | head -n 1