
Kemp LoadMaster 장치(펌웨어 7.2.60 미만)는 libkemplink.so 라이브러리의 isreverse() 및 locate_fqdn() 메서드에서 심각한 버퍼 오버플로 취약점을 앓고 있습니다. 이 취약점은 DNS 이름을 위해 할당된 256바이트 버퍼가 너무 작아서 발생하며, 특수 문자나 유니코드 문자가 포함된 특수하게 조작된 DNS 요청을 전송함으로써 악용될 수 있습니다.
성공적인 악용은 즉각적인 크래시 및 서비스 거부(DoS) 상태를 초래합니다. 스택 카나리 토큰이 존재하여 추가 악용을 방지하지만, 공격자가 스택 카나리 토큰을 유출할 다른 취약점을 찾는다면 원격 코드 실행(RCE) 가능성을 배제할 수 없습니다.
이 취약점은 LoadMaster 장치의 노출된 DNS 서비스에 TCP 또는 UDP를 통해 DNS 요청을 전송함으로써 쉽게 트리거됩니다. 간단한 개념 증명은 다음과 같습니다:
dig @kempdeviceip 😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀.com (일부 Linux 배포판에서는 +noidnout +noidnin을 추가해야 할 수 있습니다)
이 익스플로잇은 DNS 이름 확인 프로세스의 특정 단계를 활용합니다. 할당된 256바이트 버퍼는 네트워크를 통해 전송되는 DNS 이름의 표준 최대 크기이며, 개념 증명은 이 제한에 맞지만, 특수 문자와 유니코드 문자는 처리 중 이스케이프될 때 크기가 확장됩니다. 따라서 이스케이프 후의 버퍼 크기는 원래 할당량을 초과합니다. DNS 구성 요소가 포크된 Bind9 라이브러리의 문서와 소스 코드는 안전한 작동을 위해 최소 1004바이트 버퍼가 필요하며, 보수적으로는 1023바이트 버퍼를 권장합니다. 자세한 내용은 여기를 참조하십시오.
타임라인: