- Debian sid 설치에서 liblzma(xz 패키지의 일부)와 관련된 몇 가지 이상한 증상(SSH 로그인 시 CPU 사용량 증가, valgrind 오류)이 관찰됨
- 문제의 원인은 xz의 상위 저장소와 tarball이 백도어에 감염되었음을 발견. 백도어의 일부는 배포된 tarball에만 존재함
- tarball에 포함된 스크립트는 configure의 끝에서 실행되며, 특정 조건이 충족되면
$builddir/src/liblzma/Makefile을 수정하여 악성 코드를 삽입함.
저장소 내 백도어
- 백도어의 주요 부분은 저장소 내의
tests/files디렉토리에 암호화된 형태로 존재함. - 이 파일들은 5.6.0 버전의 테스트에 사용되지 않았으며, 5.6.1 버전에서는 백도어로 인한 valgrind 오류와 충돌을 해결하기 위한 시도가 있었음.
영향을 받는 시스템
- 백도어 스크립트는 configure 이후 최초로 호출되며, 특정 조건(예: x86-64 리눅스 시스템, gcc 및 gnu 링커 사용, debian 또는 RPM 패키지 빌드 중)에만 빌드 과정을 수정함.
openssh 서버에 미치는 영향
- 백도어가 설치된 liblzma를 사용하면 SSH를 통한 로그인이 느려짐.
- openssh는 직접적으로 liblzma를 사용하지 않지만, debian을 포함한 몇몇 배포판은 systemd 알림을 지원하기 위해 openssh에 패치를 적용하고, libsystemd는 lzma에 의존함.
주입된 코드 분석
- 보안 연구자나 역공학 전문가가 아닌 관찰자의 관점에서 분석함.
- 백도어는 ifunc resolver를 통해 실행을 가로채고, sshd의 초기화 중에 심볼을 해석하여 RSA_public_decrypt 심볼을 자신의 코드로 변경함.
sshd에 미치는 영향
- RSA_public_decrypt@....plt가 백도어 코드를 가리키도록 변경되어, 공개키 로그인 중에 백도어 코드가 호출됨.
- 이를 통해 인증을 우회하거나 원격 코드 실행을 가능하게 하는 것으로 추정됨.
버그 보고
- 상위 저장소의 관여가 의심되어 버그를 보고하지 않음.
- Red Hat은 이 문제에 CVE-2024-3094를 할당함.
취약한 설치 감지
- 시스템의 ssh 바이너리가 취약한지 여부를 감지하는 스크립트가 제공됨.