[하루한줄] CVE-2021-34423: Zooming in on Zero-click Exploits
URL
Zooming in on Zero-click Exploits
Target
Zoom for Linux version 5.4.6
Explain
Zoom 클라이언트는 영상통화 도중 수신한 체팅 메세지를 msg_db_t
인스턴스로부터 deserialize하기 위해 ssb::conf_send_msg_req::load_from
메소드를 사용합니다.
해당 메소드는 버퍼로 문자열을 읽어들이는 read_str_with_len
을 호출하는데, 문제는 버퍼를 할당할 때 msg_db_t
로 부터 읽어들인 길이 값과 그 버퍼에 복사할 문자열의 길이가 같은지 확인하지 않습니다.
int __fastcall ssb::i_stream_t<ssb::msg_db_t,ssb::bytes_convertor>::
read_str_with_len(msg_db_t* msg, signed __int8 *mem,
unsigned int *len)
{
if ( !msg->invalid )
{
ssb::i_stream_t<ssb::msg_db_t,ssb::bytes_convertor>::operator>>(msg, len, (int)len, 0);
if ( !msg->invalid )
{
if ( *len )
ssb::i_stream_t<ssb::msg_db_t,ssb::bytes_convertor>::
read(msg, mem, *len, 0);
}
}
return msg;
}
즉 해커가 msg_db_t
의 내용을 조작할 수 있다면 할당되는 버퍼의 크기를 원하는대로 조절할 수 있고 이를 overflow해 메모리를 오염시킬 수 있습니다.
본 글은 CC BY-SA 4.0 라이선스로 배포됩니다. 공유 또는 변경 시 반드시 출처를 남겨주시기 바랍니다.