In the Linux kernel, the following vulnerability has been resolved: ring-buffer: Use current_context for safe per-CPU buffer swap The ring
위협 신호 · CVSS · EPSS · KEV
이론적 심각도 점수
30일 내 악용 확률 예측
실측 악용 기록 없음
별도 긴급 패치 불필요 — 정기 시스템 업그레이드 주기에 맞춰 조치
CVSS 벡터 · 메트릭
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H상세 설명
In the Linux kernel, the following vulnerability has been resolved:
ring-buffer: Use current_context for safe per-CPU buffer swap
The ring_buffer_swap_cpu() function currently checks the per-CPU
committing counter to determine if a buffer is actively being written to
before performing the swap. However, there exists a race window where
this check can be bypassed:
1ring_buffer_lock_reserve 2 cpu_buffer = buffer->buffers[cpu]; // cpu_buffer_a 3 rb_reserve_next_event 4 rb_start_commit // inc committing 5 if (unlikely(READ_ONCE(cpu_buffer->buffer) != buffer)) {...} 6 __rb_reserve_next 7 rb_move_tail 8 rb_end_commit(cpu_buffer); // dec committing => 0 9 /* interrupt hits here, successfully swaps! */10 local_inc(&cpu_buffer->committing);11 12ring_buffer_unlock_commit13 cpu_buffer = buffer->buffers[cpu]; // cpu_buffer_b14 rb_commit15 rb_end_commit16 RB_WARN_ON(cpu_buffer, !local_read(&cpu_buffer->committing))17 // triggers warningThe committing counter can temporarily drop to 0 during a single write
operation (within rb_move_tail), creating a window where swap can
succeed even though the write is still in progress. This leads to
inconsistent buffer state and triggers the RB_WARN_ON in rb_commit().
Replace the committing counter check with current_context checks, which
are set at the entry of ring_buffer_lock_reserve() and remain valid
throughout the entire write operation, providing a reliable indicator of
buffer busy state during swap.
AI 심층 분석
공격 시나리오 · 재현 가능한 PoC 페이로드 · 즉시 적용 가능한 차단 패치를 한 번에 받아 보세요. 보안 운영팀이 그대로 점검·티켓팅에 쓸 수 있는 형태로 정리해 드립니다.
참고 자료 8
링크 내용 불러오는 중…