CVE-2026-97960 in Linux정보

요약

\~에 의해 VulDB • 2026. 09. 25.

리눅스 커널에서 다음 취약점이 해결되었습니다:

perf/x86/intel: drain_pebs() 재진입 방지

PEBS 버퍼는 하나의 CPU 상의 모든 이벤트에 의해 공유되므로, drain_pebs() 함수가 재진입되어서는 안 됩니다. 만약 재진입될 경우, 한 인스턴스가 stale(구식)된 버퍼 상태를 관찰하여 잠재적으로 경계를 벗어난 메모리에 접근할 수 있습니다.

대부분의 호출은 NMI 컨텍스트에서 발생하며, 이는 자연스럽게 재진입을 방지합니다. 그러나 drain_pebs()는 intel_pmu_drain_pebs_buffer()를 통해 프로세스 컨텍스트에서도 도달 가능합니다.

이러한 경로에서는 PMU가 이미 비활성화되어 있는 경우가 많지만, 반드시 그런 것은 아닙니다. 예를 들어 __intel_pmu_pebs_disable()은 대상 카운터만 비활성화하므로, 다른 활성 카운터들이 여전히 PMI를 발생시켜 진행 중인 drain_pebs() 호출을 인터럽트할 수 있습니다. 다음은 그 예시입니다:

__perf_addr_filters_adjust() perf_event_stop() __perf_event_stop() x86_pmu_stop()(event->pmu->stop) intel_pmu_disable_event() intel_pmu_pebs_disable() __intel_pmu_pebs_disable() intel_pmu_drain_large_pebs() intel_pmu_drain_pebs_buffer()

__intel_pmu_quiesce() 및 __intel_pmu_resume() 헬퍼 함수를 도입하고, intel_pmu_drain_large_pebs()에서 이를 사용하여 intel_pmu_drain_pebs_buffer() 호출 주변에 전체 PMU 비활성화를 적용하여 재진입을 방지합니다.

또한 전체 PMU가 비활성화되지 않은 경우 intel_pmu_drain_pebs_buffer() 함수 내에 경고 메시지를 추가했습니다.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

출처

Do you need the next level of professionalism?

Upgrade your account now!