🔍 CVE-2025-21872

5.5
CVSS Score
MEDIUM
2025-03-27
2026-11-05 21:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 EFI mokvar 테이블 검증 코드에서, 테이블 크기를 판단하기 위해 전체 테이블을 반복적으로 매핑하던 문제가 수정되었습니다. 테이블이 일정 크기를 넘으면 early_memmap() 제약으로 매핑이 실패하고 경고 및 부팅 관련 오류가 발생할 수 있습니다. 수정 후에는 각 항목의 헤더만 매핑하며, 변수 이름이 NUL로 종료되는지 확인하도록 변경되었습니다.

💡 쉬운 설명

컴퓨터 부팅 시 보안 설정 정보를 읽는 과정에서 메모리 처리 오류가 발생할 수 있었습니다. 이 문제는 필요한 부분만 읽도록 고쳐져 더 이상 발생하지 않습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: efi: Don't map the entire mokvar table to determine its size Currently, when validating the mokvar table, we (re)map the entire table on each iteration of the loop, adding space as we discover new entries. If the table grows over a certain size, this fails due to limitations of early_memmap(), and we get a failure and traceback: ------------[ cut here ]------------ WARNING: CPU: 0 PID: 0 at mm/early_ioremap.c:139 __early_ioremap+0xef/0x220 ... Call Trace: <TASK> ? __early_ioremap+0xef/0x220 ? __warn.cold+0x93/0xfa ? __early_ioremap+0xef/0x220 ? report_bug+0xff/0x140 ? early_fixup_exception+0x5d/0xb0 ? early_idt_handler_common+0x2f/0x3a ? __early_ioremap+0xef/0x220 ? efi_mokvar_table_init+0xce/0x1d0 ? setup_arch+0x864/0xc10 ? start_kernel+0x6b/0xa10 ? x86_64_start_reservations+0x24/0x30 ? x86_64_start_kernel+0xed/0xf0 ? common_startup_64+0x13e/0x141 </TASK> ---[ end trace 0000000000000000 ]--- mokvar: Failed to map EFI MOKvar config table pa=0x7c4c3000, size=265187. Mapping the entire structure isn't actually necessary, as we don't ever need more than one entry header mapped at once. Changes efi_mokvar_table_init() to only map each entry header, not the entire table, when determining the table size. Since we're not mapping any data past the variable name, it also changes the code to enforce that each variable name is NUL terminated, rather than attempting to verify it in place.

📍 영향받는 시스템

EFI mokvar 테이블을 사용하는 UEFI 기반 Linux 커널 (수정 이전 버전, 안정 브랜치의 해당 패치 적용 이전 커널)

⚔️ 공격 벡터

공격자가 로컬에서 큰 mokvar 테이블을 구성해 부팅 시 초기화 실패 또는 경고를 유발할 수 있으며, 직접적인 원격 악용 경로는 제한적입니다.

🛡️ 대응 방법

제공 배포판의 최신 커널 업데이트를 적용하고 재부팅하여 수정된 커널로 전환합니다.

🔧 검증 코드

출력된 커널 버전이 배포판 보안 공지에서 해당 CVE 수정이 포함된 버전 이상인지 비교하며, 같거나 높으면 패치가 적용된 것입니다.

Shell / Script
uname -r && dpkg -l 'linux-image*' 2>/dev/null | grep ^ii | awk '{print $2, $3}'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

Linux Kernel