Linux 커널의 TIPC 구현에서 취약점 발견

최근 뉴스는 보안 연구원이 심각한 취약점을 식별했습니다. (이미 CVE-2021-43267에 나열됨) TIPC 네트워크 프로토콜 구현 특수하게 조작된 네트워크 패킷을 보내 커널 권한으로 코드를 원격으로 실행할 수 있는 Linux 커널에서 제공됩니다.

문제의 위험은 공격이 시스템에서 명시적으로 TIPC 지원을 활성화(tipc.ko 커널 모듈을 로드 및 구성하여)해야 한다는 사실에 의해 완화되며, 이는 Linux가 아닌 배포판에서는 기본적으로 수행되지 않습니다.

CodeQL은 코드에 대한 쿼리를 실행할 수 있는 분석 엔진입니다. 보안 관점에서 이를 통해 단순히 외관을 설명하는 것만으로 취약점을 찾을 수 있습니다. 그런 다음 CodeQL이 가동되어 해당 취약점의 모든 인스턴스를 찾습니다.

TIPC는 리눅스 3.19 커널부터 지원했지만, 5.10 커널에는 취약점을 유발하는 코드가 포함되어 있었다.. TIPC 프로토콜은 원래 Ericsson에 의해 개발되었으며 클러스터에서 프로세스 간 통신을 구성하기 위한 것으로 주로 클러스터의 노드에서 활성화됩니다.

이더넷과 UDP 모두에서 작동 가능 (네트워크 포트 6118). 이더넷을 통한 작업의 경우 로컬 네트워크에서 공격이 가능하고 UDP를 사용하는 경우 방화벽이 해당 포트를 덮고 있지 않다면 글로벌 네트워크에서 공격이 가능하다. 공격은 호스트에 대한 권한이 없는 로컬 사용자가 수행할 수도 있습니다. TIPC를 활성화하려면 tipc.ko 커널 모듈을 로드하고 netlink 또는 tipc 유틸리티를 사용하여 네트워크 인터페이스에 대한 링크를 구성해야 합니다.

이 프로토콜은 모든 주요 Linux 배포판과 함께 번들로 제공되는 커널 모듈에서 구현됩니다. 사용자가 로드할 때 커넥터로 사용할 수 있으며 권한이 없는 사용자로 netlink를 사용하여(또는 이러한 netlink 호출을 만드는 사용자 공간 도구 tipc를 사용하여) 인터페이스에서 구성할 수 있습니다.

TIPC는 이더넷 또는 UDP와 같은 베어러 프로토콜을 통해 작동하도록 구성할 수 있습니다(후자의 경우 커널은 포트 6118에서 모든 시스템에서 들어오는 메시지를 수신 대기함). 낮은 권한의 사용자는 원시 이더넷 프레임을 생성할 수 없기 때문에 베어러를 UDP로 설정하면 로컬 익스플로잇을 작성하기 쉽습니다.

취약점은 tipc_crypto_key_rc 함수에 나타나며 적절한 확인이 부족하여 발생합니다. 나중에 이러한 노드에서 보낸 메시지를 해독하기 위해 클러스터의 다른 노드에서 암호화 키를 얻는 데 사용되는 MSG_CRYPTO 유형의 패킷을 분석할 때 헤더에 지정된 것과 데이터의 실제 크기 사이의 대응 관계.

메모리에 복사되는 데이터의 크기는 메시지 크기와 헤더 크기가 있는 필드 값의 차이로 계산되지만 전송된 암호화 알고리즘 이름의 실제 크기는 고려하지 않고 메시지와 키의 내용에 있습니다.

알고리즘 이름의 크기는 고정된 것으로 가정하고 키에 대해 크기가 있는 별도의 속성이 전달되며 공격자는 이 속성에 실제 값과 다른 값을 지정할 수 있습니다. 할당된 버퍼에서 메시지의 큐입니다.

취약점은 커널 5.15.0, 5.10.77 및 5.14.16에서 수정되었습니다., Debian 11, Ubuntu 21.04/21.10, SUSE(SLE15-SP4 분기에서 아직 릴리스되지 않음), RHEL(취약한 솔루션이 업데이트된 경우 아직 자세히 설명되지 않음) 및 Fedora에서 문제가 나타나고 아직 수정되지 않았지만.

이기는하지만 Arch Linux용 커널 업데이트가 이미 릴리스되었습니다. Debian 5.10 및 Ubuntu 10와 같이 20.04 이전의 커널이 있는 배포판은 영향을 받지 않습니다.

최종적으로 그것에 대해 더 많이 알고 싶다면, 당신은 세부 사항을 확인할 수 있습니다 다음 링크에서.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자: AB Internet Networks 2008 SL
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.