🇰🇷 한글 설명
Linux 커널의 SELinux 모듈에서, 이미 초기화된 슈퍼블록을 재사용하는 두 번째 마운트 시 SECURITY_LSM_NATIVE_LABELS 플래그가 설정되지 않아 NFSv4 파일별 보안 레이블 기능이 의도치 않게 비활성화되는 문제입니다. 이 문제는 동일 서버를 공유하는 원본 마운트에도 영향을 미칩니다. 해당 수정은 이미 초기화된 슈퍼블록의 조기 반환 경로에서 플래그를 보존하도록 변경하는 것입니다.
💡 쉬운 설명
같은 NFS 저장소를 두 번째로 연결하면 파일마다 붙는 보안 표시(보안 레이블)가 꺼져서 접근 제어가 약해질 수 있습니다. 이 문제는 먼저 연결된 쪽에도 똑같이 영향을 줍니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
selinux: preserve NATIVE_LABELS on already-initialized sb in set_mnt_opts
When an NFSv4 filesystem exported with security_label is mounted a
second time, sget_fc() returns the existing superblock and
nfs_get_root() calls security_sb_set_mnt_opts() again on it. Since the
superblock is already SB_INITIALIZED, selinux_set_mnt_opts() takes an
early exit without setting SECURITY_LSM_NATIVE_LABELS in
*set_kern_flags. nfs_get_root() then sees kflags without
SECURITY_LSM_NATIVE_LABELS set and clears NFS_CAP_SECURITY_LABEL on
the shared nfs_server, silently disabling per-file labeling for both
the new and the original mount.
Commit 3815a245b501 ("security/selinux: fix SECURITY_LSM_NATIVE_LABELS
on reused superblock") fixed the same problem in
selinux_sb_clone_mnt_opts(). The reused-superblock path for a plain
second mount now goes through sb_set_mnt_opts rather than
sb_clone_mnt_opts, so it needs the same treatment: on both
SE_SBINITIALIZED early exits, set SECURITY_LSM_NATIVE_LABELS in
*set_kern_flags when the superblock was already using
SECURITY_FS_USE_NATVE.
📍 영향받는 시스템
보안 레이블(security_label)을 사용하는 NFSv4 마운트를 지원하는 SELinux 활성화 Linux 커널 (수정 커밋 3815a245b501 이후 경로 관련 버전 포함)
⚔️ 공격 벡터
보안 레이블 기능이 꺼진 상태에서 파일 접근 통제가 약화되어, 권한 제한을 우회하거나 잘못된 접근이 허용될 수 있는 상황을 유도할 수 있습니다.
🛡️ 대응 방법
패치된 Linux 커널 업데이트를 적용하고, 배포판 제공 보안 업데이트를 설치한 뒤 재부팅합니다.
🔧 검증 코드
커널 버전이 배포판의 수정 패치 버전 이상인지 확인하고, CONFIG_SECURITY_SELINUX=y가 표시되면 SELinux가 활성화된 커널이므로 패치 적용 여부를 배포판 보안 공지와 대조합니다.
uname -r && grep -i 'selinux' /boot/config-$(uname -r) 2>/dev/null | head -5