CVE-2026-97631 EDK2 UEFI 펌웨어 취약점 분석

취약점 개요

CVE-2026-97631은 대부분의 하드웨어 공급업체가 UEFI 펌웨어를 빌드하는 데 사용하는 기반 라이브러리인 TianoCore EDK2 코드베이스에 존재하는 치명적인 메모리 손상 취약점(점수 9.5/10)입니다. 이 결함은 PXE Base Code 드라이버, 특히 네트워크 기반 부팅 시퀀스 중 ICMP 오류 메시지를 처리하는 과정에서 발생합니다. 로컬 네트워크에 접근할 수 있는 공격자가 잘못된 형식의 ICMP 메시지를 전송하면 버퍼 오버플로우를 유발할 수 있으며, 이를 통해 운영 체제나 Secure Boot 및 TPM 인증과 같은 보안 기능이 초기화되기 전에 링 0(ring 0)에서 임의 코드를 실행할 수 있습니다.

기술적 메커니즘

이 취약점은 NetworkPkg/UefiPxeBcDxe 드라이버의 잘못된 경계 검사에서 비롯됩니다. 드라이버가 ICMP 오류 메시지를 수신하면 데이터를 504바이트 고정 버퍼에 복사합니다. 구현 과정에서 메시지 길이를 적절하게 제한하지 못하고 대상 포인터를 잘못 증가시켜, 공격자가 제어된 데이터로 인접 메모리를 덮어쓸 수 있게 합니다. 이 과정은 사전 실행 환경(PXE) 부팅 단계에서 발생하므로, 악성 페이로드는 가장 높은 수준의 CPU 권한으로 실행되어 하드웨어의 신뢰 체인을 효과적으로 무력화합니다.

범위 및 영향

EDK2가 서버 및 엔터프라이즈 하드웨어에 널리 사용됨에 따라 이 취약점은 광범위하게 퍼져 있지만, 공격 가능성은 다음과 같은 여러 요인에 의해 제한됩니다:

  • 네트워크 요구 사항: 공격자는 대상의 PXE 부팅 시퀀스 중에 트래픽을 가로채거나 주입하기 위해 로컬 네트워크에 대한 저수준 접근 권한이 있어야 합니다.
  • 구성 의존성: 시스템에서 PXE 부팅이 활성화되어 있고 영향을 받는 EDK2 네트워크 스택을 사용해야 합니다. 로컬 디스크 드라이브에서만 부팅되는 많은 표준 가정용 및 소규모 사무실 장치는 영향을 받지 않습니다.
  • 대상 특정성: 메모리 주소가 하드웨어 모델 및 구성마다 다르기 때문에 성공적인 공격을 위해서는 특정 펌웨어 빌드에 맞춰 페이로드를 조정해야 합니다.

업계 대응 및 완화 조치

이 취약점은 Anthropic의 Alex Matrosov와 Google의 Dan Holmes에 의해 발견되었습니다. GitHub 풀 리퀘스트를 통한 조기 공개 이후, TianoCore는 공식 보안 권고를 발표했습니다. 조직은 다음 조치를 취해야 합니다:

  • 펌웨어 업데이트: EDK2 패치가 포함된 공급업체 제공 BIOS/UEFI 업데이트를 적용하십시오.
  • 사용하지 않는 기능 비활성화: 운영에 필요하지 않은 경우 네트워크 부팅(PXE) 기능을 비활성화하십시오.
  • 인프라 모니터링: 부팅 시퀀스 중 의심스러운 ICMP 트래픽이 있는지 네트워크 로그를 모니터링하십시오.

커뮤니티 관점

보안 커뮤니티 내의 논의는 현대 펌웨어의 복잡성과 보안 필요성 사이의 지속적인 긴장을 강조합니다. 댓글 작성자들은 수백만 줄의 코드를 포함하는 UEFI의 "풀 팻(full-fat)" 특성이 coreboot와 같은 더 최소화된 대안에 비해 거대한 공격 표면을 만든다고 지적했습니다. 일부 관찰자들은 이 취약점이 기술적으로는 중요하지만, 재부팅 강제 및 로컬 네트워크 접근과 같은 실제 공격 요구 사항이 광범위하고 자동화된 공격에 대한 유용성을 제한한다고 지적하며 심각도 등급에 의문을 제기하기도 했습니다.

"근처의 엔드포인트나 서버를 손상시키려는 공격자는 이 버그를 사용하여 부팅 프로세스가 엔드포인트의 TPM과 같은 민감한 구성 요소에 여전히 접근할 수 있는 시점에 프로그램 흐름을 가로챌 수 있습니다." — HD Moore, Dragos 최고 연구 책임자(Chief Research Officer).

Sources

관련