몇일 전에 Qualys는 심각한 취약점을 발견했다고 발표했습니다.e(이미 CVE-2022-3328로 분류됨) 스냅 제한 유틸리티에서, 루트 SUID 플래그와 함께 제공되며 스냅 형식 패키지로 배포되는 응용 프로그램의 실행 가능 환경을 형성하기 위해 스냅 프로세스에 의해 호출됩니다.
이 취약점은 권한이 없는 로컬 사용자가 Ubuntu의 기본 구성에서 루트로 코드를 실행할 수 있도록 허용한다고 합니다.
흥미롭게도 문제의 취약점은 지난 XNUMX월부터 스냅컨파인에서 유사한 취약점을 수정하는 과정에서 도입됐다.
CVE-2022-3328은 어떤 영향을 미칩니까?
Qualys는 보고서에서 snap-confine 취약점이 must_mkdir_and_open_with_perms() 함수의 경쟁 조건으로 인해 발생합니다. 소유자 확인 후 /tmp/snap.$SNAP_NAME 디렉토리를 심볼릭 링크로 교체하지 못하도록 보호하기 위해 추가되었지만 스팬 형식의 패키지에 대해 마운트 디렉토리를 바인딩하기 위해 마운트 시스템 호출이 호출되기 전에 추가되었습니다.
추가된 보안은 /tmp/snap.$SNAP_NAME 디렉토리가 존재하고 루트가 소유하지 않은 경우 임의의 이름을 가진 /tmp의 다른 디렉토리로 이름을 변경하는 것입니다.
이름 바꾸기 작업을 악용하여 /tmp/snap.$SNAP_NAME 디렉토리에서, 연구원들은 snap-confine이 디렉토리를 생성한다는 사실을 이용했습니다. 스냅 패키지의 내용에 대한 /tmp/snap.rootfs_x. mkdtemp() 이름의 "x" 부분을 임의로 선택하지만 "rootfs_x"라는 이름의 패키지는 통과할 수 있습니다. sc_instance_name_validate (즉, 아이디어는 $SNAP_NAME을 "rootfs_x"로 설정한 다음 이름 바꾸기 작업으로 /tmp/snap.rootfs_x 디렉토리가 스냅 시 루트에 의해 덮어쓰이게 됩니다).
동시 사용을 달성하기 위해 /tmp/snap.rootfs_xx에서 /tmp/snap.$SNAP_NAME 이름 바꾸기, 두 개의 snap-confine 인스턴스가 시작되었습니다.
첫 번째 인스턴스가 생성되자마자 /tmp/snap.rootfs_xx 프로세스가 차단되고 두 번째 인스턴스가 시작됨 패키지 이름이 rootfs_x인 경우 두 번째 인스턴스의 임시 디렉터리 /tmp/snap.$SNAP_NAME이 첫 번째 인스턴스의 /tmp/snap .rootfs_x(루트 디렉터리)가 됩니다.
이름 변경을 수행한 직후 두 번째 인스턴스가 실패했고 /tmp/snap.rootfs_x는 XNUMX월 익스플로잇에서와 같이 경쟁 조건 조작으로 대체되었습니다. 변경 후 실행 잠금이 첫 번째 인스턴스에서 제거되었고 공격자는 인스턴트 루트 디렉터리에 대한 모든 권한을 얻었습니다.
마지막 단계는 symlink /tmp/snap.rootfs_x/tmp를 생성하는 것이었습니다. 이는 sc_bootstrap_mount_namespace() 함수에서 실제 쓰기 가능한 디렉토리 /tmp를 파일 시스템의 임의의 디렉토리에 바인드하고 마운트하는 데 사용되었습니다. mount() 호출은 마운트 전에 심볼릭 링크를 따르기 때문입니다.. 이러한 마운팅은 AppArmor 제한에 의해 차단되지만 이 차단을 우회하기 위해 익스플로잇은 두 가지 취약점을 사용했습니다. multipathd의 헬퍼.
세 가지 취약점을 모두 성공적으로 악용하면 권한이 없는 사용자가 취약한 장치에 대한 루트 권한을 얻을 수 있습니다. Qualys 보안 연구원은 취약성을 확인하고 익스플로잇을 개발했으며 기본 Ubuntu 설치에 대한 전체 루트 권한을 얻었습니다.
Qualys Threat Research Unit에서 취약점을 확인하자마자 책임 있는 취약점 공개에 참여하고 공급업체 및 오픈 소스 배포와 협력하여 새로 발견된 취약점을 발표했습니다.
연구원들은 작동하는 익스플로잇을 준비할 수 있었습니다. 이는 Ubuntu Server 22.04에서 루트 액세스를 제공하며, snap-confine 취약성 외에도 권한 있는 명령을 전달할 때 권한을 우회하는 것과 관련된 multipathd 프로세스(CVE-2022-41974, CVE-2022-41973)의 두 가지 취약성이 포함됩니다. 심볼릭 링크의 안전하지 않은 처리.
언급 할 가치가 있습니다. 이 문제는 스냅 2.57.6 릴리스에서 수정되었습니다. 또한 지원되는 모든 Ubuntu 브랜치에 대한 패키지 업데이트가 릴리스되었습니다.
마지막으로, 그것에 대해 더 알고 싶다면 자세한 내용을 참조하십시오. 다음 링크에서.