🇰🇷 한글 설명
Linux 커널의 RDMA/counter 구성 요소에서 bind_qp 실패 시 num_counters 값이 감소하지 않는 메모리 누수 취약점이 발견되었습니다. 이로 인해 반복적인 실패가 발생하면 포트가 AUTO 모드로 전환되지 못하고 시스템 리소스가 고갈될 수 있습니다.
💡 쉬운 설명
컴퓨터의 통신 장치가 연결을 시도하다 실패했을 때, 사용했던 기록을 제대로 지우지 않아 발생하는 문제입니다. 이 문제가 반복되면 장치가 먹통이 되어 정상적인 모드로 돌아오지 못하게 됩니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
RDMA/counter: Fix num_counters leak on bind_qp failure in alloc_and_bind()
When __rdma_counter_bind_qp() fails in alloc_and_bind(), the error path
jumps to err_mode which frees the counter without decrementing
port_counter->num_counters. The only place that decrements is
rdma_counter_free(), which is unreachable since the counter was never
successfully bound.
This leak accumulates across repeated failures, permanently preventing
the port from switching to AUTO mode (-EBUSY in __counter_set_mode())
and blocking the MANUAL→NONE auto-revert in rdma_counter_free(). When
the mode was NONE before the call, the MANUAL mode set by
__counter_set_mode() also leaks since the revert logic is never
reached.
Add an err_bind label between the num_counters increment and the
existing err_mode label. It decrements num_counters and mirrors the
MANUAL→NONE revert from rdma_counter_free(), ensuring the port state
is fully restored on bind failure.
📍 영향받는 시스템
RDMA 카운터를 사용하는 Linux 커널 버전
⚔️ 공격 벡터
RDMA 연결 시도(bind_qp)를 의도적으로 반복 실패시켜 시스템 리소스를 고갈시키고 포트 상태를 마비시킴
🛡️ 대응 방법
해당 취약점이 수정된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 패치가 적용된 보안 업데이트 버전인지 확인