목차
CVE-2023-40547, 리눅스 부트로더 RCE 취약점
많은 주요 Linux 배포판이 보안 부팅 프로세스 중에 사용하는 Linux shim에서 시스템을 완전히 제어할 수 있는 원격 코드 실행(RCE, Remote Code Execution) 취약점 CVE-2024-40547
이 발견되었다. 처음 이 취약점을 패치하는 코드가 레드햇 소스에 반영됐을 때 에는 레드햇에만 존재하는 문제인 듯 했다가, 다른 배포판들 또한 영향을 받는것이 확인되면서 보안 부팅을 지원하는 여러 리눅스 배포판들이 모두 대응하기 시작했다. 유명 리눅스 배포판 레드햇(Red Hat), 우분투(Ubuntu), 데비안(Debian), 수세(SUSE) 등 보안 부팅을 지원하는 모든 배포판은 취약하다.
Linux Shim에 대해
Shim은 대부분의 리눅스 배포판에서 보안 부팅 과정에서 사용되는 작은 코드 조각이다. 이는 UEFI 기반 시스템에서 운영 체제의 주 부트로더 전에 로드되는 작은 앱으로, UEFI 펌웨어와 주 OS 부트로더 사이의 다리 역할을 한다. UEFI 펌웨어에서 부트로더의 서명을 검증하고, 검증이 끝난 부트로더를 로드해 주는 식이다.
이 취약점을 발견하고 레드햇에 제보한 마이크로소프트 Security Response Center의 Bill Demirkapi 연구원의 트위터 메시지 따르면1, 지난 10년간 서명된 모든 리눅스 배포판의 부트로더가 CVE-2023-40547
2에 취약하다고 한다.
취약한 Shim 버전
15.8
이전 모든 버전
CVE-2023-40547 및 추가 취약점 5개 정보
CVE-2023-40547
는 Red Hat이 발표한 Linux Shim의 여섯 가지 취약점 중 하나로, 여섯 가지 취약점 중 가장 심각한 CVSS 위험도 9.8
점의 취약점이다. Shim에서 지원하는 기능 중, HTTP 부팅에서 HTTP 응답 메시지 파싱 과정에서 취약점이 발생한다. HTTP 응답 메시지 중 공격자에 의해 조작된 값을 그대로 사용해 완전한 시스템 장악이 가능한 원격 코드 실행(RCE)으로 이어지며, 그 결과 보안 부팅을 우회(Secure Booting Bypass)할 수 있다.3 모든 리눅스 배포판이 영향을 받는다.
또한 5건의 취약점이 함께 패치되었는데, 그 취약점들은 아래와 같다.
CVE-2023-40546
: LogError() 호출 NULL 포인터 역참조(NULL pointer dereference) 수정.CVE-2023-40548
: 32비트 시스템에서 SBAT 섹션 크기에서 정수 오버플로우(Heap Overflow) 수정.CVE-2023-40549
: PE 바이너리를 로드할 때 범위를 벗어난 읽기(OOB Read, Out-of-Bound Read) 수정.CVE-2023-40550
: SBAT 정보의 유효성을 검사할 때 범위를 벗어난 읽기(OOB Read, Out-of-Bound Read) 수정.CVE-2023-40551
: MZ 바이너리에 대한 바운드(bounds check) 검사 수정.
취약점 공격 영향
이 취약점은 데이터의 기밀성, 무결성, 그리고 가용성에 높은 영향을 줄 수 있다. 그러나 NVD(NATIONAL VULNERABILITY DATABASE)4는 설명 문구를 추가하며, 취약점이 초기 부팅 단계에서만 공격 가능하고, 공격자가 이 취약점에 대한 공격을 성공적으로 실행하려면 중간자 공격(Man-in-the-Middle Attack)을 수행하거나 부팅 서버를 손상시켜야 한다고 언급하면서 취약점의 심각도와 이용 가능성에 대한 해석을 약간 수정한 듯 하다.
확인 방법
사용 중인 Shim의 버전이 15.8
이전 버젼인지 확인한다.
패치 방법
사용자는 최신 버전의 Shim (v15.8
)으로 업데이트하고 리눅스 배포판에서 제공하는 패치를 적용해야 한다. 또한, UEFI 보안 부팅 DBX를 업데이트하여 취약한 Shim 소프트웨어의 해시를 포함시키고, 수정된 버전을 유효한 Microsoft 키로 서명해야 한다.
요약(TL;DR)
대부분의 리눅스 배포판에서 보안 부팅을 지원하는 부트로더의 취약점이 발견되었다. CVE-2023-40547
은 Shim 리눅스 부트로더에서 발견된 원격 코드 실행(RCE) 취약점으로, 레드햇, 우분투, 데비안, 수세 등 모든 리눅스 배포판에 영향을 미친다. 공격자는 조작된 악의적인 HTTP 요청을 통해 시스템을 완전히 제어할 수 있으며, 이는 데이터의 기밀성, 무결성 및 가용성에 높은 영향을 줄 수 있다. 사용자는 최신 버전의 Shim (v15.8
)으로 업데이트하고 리눅스 배포판에서 제공하는 패치를 적용해야 한다.
참고 자료
- BillDemirkapi
https://twitter.com/BillDemirkapi/status/1750168326611865816 ↩︎ - Commit 0226b56
https://github.com/rhboot/shim/commit/0226b56513b2b8bd5fd281bce77c40c9bf07c66d ↩︎ - The maintainers of Shim addressed six vulnerabilities, including a critical flaw that could potentially lead to remote code execution.
https://securityaffairs.com/158792/hacking/critical-shim-bug-linux.html ↩︎ - Vulnerability Change Records for CVE-2023-40547
https://nvd.nist.gov/vuln/detail/CVE-2023-40547/change-record?changeRecordedOn=02/07/2024T12:15:09.263-0500 ↩︎