🇰🇷 한글 설명
Linux 커널의 binfmt_flat 구성 요소에서 RISC-V 특정 FLAT 형식 처리 시 데이터 시작 오프셋을 설정하지 않을 경우 메모리 오염이 발생하는 취약점입니다. 공유 라이브러리 포인터 배열을 초기화하는 코드가 비활성화되지 않아 TEXT 세그먼트 끝부분의 메모리가 손상될 수 있습니다.
💡 쉬운 설명
특정 방식의 실행 파일을 실행할 때 컴퓨터의 메모리 일부가 잘못된 값으로 덮어씌워지는 문제입니다. 이로 인해 시스템이 불안정해지거나 보안 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
binfmt_flat: Fix corruption when not offsetting data start
Commit 04d82a6d0881 ("binfmt_flat: allow not offsetting data start")
introduced a RISC-V specific variant of the FLAT format which does
not allocate any space for the (obsolete) array of shared library
pointers. However, it did not disable the code which initializes the
array, resulting in the corruption of sizeof(long) bytes before the DATA
segment, generally the end of the TEXT segment.
Introduce MAX_SHARED_LIBS_UPDATE which depends on the state of
CONFIG_BINFMT_FLAT_NO_DATA_START_OFFSET to guard the initialization of
the shared library pointer region so that it will only be initialized
if space is reserved for it.
📍 영향받는 시스템
RISC-V 아키텍처를 사용하는 Linux 커널 (binfmt_flat 기능 활성화 시)
⚔️ 공격 벡터
조작된 FLAT 형식의 실행 파일을 실행하여 메모리 오염 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
커널 버전과 binfmt_flat 설정 여부를 확인하여 패치 적용 여부를 판단합니다.
uname -a && grep -E 'CONFIG_BINFMT_FLAT' /boot/config-$(uname -r) 2>/dev/null