🇰🇷 한글 설명
Linux 커널의 9P 파일 시스템에서 마운트 옵션 처리 중 접근 모드 플래그가 덮어씌워지지 않고 OR 연산되어 충돌하는 결함이 있습니다. 이로 인해 루트 사용자를 포함한 모든 사용자가 파일 소유권 변경 등 특권 작업을 수행할 때 권한 오류가 발생합니다.
💡 쉬운 설명
9P 파일 시스템을 사용할 때 설정한 접근 권한이 제대로 적용되지 않는 버그입니다. 이 문제로 인해 관리자 권한으로 파일을 관리하거나 소유권을 변경하는 작업이 실패하게 됩니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
9p: fix access mode flags being ORed instead of replaced
Since commit 1f3e4142c0eb ("9p: convert to the new mount API"),
v9fs_apply_options() applies parsed mount flags with |= onto flags
already set by v9fs_session_init(). For 9P2000.L, session_init sets
V9FS_ACCESS_CLIENT as the default, so when the user mounts with
"access=user", both bits end up set. Access mode checks compare
against exact values, so having both bits set matches neither mode.
This causes v9fs_fid_lookup() to fall through to the default switch
case, using INVALID_UID (nobody/65534) instead of current_fsuid()
for all fid lookups. Root is then unable to chown or perform other
privileged operations.
Fix by clearing the access mask before applying the user's choice.
📍 영향받는 시스템
Linux kernel (9p/v9fs 모듈 사용 시스템)
⚔️ 공격 벡터
로컬 마운트 옵션을 통한 권한 충돌 유발 및 특권 작업 방해
🛡️ 대응 방법
커널 패치 적용 또는 v9fs_apply_options 함수 수정을 통해 플래그 초기화
🔧 검증 코드
출력된 커널 버전이 취약한 버전인지 패치 노트를 통해 확인해야 합니다.