악성 파일을 여는 동안 빔과 Neovim 편집자의 취약점으로 인한 코드 실행에 이르게

텍스트 편집기의 빔과 Neovim의 취약점을 발견 (CVE-2019-12735), 이는 특별히 설계 파일을 여는 동안 임의의 코드를 실행하는 것을 허용.

그는 문제는 기본적으로 활성화 modeline 줄의 활동 자체 명단 (“: 패턴 설정“), 어떤 파일이 처리되지에서 편집 옵션을 정의 할 수있게. 취약점에 제거 정력 8.1.1365권한이없는 0.3.6 출시.

modeline 줄을 통해, 옵션의 허용 제한된 수. 표현식은 옵션 값으로 지정된 경우, 이것은 샌드 모드에서 실행될, 이는 가장 단순한 안전 작업을 사용 할 수 있습니다.

동시에, 그만큼 “: 출처” 명령은 그 안에 사용할 수 있습니다 “!” 수정은 지정된 파일에서 임의의 명령을 실행하는. 그러므로, 코드를 실행합니다, modeline 줄 라인 형태의 구성을 나타내는 데에 충분한 “실행 = foldexpr 설정 (': 출처! 'Some_file):“. Neovim에서, 실행 통화는 금지되어 있습니다, 그러나 assert_fails 대신 사용할 수 있습니다.

예를 들면, 실행하다 “끝나면 uname -a” 명령, 단순히 빔 또는 Neovim에서 파일을 엽니 다, 의 첫 번째 또는 마지막 행은 말한다:

:!uname -a||" vi:fen:fdm=expr:fde=assert_fails("source\!\ \%"):fdl=0:fdt="

그만큼 “출처!%” COMAND 현재 파일에서 명령을 읽어와, 따라서, 실행 “:! 끝나면 uname -a“. 고양이 유틸리티 출력에서이 줄을 숨기려면, 이스케이프 시퀀스를 사용할 수 있습니다.

예를 들면, 에서 이 프로토 타입 의 정력에있는 파일의 작업 중 이용, 피해자의 시스템에 쉘 액세스 만든 네트워크 연결, 고양이 유틸리티를 사용하여 터미널에 출력 할 때하지만이 파일은 혐의가 발생하지 않습니다.

당신은을 사용하여 modeline 줄 활동을 확인하실 수 있습니다 “: 패턴 설정?” 명령. 의 vimrc를 사용하지 않으려면, 당신은 라인을 추가 할 수 있습니다 “세트 nomodeline“. 분포에서, 문제는 고정되어 RHEL, SUSE / 오픈 수세, 페도라, FreeBSD의, 우분투, 아치 리눅스ALT. 취약점에 수정되지 않은 남아 데비안.

출처: https://nvd.nist.gov

폴리나 리소프스카야

저는 몇 년 동안 마케팅 관리자로 일하고 있으며 흥미로운 주제를 찾는 것을 좋아합니다.

회신을 남겨주

맨 위로 돌아가기 버튼