Git에서 데이터 유출 및 덮어쓰기로 이어지는 취약점 XNUMX개 발견

취약점

이러한 결함을 악용할 경우 공격자가 민감한 정보에 무단으로 액세스하거나 일반적으로 문제를 일으킬 수 있습니다.

최근에 다양한 수정 버전의 출판이 발표되었습니다. 분산 소스 제어 시스템 버전 2.38.4에서 버전 2.30.8까지의 Git 범위, 로컬 클론 최적화 및 "git apply" 명령에 영향을 미치는 알려진 취약점을 제거하는 두 가지 수정 사항이 포함되어 있습니다.

따라서 이러한 유지 관리 릴리스는 두 가지 보안 문제를 해결하기 위해 CVE-2023-22490 및 CVE-2023-23946에 따라 식별됩니다. 두 취약점 모두 기존 버전 범위에 영향을 미치므로 사용자는 이에 따라 업데이트하는 것이 좋습니다.

공격자는 취약점을 원격으로 악용하여 정보를 탐지할 수 있습니다. 또한 공격자는
로컬에서 취약점을 악용하여 파일을 조작합니다.

취약점을 악용하려면 일반 권한이 필요합니다. 두 취약점 모두 사용자 상호 작용이 필요합니다.

가장 먼저 확인된 취약점은 CVE-2023-22490어느 복제된 리포지토리의 콘텐츠를 제어하는 ​​공격자가 중요한 데이터에 액세스할 수 있습니다. 사용자 시스템에서. 두 가지 결함이 취약점에 기여합니다.

  • 첫 번째 결함은 특수 제작된 리포지토리로 작업할 때 외부 시스템과 상호 작용하는 전송을 사용하는 경우에도 로컬 복제 최적화를 사용할 수 있도록 허용합니다.
  • 두 번째 결함은 $GIT_DIR/objects 디렉토리에 심볼릭 링크를 배치하는 것을 허용하는 취약성 CVE-2022-39253과 유사하게 $GIT_DIR/objects 디렉토리 대신 심볼릭 링크를 배치할 수 있습니다. 디렉토리 자체가 확인되지 않은 것은 심볼릭 링크일 수 있습니다.

로컬 복제 모드에서 git은 symlink를 역참조하여 $GIT_DIR/objects를 대상 디렉토리로 이동하여 참조된 파일을 대상 디렉토리에 직접 복사합니다. 로컬이 아닌 전송을 위해 로컬 복제 최적화를 사용하도록 전환하면 외부 리포지토리로 작업할 때 취약성을 악용할 수 있습니다(예: "git clone --recurse-submodules" 명령으로 하위 모듈을 재귀적으로 포함하면 악성 리포지토리 복제로 이어질 수 있음) 다른 저장소에 하위 모듈로 패키징됨).

특별히 제작된 리포지토리를 사용하여 Git이 다음을 사용하도록 속일 수 있습니다. 로컬이 아닌 전송을 사용하는 경우에도 로컬 클론 최적화.
Git은 소스가 $GIT_DIR/object인 로컬 클론을 취소하지만 디렉토리에는 심볼릭 링크(cf, CVE-2022-39253)가 포함되어 있습니다. 디렉토리 자체는 여전히 심볼릭 링크일 수 있습니다.

이 둘을 결합하여 다음을 기반으로 하는 임의의 파일을 포함할 수 있습니다. 악성 리포지토리 내 피해자 파일 시스템의 경로와 작업 사본, 유사한 데이터 유출 허용
CVE-2022-39253.

두 번째로 발견된 취약점은 CVE-2023-23946 및 디렉토리 외부 파일의 내용을 덮어쓸 수 있습니다. 특수 형식의 입력을 "git apply" 명령에 전달하여 작동합니다.

예를 들어 공격자가 준비한 패치를 git apply에서 처리하면 공격이 가능하다. 패치가 작업 복사본 외부에서 파일을 생성하지 못하도록 "git apply"는 심볼릭 링크를 사용하여 파일을 쓰려고 시도하는 패치 처리를 차단합니다. 그러나 이 보호는 처음부터 심볼릭 링크를 생성함으로써 우회되는 것으로 밝혀졌습니다.

Fedora 36 및 37에는 '테스트' 상태의 보안 업데이트가 있습니다. 'git'을 버전 2.39.2로 업데이트합니다.

취약점은 또한 Community Edition(CE) 및 Enterprise Edition(EE)에서 GitLab 15.8.2, 15.7.7 및 15.6.8을 사용합니다.

GitLab은 CVE-2023-23946이 Gitaly 환경에서 임의의 프로그램 코드 실행(Git RPC 서비스).
동시에 임베디드 파이썬은 더 많은 취약점을 수정하려면 버전 3.9.16으로 업데이트하십시오.

최종적으로 그것에 대해 더 알고 싶은 사람들을 위해, 페이지에서 배포판의 패키지 업데이트 릴리스를 따를 수 있습니다. 데비안UbuntuRHEL수세/오픈수세페도라아치FreeBSD의.

업데이트를 설치할 수 없는 경우 해결 방법으로 신뢰할 수 없는 리포지토리에서 "–recurse-submodules" 옵션과 함께 "git clone"을 실행하지 않고 "git apply" 및 "git am" 명령을 사용하지 않는 것이 좋습니다. 코드가 확인되지 않았습니다.


코멘트를 남겨주세요

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

*

*

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