🇰🇷 한글 설명
리눅스 커널의 nfp 네트워크 드라이버에서 규칙 재프로그래밍 실패 시 기존 규칙이 목록에서 제대로 제거되지 않는 취약점이 발견되었습니다. 이로 인해 하드웨어에는 존재하지 않는 규칙이 목록에 남아 카운트 불일치가 발생하며, 사용자 공간에서 버퍼 크기를 잘못 계산하게 만듭니다.
💡 쉬운 설명
네트워크 설정 규칙을 바꾸려다 실패했을 때, 이미 삭제된 규칙이 목록에 남아있는 오류가 있습니다. 이 때문에 컴퓨터가 실제 규칙 개수보다 적은 메모리 공간을 준비하게 되어 오류가 발생합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
eth: nfp: drop the replaced rule from the list when reprogramming fails
nfp_net_fs_add() replaces an existing rule by deleting it from the
hardware, decrementing nn->fs.count and programming the new one. If
nfp_net_fs_add_hw() fails the old entry stays on nn->fs.list - only the
success path reaches list_replace() - so the list is one longer than
nn->fs.count, and it advertises a rule whose hardware entry has already
been torn down.
nn->fs.count is what ETHTOOL_GRXCLSRLCNT reports, so userspace then sizes
its buffer one entry short of what the GRXCLSRLALL walk wants to write.
That used to overwrite one u32 past the allocation; since the walk is
bounded it is a permanent -EMSGSIZE instead, as nothing ever resyncs the
counter.
📍 영향받는 시스템
Linux kernel (nfp network driver module)
⚔️ 공격 벡터
로컬 공격자가 네트워크 규칙 재프로그래밍을 유도하여 메모리 크기 불일치 및 -EMSGSIZE 오류 유발
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.