🇰🇷 한글 설명
Linux 커널의 L2TP 프로토콜에서 세션 생성 시 터널 참조 횟수(refcount)가 적절히 증가하기 전에 세션이 해제될 수 있는 레이스 컨디션 취약점입니다. 이로 인해 참조 횟수 언더플로우(underflow)가 발생하여 시스템 불안정성이나 권한 상승을 초래할 수 있습니다.
💡 쉬운 설명
네트워크 연결을 만드는 과정에서 순서가 어긋나 데이터의 개수를 세는 숫자가 마이너스가 되는 오류입니다. 이 오류를 이용하면 컴퓨터 시스템을 고장 내거나 해킹할 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
l2tp: prevent possible tunnel refcount underflow
When a session is created, it sets a backpointer to its tunnel. When
the session refcount drops to 0, l2tp_session_free drops the tunnel
refcount if session->tunnel is non-NULL. However, session->tunnel is
set in l2tp_session_create, before the tunnel refcount is incremented
by l2tp_session_register, which leaves a small window where
session->tunnel is non-NULL when the tunnel refcount hasn't been
bumped.
Moving the assignment to l2tp_session_register is trivial but
l2tp_session_create calls l2tp_session_set_header_len which uses
session->tunnel to get the tunnel's encap. Add an encap arg to
l2tp_session_set_header_len to avoid using session->tunnel.
If l2tpv3 sessions have colliding IDs, it is possible for
l2tp_v3_session_get to race with l2tp_session_register and fetch a
session which doesn't yet have session->tunnel set. Add a check for
this case.
📍 영향받는 시스템
L2TP 프로토콜을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
L2TPv3 세션 ID 충돌을 유도하여 세션 등록 과정 중의 레이스 컨디션을 이용한 공격
🛡️ 대응 방법
L2TP 관련 패치가 적용된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 취약점이 해결된 최신 패치 버전인지 확인