🇰🇷 한글 설명
Linux 커널의 fs 서브시스템에서 clear_inode() 함수 실행 시 사용되지 않는 xarray 노드가 해제되지 않아 메모리 누수가 발생하는 문제입니다. 기존에는 드물게 발생했으나 madvise 시스템 호출을 통해 강제로 유발할 수 있음이 확인되었습니다. 수정 방식은 clear_inode()에서 xa_destroy()를 호출하여 남은 노드를 해제하는 것입니다.
💡 쉬운 설명
리눅스 시스템 내부에서 쓰지 않는 메모리 조각이 제대로 정리되지 않고 계속 쌓이는 문제입니다. 공격자가 특정 명령을 반복해 이 메모리를 고갈시켜 시스템을 느리게 하거나 멈추게 할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
fs: Free any excess xarray nodes in clear_inode()
For many years we've had a hard to hit leak of xarray nodes. Hugh
documented it well in commit 786b31121a2c. Recently people and
syzbot have found ways to force it to happen with madvise. Rather
than fix the leaks where they happen, just call xa_destroy() which
has the side-effect of cycling the i_pages lock.
📍 영향받는 시스템
수정 커밋 이전의 Linux 커널 버전 (CVSS 0.0, 영향 범위 및 정확한 버전 정보 미확인)
⚔️ 공격 벡터
로컬 사용자가 madvise 시스템 호출을 반복적으로 사용해 xarray 노드 누수를 유발하여 메모리를 고갈시키는 방식 (서비스 거부)
🛡️ 대응 방법
배포판 제공 최신 커널로 업데이트하거나 수정 커밋(clear_inode에 xa_destroy 추가)이 포함된 커널을 적용
🔧 검증 코드
출력된 커널 버전을 배포판 보안 공지 또는 upstream 수정 커밋 포함 버전과 비교하여, 해당 수정이 포함된 이후 버전이면 안전하고 그 이전 버전이면 업데이트가 필요합니다.