그들은 시스템에 대한 루트 액세스를 허용하는 firejail의 취약점을 감지했습니다.

그들은 최근에 뉴스를 발표했습니다. 취약점이 확인되었습니다 (이미 CVE-2022-31214에 나열됨) Firejail 앱 샌드박싱 도구에서, 발견된 결함으로 인해 로컬 사용자가 호스트 시스템의 루트가 될 수 있다고 자세히 설명되어 있습니다.

Firejail은 격리를 위해 Linux에서 네임스페이스 메커니즘, AppArmor 및 시스템 호출 필터링(seccomp-bpf)을 사용하지만 suid 루트 플래그 유틸리티에 바인딩하거나 sudo로 실행하여 얻은 격리된 릴리스를 구성하려면 상승된 권한이 필요합니다.

취약점은 “–join=” 옵션의 논리 오류로 인한 것입니다. », 실행 중인 프로세스의 ID로 정의된 환경으로 이미 실행 중인 격리된 환경(샌드박스 환경의 로그인 명령과 유사)에 연결하도록 설계되었습니다. 사전 실행 단계에서 firejail은 지정된 프로세스의 권한을 감지하고 "-join" 옵션을 사용하여 환경에 조인하는 새 프로세스에 적용합니다.

연결하기 전에, 지정된 프로세스가 firejail 환경에서 실행 중인지 확인합니다. 이 검사는 /run/firejail/mnt/join 파일의 존재를 평가합니다. 취약점을 악용하려면, 공격자는 가상의 격리되지 않은 firejail 환경을 시뮬레이션할 수 있습니다. 마운트 네임스페이스를 사용한 다음 "--join" 옵션을 사용하여 연결합니다.

구성이 새 프로세스(prctl NO_NEW_PRIVS)에서 추가 권한 획득을 금지하는 모드를 활성화하지 않으면 firejail은 사용자를 가상 환경에 연결하고 init 프로세스( PID 1).

조인 함수 뒤에 있는 대부분의 논리는 소스 코드에 있습니다. `src/firejail/join.c` 파일에서. 코드의 중요한 부분은 다음과 같이 실행됩니다. 상승된 권한(유효 UID 0). 명령으로 전달된 프로세스의 ID line 인수가 r인지 확인하기 위해 검사됩니다.컨테이너 및 그 속성 중 일부를 결정합니다. 신규 진입 절차에도 적용됩니다.

대상 프로세스 참여 여부를 결정하는 주요 기준 성공은 대상의 마운트 네임스페이스에 파일이 있는 경우입니다. /run/firejail/mnt/join에서 프로세스를 찾았습니다. 이 검증은 f에 수행됩니다.'is_ready_for_join()' 함수. 파일은 l을 사용하여 열립니다.`O_RDONLY|O_CLOEXEC` 플래그와 추적 `fstat()` 결과는 다음 요구 사항을 충족합니다.

– 파일은 일반 파일이어야 합니다.
– 파일은 사용자 ID 0이 소유해야 합니다(초기 사용자에서 볼 수 있음).
네임스페이스).
– 파일 크기는 1바이트여야 합니다.

그 결과, "firejail --join"을 통해 연결된 프로세스는 네임스페이스에서 끝납니다. 사용자의 원래 사용자 ID 변경되지 않은 권한으로 그러나 공격자가 완전히 제어하는 ​​다른 마운트 지점 공간에 있습니다.

결과 "결합된" 셸이 이제 초기 사용자에 적용됩니다.
네임스페이스는 여전히 원래의 일반 사용자 권한을 유지하지만 마운트 네임스페이스는 공격자가 제어하는 ​​네임스페이스가 됩니다. 처럼
nonnewprivs 구성이 적용되지 않았으므로 공격자는 이제
이 마운트 네임스페이스 내에서 setuid-root 프로그램 실행

특히, 공격자는 자신이 생성한 마운트 지점 공간에서 setuid-root 프로그램을 실행할 수 있습니다. 예를 들어 파일 계층에서 /etc/sudoers 구성 또는 PAM 매개변수를 변경하고 명령을 루트로 실행할 수 있는 능력을 얻을 수 있습니다. sudo 또는 그 유틸리티를 사용합니다.

마지막으로, 기능적 익스플로잇이 개발되었으며 firejail 유틸리티가 설치된 현재 버전의 openSUSE, Debian, Arch, Gentoo 및 Fedora에서 테스트되었음을 ​​언급할 가치가 있습니다.

이 문제는 firejail 버전 0.9.70에서 수정되었습니다. 보안 수정으로 구성(/etc/firejail/firejail.config)을 "no join" 및 "force-nonewpriv yes"로 설정할 수 있습니다.

최종적으로 그것에 대해 더 많이 알고 싶다면에서 세부 정보를 확인할 수 있습니다. 다음 링크.


코멘트를 남겨주세요

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

*

*

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