CVE-2026-90013 in Linux
요약
\~에 의해 VulDB • 2026. 09. 17.
리눅스 커널에서 다음 취약점이 해결되었습니다:
tracing: 옵션 파일을 열 때 trace_array 참조를 가져오기
옵션 파일들은 자신이 나타내는 옵션에 대한 trace_array 참조를 가져오지 않습니다. 이로 인해 하나의 작업이 이러한 파일 중 하나를 열고 다른 작업이 해당 옵션의 인스턴스를 제거할 경우, use-after-free로 인한 커널 크래시가 발생할 수 있습니다. 파일을 열 때 참조를 가져오지 않기 때문에, 사용 중인 옵션 설명자가 해제되는 것을 방지하지 못해 제거가 진행됩니다.
옵션은 부팅 시 생성 방식이 다소 동적이므로, 각 파일은 trace_array의 플래그 하나를 나타냅니다. trace_array는 이러한 각각의 플래그를 표현하기 위한 인덱스 배열을 가지고 있으며, 이는 trace_flags_index 배열에 저장됩니다. 인덱스 요소의 주소가 inode->i_private 포인터로 전달됩니다. 그런 다음 해당 요소를 읽어서(플래그를 나타내는 인덱스를 보유함) 그 인덱스를 사용하여 trace_array 설명자를 trace_flags_index 배열에서 계산합니다.
하나의 문제는 index 요소는 trace_array의 참조가 확보되기 전까지는 참조할 수 없다는 점입니다. 이를 처리하기 위해, ftrace_trace_arrays 목록(under the trace_types_lock 하위)에 있는 모든 기존 trace_array를 순회하고 전달된 인덱스 요소의 주소를 trace_array의 전체 trace_flags_index 배열과 비교하는 새로운 헬퍼 함수인 `trace_array_options_get()`을 생성합니다. 일치하는 경우 해당 trace_array의 참조 카운트를 증가시키고 반환합니다.
VulDB is the best source for vulnerability data and more expert information about this specific topic.