Linux 커널에서 여러 로컬 권한 상승 취약점 수정
최근 Linux 커널에서 로컬 권한 상승을 달성하는 데 악용될 수 있는 여러 가지 사용 후 무료 취약점이 발견되었습니다. 즉, 제한된 액세스 권한을 가진 공격자 또는 사용자(예: 로컬 사용자)가 이러한 취약점을 사용하여 보유해서는 안 되는 권한 또는 상승된 권한을 얻을 수 있습니다.
공격자는 권한 상승을 통해 더 높은 권한으로 명령을 실행하여 잠재적으로 전체 시스템을 손상시킬 수 있습니다. 이러한 취약점에는 국가 취약점 데이터베이스에서 특정 CVE가 할당되고 심각도가 높은 것으로 표시되었습니다.
이 블로그 게시물에서는 Linux 커널에서 발견된 새로운 심각도가 높은 취약점 몇 가지에 대해 설명합니다.
심각도가 높은 로컬 권한 상승 취약점
CVE-2023-4921
리눅스 커널의 'net/sched: sch_qfq' 구성 요소에서 사용 후 무료 취약점이 발견되었습니다. 이 취약점은 'plug qdisc'가 'qfq qdisc'의 클래스로 사용될 때 발생합니다. 이 시나리오에서 네트워크 패킷을 전송하는 행위는 주로 'sch_plug'의 잘못된 '.peek 핸들러' 구현과 'agg_dequeue()'의 오류 검사 부재로 인해 'qfq_dequeue()' 함수 내에서 사용 후 무료 상황을 유발할 수 있습니다.
CVE-2023-4207
이 취약점은 Linux 커널의 'net/sched: cls_fw' 구성 요소에 존재하는 사용 후 무료 취약점이기도 합니다. 이 취약점은 기존 필터에서 'fw_change()'를 호출할 때 명백해지며, 그 결과 전체 'tcf_result 구조체'가 필터의 새 인스턴스에 일관되게 복사됩니다. 이는 클래스와 연결된 필터를 업데이트할 때 성공 경로 내의 이전 인스턴스에서 항상 'tcf_unbind_filter()' 함수가 트리거되기 때문에 문제가 됩니다. 이 작업은 여전히 참조되는 클래스의 'filter_cnt'를 감소시키고 삭제할 수 있는 상태로 만들어 궁극적으로 더 이상 사용할 수 없는 상황을 초래합니다.
CVE-2023-4208
Linux 커널의 'net/sched: cls_u32' 구성 요소 내의 사용 후 무료 취약점을 악용하면 로컬 권한 에스컬레이션이 가능합니다. 이 취약점은 기존 필터에서 'u32_change()'를 실행하는 동안 명백하게 드러납니다. 이 과정에서 전체 'tcf_result 구조체'가 항상 새 필터 인스턴스에 복사됩니다. 이로 인해 클래스와 연결된 필터를 업데이트할 때 성공 경로 내의 이전 인스턴스에서 'tcf_unbind_filter()' 함수가 지속적으로 호출되기 때문에 문제가 발생합니다. 결과적으로 이 작업은 여전히 참조되는 클래스의 'filter_cnt'를 감소시키고 삭제를 허용하여 궁극적으로 사용 후 무료 시나리오로 이어집니다.
CVE-2023-4244
Linux 커널의 'netfilter: nf_tables' 구성 요소에서 사용 후 무료 취약점이 발견되었습니다. 이 취약점은 nf_tables의 넷링크 제어 플레인 트랜잭션과 nft_set 요소의 가비지 컬렉션 간에 발생하는 경쟁 조건으로 인해 발생합니다. 이 경쟁 조건은 참조 카운터에서 언더플로우를 트리거하여 사용 후 자유 취약점을 발생시킬 수 있습니다.
CVE-2023-4622
로컬 권한 상승은 Linux 커널의 'af_unix' 구성 요소 내의 사용 후 무료 취약점을 악용하여 이루어질 수 있습니다. 이 취약점은 필요한 잠금을 획득하지 않고 수신자의 수신 대기열에 있는 최종 skb(소켓 버퍼)에 데이터를 추가하려고 시도하는 'unix_stream_sendpage()' 함수에서 비롯됩니다. 결과적으로 'unix_stream_sendpage()'가 가비지 컬렉션에 의해 해제되는 과정에 있는 skb에 잠재적으로 액세스할 수 있는 경쟁 조건이 발생하여 사용 후 무료 시나리오로 이어질 수 있습니다.
이러한 취약점을 완화하는 방법은?
로컬 권한 상승 취약점은 사용자 수준의 제한을 우회하고 시스템을 제어하는 데 사용될 수 있기 때문에 매우 우려되는 취약점입니다. 따라서 이러한 취약점과 잠재적 위험을 완화하기 위해 정기적으로 패치를 업데이트하고 적용하는 것이 중요합니다. 패치가 누락되거나 지연되면 서버의 보안과 운영에 부정적인 영향을 미칠 수 있습니다.
패치 지연을 피하는 가장 좋은 방법은 KernelCare Enterprise와 같은 자동화된 패치 솔루션을 활용하는 것입니다. KernelCare는 커널이 실행되는 동안 Linux 커널에 보안 패치를 자동으로 적용합니다. 즉, 커널을 재시작해야 하므로 시스템 관리자에게는 골칫거리입니다.
이러한 패치를 라이브 패칭이라고 하며, 재부팅 없이 패치를 적용합니다. 이렇게 하면 패치와 관련된 다운타임이나 유지보수 기간이 없어져 궁극적으로 서비스 중단 없이 서버의 가동 시간을 100% 유지할 수 있습니다.
전문가에게 문의하여 실시간 Linux 패치와 그 작동 방식에 대해 자세히 알아보세요.
출처: 출처: NIST