CVE-2026-99180 in Linux정보

요약

\~에 의해 VulDB • 2026. 10. 28.

리눅스 커널에서 다음 취약점이 해결되었습니다:

unicode: 우아한 기간(grace period) 이후 맵 해제

generic_ci_d_hash() 및 generic_ci_d_compare()는 RCU 모드에서의 경로 탐색(pathwalk)이 rcu_read_lock()만 보유하고 있는 동안 sb->s_encoding을 읽고 유니코드 맵을 역참조합니다. 이를 사용하는 파일 시스템(ext4, f2fs, tmpfs)은 마운트의 마지막 참조가 사라질 때 실행되는 ->put_super()에서 utf8_unload()를 통해 맵을 해제합니다. 이때 해당 파일 시스템 내부에 여전히 있는 조회는 해지된 맵을 읽습니다.

케이스 폴딩(casefolded) 된 tmpfs의 마지막 참조가 사라지는 동안 utf8_casefold_hash()에서 경로 탐색이 유지되는 경우:

BUG: KASAN: slab-use-after-free in utf8nlookup+0x74c/0x950 Read of size 8 at addr ff110001030fe658 by task walker/98 Call Trace: <TASK> utf8nlookup+0x74c/0x950 utf8byte+0x160/0x1560 utf8_casefold_hash+0x167/0x230 generic_ci_d_hash+0xdd/0x1c0 link_path_walk+0x11ad/0x1d30 path_lookupat+0x63/0xb00 filename_lookup+0x1f1/0x5b0 vfs_statx+0xd7/0x3b0 [...]
Allocated by task 94: __kmalloc_cache_noprof+0x249/0x560 utf8_load+0x4e/0x570 shmem_parse_opt_casefold.isra.0+0x92/0x270 [...]
Freed by task 97: kfree+0x1db/0x5b0 shmem_put_super+0x72/0x170 generic_shutdown_super+0x14c/0x530 kill_anon_super+0x3a/0x60 deactivate_locked_super+0x9c/0xf0 cleanup_mnt+0x9f/0x130

지금까지 이는 발생시키기 어려웠습니다. umount(2)는 마운트를 해제하기 전에 namespace_unlock()에서 우아한 기간(grace period)을 기다리므로, 파일 닫기나 지연 언마운트된 디렉토리에서의 chdir 등 다른 곳에서 마지막 참조가 사라지는 경우에만 탐색기와 경합(race)이 발생할 수 있습니다. 따라서 접근 가능합니다.

우아한 기간이 지난 후에야 해지를 지연시킵니다. 맵과 그 안에 포함된 데이터 테이블의 참조는 마운트가 사라지기 전에 슈퍼블록을 찾은 모든 경로 탐색보다 더 오래 유지됩니다. 데이터 테이블 모듈에 대한 참조도 RCU 콜백에서 해제됩니다. CONFIG_UNICODE가 설정되면 utf8-core가 빌드되므로, 콜백을 기다려야 하는 모듈 종료는 없습니다.

Overlayfs는 자체 참조를 취하지 않고 오버레이의 첫 번째 레이어 맵으로 overlay의 s_encoding을 가리킵니다. 이는 정확하게 유지됩니다. 레이어는 오버레이에 의해 보유되므로, 오버레이가 사라진 후에만 그 맵이 해제됩니다.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

책임이 있는

Linux

예약하다

2026. 09. 25.

모더레이션

수락

항목

VDB-427943

EPSS

0.00000

출처

Interested in the pricing of exploits?

See the underground prices here!