🇰🇷 한글 설명
Linux 커널의 smbdirect 모듈에서 수신 크레딧(recv credits)을 관리하는 로직에 레이스 컨디션(Race Condition) 취약점이 발견되었습니다. 하드웨어에서 수신을 완료하고 소프트웨어에서 처리하는 사이의 시간차로 인해 실제 존재하지 않는 크레딧을 부여할 수 있는 문제가 있습니다.
💡 쉬운 설명
데이터를 주고받을 때 사용할 수 있는 '티켓' 개수를 계산하는 과정에서 오류가 발생할 수 있는 문제입니다. 이로 인해 시스템이 처리할 수 있는 범위를 넘어서는 데이터가 들어올 때 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
smb: smbdirect: introduce smbdirect_socket.recv_io.credits.available
The logic off managing recv credits by counting posted recv_io and
granted credits is racy.
That's because the peer might already consumed a credit,
but between receiving the incoming recv at the hardware
and processing the completion in the 'recv_done' functions
we likely have a window where we grant credits, which
don't really exist.
So we better have a decicated counter for the
available credits, which will be incremented
when we posted new recv buffers and drained when
we grant the credits to the peer.
📍 영향받는 시스템
Linux kernel (smbdirect 모듈을 사용하는 시스템)
⚔️ 공격 벡터
네트워크를 통해 조작된 SMB 패킷을 전송하여 크레딧 관리 로직의 타이밍 오류를 유도
🛡️ 대응 방법
smbdirect_socket.recv_io.credits.available 카운터를 도입하여 수정된 최신 Linux 커널로 업데이트
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 취약점이 패치된 버전인지 확인합니다.