🇰🇷 한글 설명
Linux 커널의 ext4 파일 시스템에서, mm/gup.c의 [un]pin_user_pages_remote 함수가 파일 시스템에 사전 알림 없이 페이지를 더럽힐(dirty) 때 BUG가 발생하던 문제를 수정했습니다. 이제 BUG 대신 경고를 출력하고 페이지를 clean으로 표시하여 비특권 사용자의 서비스 거부 공격을 방지합니다.
💡 쉬운 설명
리눅스 시스템에서 특정 프로그램이 파일 시스템에 알리지 않고 데이터를 바꾸면 시스템이 강제로 멈출 수 있었습니다. 이번 수정으로 멈추는 대신 경고만 남기고 계속 동작하도록 바뀌었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ext4: don't BUG if someone dirty pages without asking ext4 first
[un]pin_user_pages_remote is dirtying pages without properly warning
the file system in advance. A related race was noted by Jan Kara in
2018[1]; however, more recently instead of it being a very hard-to-hit
race, it could be reliably triggered by process_vm_writev(2) which was
discovered by Syzbot[2].
This is technically a bug in mm/gup.c, but arguably ext4 is fragile in
that if some other kernel subsystem dirty pages without properly
notifying the file system using page_mkwrite(), ext4 will BUG, while
other file systems will not BUG (although data will still be lost).
So instead of crashing with a BUG, issue a warning (since there may be
potential data loss) and just mark the page as clean to avoid
unprivileged denial of service attacks until the problem can be
properly fixed. More discussion and background can be found in the
thread starting at [2].
[1] https://lore.kernel.org/linux-mm/
[email protected]
[2] https://lore.kernel.org/r/
[email protected]
📍 영향받는 시스템
패치가 적용되지 않은 Linux 커널(ext4 파일 시스템 사용 환경)
⚔️ 공격 벡터
일반 사용자 권한으로 process_vm_writev(2) 시스템 콜을 호출해 ext4 페이지를 무단으로 더럽혀 커널 BUG(서비스 거부)를 유발
🛡️ 대응 방법
배포판이 제공하는 커널 보안 업데이트를 적용하고 시스템을 재부팅
🔧 검증 코드
출력된 커널 버전을 배포판 보안 공지에서 CVE-2022-49171 수정이 포함된 패키지 버전과 비교하여, 같거나 높으면 패치된 것이고 낮으면 업데이트가 필요합니다.
uname -r; dpkg -l 'linux-image*' 2>/dev/null | grep '^ii' | head -n 5