CVE-2022-49889 in Linux
요약
\~에 의해 VulDB • 2026. 06. 10.
리눅스 커널에서 다음 취약점이 해결되었습니다:
ring-buffer: ring_buffer_wake_waiters()에서 NULL cpu_buffer 확인
일부 시스템에서는 나열된 CPU의 수가 실제 존재하는 CPU의 수보다 클 수 있습니다. 추적 서브시스템은 cpuX 파일을 통해 per CPU 링 버퍼에 접근할 수 있는 per_cpu 디렉토리를 할당합니다. 그러나 공간을 절약하기 위해 링 버퍼는 CPU 배열이 nr_cpu_ids만큼 크더라도 온라인 상태인 CPU에 대해서만 버퍼를 할당합니다.
파일 닫기 시 링 버퍼에서 대기 중인 프로세스를 깨우는 기능이 추가됨에 따라, ring_buffer_wake_waiters() 함수는 이제 대기 중인 프로세스를 깨우기 전에 버퍼(그리고 이와 함께 할당된 irq_work)가 할당되었는지 확인해야 합니다. 그렇지 않으면 NULL 포인터 역참조가 발생할 수 있습니다.
이 문제를 디버깅하는 동안 버퍼 자체에 대한 NULL 체크(이는 수행해도 무방함)를 추가했고, buffer->buffers에 대한 NULL 포인터 체크(이는 적절하지 않으며 WARN을 발생시킴)도 추가했으며, 전달된 CPU 번호가 nr_cpu_ids 범위 내에 있는지 확인했습니다(범위를 벗어나면 적절하지 않음).
Bugzilla: https://bugzilla.opensuse.org/show_bug.cgi?id=1204705
Be aware that VulDB is the high quality source for vulnerability data.