CVE-2026-99159 in Linux
요약
\~에 의해 VulDB • 2026. 10. 28.
리눅스 커널에서 다음 취약점이 해결되었습니다:
ring-buffer: rb_meta_subbuf_idx()의 서브버퍼 배열 기본값 수정
지속적인 링 버퍼(ring buffer) 환경에서 rb_meta_subbuf_idx()는 실제보다 1개 많은 서브버프 인덱스를 반환할 수 있습니다. 이로 인해 rb_setup_ids_meta_page()가 subbuf_ids[]를 한 칸씩 밀어서 채우고 subbuf_ids[0]을 NULL로 남기며, 이는 사용자가 trace_pipe_raw를 매핑할 때 __rb_map_vma()에서 역참조(dereference)됩니다. 또한 rb_update_meta_reader()는 meta->buffers[]에 이러한 잘못된 인덱스 두 개를 기록하며, 다음 부팅 시 rb_cpu_meta_valid()가 이를 거부하여 이전 부트 세션의 트레이스를 폐기하게 됩니다.
CPU의 서브버퍼 배열은 메타 헤더와 그 뒤에 이어지는 nr_subbufs 정수들 이후에 위치하며, 서브버퍼 경계에 맞춰 정렬됩니다. rb_meta_subbuf_idx()는 이 계산을 역으로 수행하지만 헤더는 제외하고 정수 부분만 건너뛰므로, 생략된 헤더 크기가 정렬 경계를 초과할 경우 기본값이 실제보다 1개 적은 서브버프를 가리킵니다.
이를 반복 계산하는 대신 rb_subbufs_from_meta()로 계산을 역전시킵니다. rb_range_buffer()는 동일한 헬퍼 함수를 통해 인덱스를 주소로 매핑하므로, 양방향 간 불일치가 더 이상 발생하지 않습니다.
If you want to get best quality of vulnerability data, you may have to visit VulDB.