🇰🇷 한글 설명
Linux 커널의 media: vidtv 구성 요소에서 메모리 소유권 이전 시 로컬 포인터를 NULL로 초기화하지 않아 발생하는 취약점입니다. 이로 인해 이미 해제된 메모리에 다시 접근하거나 중복 해제하는 Use-After-Free 및 Double-Free 취약점이 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터가 사용하던 메모리 주소를 비워두지 않아, 이미 버린 메모리를 다시 사용하거나 두 번 버리려고 시도하면서 시스템 오류를 일으키는 문제입니다. 이 과정에서 시스템이 충돌하거나 보안 공격에 노출될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
media: vidtv: initialize local pointers upon transfer of memory ownership
vidtv_channel_si_init() creates a temporary list (program, service, event)
and ownership of the memory itself is transferred to the PAT/SDT/EIT
tables through vidtv_psi_pat_program_assign(),
vidtv_psi_sdt_service_assign(), vidtv_psi_eit_event_assign().
The problem here is that the local pointer where the memory ownership
transfer was completed is not initialized to NULL. This causes the
vidtv_psi_pmt_create_sec_for_each_pat_entry() function to fail, and
in the flow that jumps to free_eit, the memory that was freed by
vidtv_psi_*_table_destroy() can be accessed again by
vidtv_psi_*_event_destroy() due to the uninitialized local pointer, so it
is freed once again.
Therefore, to prevent use-after-free and double-free vulnerability,
local pointers must be initialized to NULL when transferring memory
ownership.
📍 영향받는 시스템
Linux Kernel (media: vidtv 관련 모듈 사용 시스템)
⚔️ 공격 벡터
특수하게 조작된 PSI(PAT/SDT/EIT) 테이블 데이터를 전송하여 메모리 관리 오류 유도
🛡️ 대응 방법
메모리 소유권 이전 시 로컬 포인터를 NULL로 초기화하는 최신 Linux 커널 패치 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 최신 보안 패치 버전인지 확인