🇰🇷 한글 설명
리눅스 커널의 copy_process() 함수에서 프로세스 복제 시 PF_BLOCK_TS 플래그가 올바르게 초기화되지 않는 취약점입니다. 부모 프로세스의 플래그가 자식 프로세스로 상속되지만 자식의 plug 포인터는 NULL로 설정되어, 플래그와 포인터 간의 불일치가 발생합니다. 이로 인해 커널이 NULL 포인터를 참조하여 시스템 불안정성을 초래할 수 있습니다.
💡 쉬운 설명
컴퓨터의 핵심 운영체제인 리눅스에서 새로운 작업을 만들 때, 이전 작업의 흔적이 잘못 남아서 오류가 발생하는 문제입니다. 이 오류로 인해 시스템이 갑자기 멈추거나 예상치 못한 동작을 할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
kernel/fork: clear PF_BLOCK_TS in copy_process()
PF_BLOCK_TS is only set in blk_time_get_ns() when current->plug is
non-NULL, and blk_finish_plug() clears it via __blk_flush_plug()
before NULLing the plug pointer. copy_process() breaks the
invariant by inheriting PF_BLOCK_TS from the parent while resetting
the child's plug to NULL.
Clear PF_BLOCK_TS alongside that assignment so callers can rely on
"PF_BLOCK_TS set implies current->plug != NULL" and dereference
current->plug unguarded.
📍 영향받는 시스템
PF_BLOCK_TS 플래그를 사용하는 특정 버전의 Linux Kernel
⚔️ 공격 벡터
로컬 공격자가 특정 프로세스 복제 과정을 유도하여 커널의 NULL 포인터 역참조를 유발할 수 있음
🛡️ 대응 방법
PF_BLOCK_TS 플래그를 올바르게 초기화하는 패치가 적용된 최신 리눅스 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 보안 패치 버전 이후인지 확인