🇰🇷 한글 설명
Linux 커널의 J1939 네트워크 스택에서 두 번째 RTS(Request to Send) 수신 시 세션을 비활성화하는 과정에 결함이 발견되었습니다. 타이머 취소 시 세션 비활성화 함수가 호출되지 않아 참조 횟수(refcount)가 누수되며, 이로 인해 네트워크 장치가 정상적으로 해제되지 않는 문제가 발생합니다.
💡 쉬운 설명
컴퓨터가 네트워크 통신을 정리할 때, 사용 중인 자원을 제대로 반납하지 않고 계속 붙잡고 있는 버그입니다. 이 문제가 반복되면 시스템 자원이 낭비되어 네트워크 장치를 끄거나 재설정할 때 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: can: j1939: j1939_xtp_rx_rts_session_active(): deactivate session upon receiving the second rts
Since j1939_session_deactivate_activate_next() in j1939_tp_rxtimer() is
called only when the timer is enabled, we need to call
j1939_session_deactivate_activate_next() if we cancelled the timer.
Otherwise, refcount for j1939_session leaks, which will later appear as
| unregister_netdevice: waiting for vcan0 to become free. Usage count = 2.
problem.
📍 영향받는 시스템
J1939 프로토콜을 사용하는 Linux 커널 기반 시스템 (vcan0 등 가상 CAN 인터페이스 포함)
⚔️ 공격 벡터
특정 네트워크 패킷(RTS)을 조작하여 전송함으로써 커널 내 참조 횟수 누수를 유도하는 방식
🛡️ 대응 방법
해당 취약점이 해결된 최신 버전의 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 패치가 적용된 보안 업데이트 버전인지 확인