롯 Qualys 보안 연구원이 심각한 취약성을 확인했습니다. (CVE-2021-3156) sudo 유틸리티에서, 다른 사용자를 대신하여 명령 실행을 구성하도록 설계되었습니다.
취약점 루트 권한으로 인증되지 않은 액세스 허용. 문제 모든 사용자가 사용할 수 있습니다., 시스템 그룹의 존재 여부 및 / etc / sudoers 파일의 항목 존재 여부에 관계없이.
공격은 사용자의 암호를 입력 할 필요가 없습니다. 즉, 취약성이 권한이없는 프로세스 (사용자 "nobody"로 시작된 프로세스 포함)에서 취약성이 손상된 후 외부 사용자가 시스템에 대한 권한을 상승시키는 데이 취약성을 사용할 수 있습니다.
시스템에서 취약점을 검색하려면 "sudoedit -s /"명령을 실행하기 만하면 "sudoedit :"로 시작하는 오류 메시지가 표시되면 취약점이있는 것입니다.
취약성에 대해
이 취약점은 2011 년 XNUMX 월부터 나타 났으며 버퍼 오버 플로우로 인해 발생합니다. 쉘 모드에서 명령을 실행하기위한 매개 변수의 줄 이스케이프 문자 처리에서. 쉘 모드는 "-i"또는 "-s"인수를 지정하여 활성화되며 명령이 직접 실행되지 않고 "-c"플래그 ( "sh -c 명령»)가있는 추가 쉘 호출을 통해 실행됩니다.
결론은 sudo 유틸리티가 정상적으로 실행될 때 "-i"및 "-s"옵션을 지정하여 특수 문자를 이스케이프하지만 sudoedit 유틸리티가 시작되면 매개 변수가 parse_args ()와 같이 이스케이프되지 않는다는 것입니다. 이 함수는 MODE_SHELL 대신 MODE_EDIT 환경 변수를 설정하고 "valid_flags"값을 재설정하지 않습니다.
또한, 이스케이프 처리되지 않은 문자 전송은 다른 오류가 나타날 수있는 조건을 만듭니다. 컨트롤러에서 sudoer 규칙을 확인하기 전에 이스케이프 문자를 제거합니다.
핸들러가 백 슬래시 문자의 존재를 잘못 구문 분석합니다. 줄 끝에서 이스케이프하지 않고이 백 슬래시가 하나 이상의 문자를 이스케이프하고 줄의 한계를 넘어서 데이터를 계속 읽고 "user_args"버퍼로 복사하고 버퍼 외부의 메모리 영역을 덮어 쓰는 것으로 간주합니다.
그리고 sudoedit 명령 줄에서 값을 조작하려고 할 때 공격자는 후속 작업 과정에 영향을 미치는 데이터에 다시 쓰기 가능한 대기열을 중첩시킬 수 있다고 언급됩니다.
익스플로잇을 생성하는 것 외에도 공격자가 전달 된 모든 인수의 크기에 해당하는 user_args 버퍼의 크기를 완전히 제어 할 수 있다는 사실을 단순화하고 다음을 사용하여 버퍼 외부에 기록 된 데이터의 크기와 내용을 제어합니다. 환경 변수.
Qualys 보안 연구원은 sudo_hook_entry, service_user 및 def_timestampdir 구조의 내용을 다시 작성하는 작업을 기반으로하는 세 가지 공격을 준비했습니다.
- sudo_hook_entry를 중단하면 "SYSTEMD_BYPASS_USERDB"라는 바이너리가 루트로 실행될 수 있습니다.
- service_user를 재정 의하여 임의의 코드를 루트로 실행했습니다.
- def_timestampdir을 재정의함으로써 환경 변수를 포함한 sudo 스택의 내용을 / etc / passwd 파일로 플러시하고 사용자를 루트 권한으로 대체 할 수있었습니다.
연구원 익스플로잇이 작동한다는 것을 보여주었습니다 전체 루트 권한을 얻으려면 Ubuntu 20.04, Debian 10 및 Fedora 33에서
취약점 다른 운영 체제 및 배포판에서 악용 될 수 있습니다. 그러나 연구원의 확인은 Ubuntu, Debian 및 Fedora로 제한되었으며 기본 설정의 모든 sudo 버전 1.8.2 ~ 1.8.31p2 및 1.9.0 ~ 1.9.5p1이 영향을받는다고 언급되었습니다. sudo 1.9.5p2에서 제안 된 솔루션.
연구원 개발자에게 사전에 통보했습니다. Debian, RHEL, Fedor, Ubuntu, SUSE / openSUSE, Arch Linux, Slackware, Gentoo 및 FreeBSD와 같이 이미 조정 된 방식으로 패키지 업데이트를 출시 한 배포자.
최종적으로 그것에 대해 더 많이 알고 싶다면 취약점에 대한 세부 정보를 확인할 수 있습니다. 다음 링크에서.