상세 컨텐츠

본문 제목

Linux 커널 n_hdlc 모듈 권한상승 취약점(CVE-2017-2636) 발견!

국내외 보안동향

by 알약(Alyac) 2017. 3. 9. 14:13

본문

Linux 커널 n_hdlc 모듈 권한상승 취약점(CVE-2017-2636) 발견!


최근 리눅스 커널 드라이버인 n_hdlc 모듈 (drivers/tty/n_hdlc.c)에서 레이스컨디션으로 인한 로컬 권한상승 취약점이 발견되었습니다.


이 버그는 2009년 6월 22일 처음 공개되었습니다. 

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=be10eb7589337e5defbe214dae038a53dd21add8



취약점 개요


N_HDLC 회선 규칙은 자체제작된 단일 링크드 리스트를 이용하여 버퍼영역의 데이터를 획득합니다. 오류발생 시, n_hdlc.tbuf는  버퍼데이터를 재 전송할 포인터를 가지고 있습니다. 만약 버퍼로의 데이터 전송이 성공하지 못하면, 이 포인터는 n_hdlc.tbuf 포인터에 저장되고, 다음 함수인 n_hdlc_send_frames()가 재 발송을 시도합니다. 


commit be10eb7589337e5defbe214dae038a53dd21add8("tty: n_hdlc add buffer flushing")가 n_hdlc.tbuf로의 레이스 컨디션을 유도합니다. 전송오류 후 flush_tx_queue()와n_hdlc_send_frames()함수를 실행하여 n_hdlc.tbuf 포인터의 버퍼구역에 두번 tx_free_buf_list를 입력하게 됩니다. 그렇기 때문에 n_hdlc_release()중 이용가능한 double free 취약점이 발생하게 되는 것입니다. 


 


취약한 버전 정보


Red Hat Enterprise Linux/CentOS

https://access.redhat.com/security/cve/CVE-2017-2636


Debian

https://security-tracker.debian.org/tracker/CVE-2017-2636


Ubuntu

https://people.canonical.com/~ubuntu-security/cve/2017/CVE-2017-2636.html


SUSE/openSUSE

https://www.suse.com/security/cve/CVE-2017-2636.html



조치방법


1) 최신버전으로 업데이트



2)  install n_hdlc /bin/true값 추가

# echo "install n_hdlc /bin/true">> /etc/modprobe.d/disable-n_hdlc.conf 





참고 : 

https://access.redhat.com/security/cve/CVE-2017-2636

https://access.redhat.com/security/vulnerabilities/CVE-2017-2636

https://git.kernel.org/cgit/linux/kernel/git/gregkh/tty.git/commit/?h=tty-linus&id=82f2341c94d270421f383641b7cd670e474db56b

관련글 더보기

댓글 영역