보안 연구원인 Armin Razmjou는 유명 텍스트 편집기인 Vim과 Neovim에서 심각한 임의 OS 명령어 실행 취약점(CVE-2019-12735)을 발견했다고 발표했다.
Vim 편집기는 사용자들이 리눅스 시스템에서 텍스트, 프로그래밍 스크립트, 문서를 포함한 모든 파일을 생성하고 열람하거나 편집할 수 있도록 도와준다.
Neovim은 사용자 경험, 플러그인, GUI가 개선된 Vim의 확장 버전이기 때문에 Vim과 동일하게 코드 실행 취약점이 존재한다.
Razmjou는 Vim 편집기가 ‘modelines’를 처리하는 과정에서 해당 취약점을 발견했다고 전했다.
Modelines는 문서의 시작 및 마지막 라인 근처에 파일의 제작자가 언급한 커스텀 설정 세트를 자동으로 찾아 적용하는 기능으로 기본으로 활성화되어 있다.
만약 편집기가 보안상의 이유로 modelines의 옵션 서브셋만을 허용하고 안전하지 않은 수식을 포함한다면, 샌드박스 보호를 사용하고 있지만 ":source!"명령어([!] 변경자)를 사용해 샌드박스를 우회할 수 있다.
따라서 Vim이나 Neovim을 통해 특수하게 제작된 파일을 오픈하는 것만으로 공격자가 피해자의 리눅스 시스템에서 은밀히 명령을 실행하고 제어권을 탈취할 수 있다.
해당 연구원은 PoC 익스플로잇 2개도 공개했는데, 이 중 하나는 피해자가 파일을 오픈하는 순간 원격 공격자가 피해자 시스템의 리버스 셸에 접근할 수 있는 실제 공격 시나리오다.
Vim(8.1.1365) 및 Neovim(v0.3.6) 개발자는 문제 해결을 위한 업데이트를 공개했으며, Vim과 Neovim을 사용하는 사용자들께서는 가능한 한 빨리 해당 업데이트를 설치할 것을 권고했다.
이 외에도 연구원은 해당 취약점 예방을 위해 △Modelines 기능 비활성화 △Modeline의 수식을 비활성화하기 위하여 "Modelineexpr" 비활성화 △Vim modelines의 안전한 대안인 "securemodelines plugin" 사용 등을 추천했다.
★정보보안 대표 미디어 데일리시큐!★