🇰🇷 한글 설명
리눅스 커널의 perf 성능 분석 도구에서 uprobes 기능 사용 시 발생하는 취약점입니다. 가변 길이 명령어 구조를 악용하여 실행 흐름 중간에 잘못된 명령어를 삽입하거나 데이터 세그먼트를 명령어로 오인하게 만들어 시스템을 파괴할 수 있습니다. 이를 방지하기 위해 uprobes 사용 시 CAP_SYS_ADMIN 권한을 요구하도록 수정되었습니다.
💡 쉬운 설명
컴퓨터가 명령어를 읽는 중간에 엉뚱한 코드를 끼워 넣어 시스템을 고장 낼 수 있는 보안 구멍이 발견되었습니다. 이제는 관리자 권한이 있는 사용자만 이 기능을 사용할 수 있도록 제한하여 위험을 막았습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
perf: Revert to requiring CAP_SYS_ADMIN for uprobes
Jann reports that uprobes can be used destructively when used in the
middle of an instruction. The kernel only verifies there is a valid
instruction at the requested offset, but due to variable instruction
length cannot determine if this is an instruction as seen by the
intended execution stream.
Additionally, Mark Rutland notes that on architectures that mix data
in the text segment (like arm64), a similar things can be done if the
data word is 'mistaken' for an instruction.
As such, require CAP_SYS_ADMIN for uprobes.
📍 영향받는 시스템
uprobes 기능을 사용하는 Linux Kernel (CAP_SYS_ADMIN 권한 제한 패치가 적용되지 않은 버전)
⚔️ 공격 벡터
가변 길이 명령어의 오프셋 조작 또는 데이터 세그먼트 내 데이터를 명령어로 오인하게 유도하여 실행 흐름 탈취
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 uprobes 사용 시 CAP_SYS_ADMIN 권한이 강제되도록 설정
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 최신 패치 버전인지 배포판 보안 공지를 통해 확인