libelf 0.8.12에서 gmo2msg 함수 내 lang 인자에 대한 무제한 sprintf 사용으로 인한 스택 기반 버퍼 오버플로우
"Ron E가 2022년 9월 22일에 libelf의 gmo2msg에서 게시한 글입니다. 이 글은 po/gmo2msg.c 파일에 스택 기반 버퍼 오버플로우가 있음을 설명합니다. 이 문제는 프로그램의 첫 번째 인수인 'lang'에서 파일 이름을 구성할 때 발생합니다. 프로그램은 고정 크기 로컬 버퍼(char buf[1024])를 사용하며, 'lang'의 길이를 검증하지 않고 sprintf(buf, "%s.gmo", lang) 및 sprintf(buf, "%s.msg", lang)를 사용하여 버퍼에 씁니다. 충분히 긴 'lang' 인수를 제공하면(예: 약 1200바이트) sprintf가 버퍼 끝을 넘어서 쓰게 됩니다..."