🇰🇷 한글 설명
Linux 커널 netfs 서브시스템에서 mempool 직접 할당 시 alloc_hooks() 래퍼가 누락되어 메모리 할당 태그가 설정되지 않는 문제가 수정되었습니다. 이로 인해 CONFIG_MEM_ALLOC_PROFILING_DEBUG 활성화 시 경고가 발생하고 /proc/allocinfo에서 해당 할당이 누락되었습니다. 새로운 mempool_alloc_noreserve() 헬퍼를 도입하여 문제를 해결했습니다.
💡 쉬운 설명
리눅스 커널 내부에서 메모리 사용량을 추적하는 기능에 누락이 있어 경고 메시지가 나오고 일부 메모리 사용 기록이 빠지는 문제입니다. 보안 침해 가능성이 보고되지 않은 주로 디버깅 관련 결함입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
netfs: Fix missing alloc tagging of direct mempool allocations
Commit 1d78d56c43ef ("netfs: Fix folio_queue ENOMEM in writeback by
adding a mempool") added a mempool for the folio_queues and made the
request, subrequest and folio_queue allocations distinguish between
writeback and everything else. Writeback is part of memory reclaim
and must not fail due to ENOMEM, so it allocates under GFP_NOFS
through mempool_alloc(), which may dip into the pool's reserve and,
if that runs empty, wait for elements to be returned. The
GFP_KERNEL paths, which can return -ENOMEM to their callers, invoke
the pool's ->alloc() callback directly instead.
The direct call, however, skips the alloc_hooks() wrapper that the
mempool_alloc() macro provides. The pool callbacks, mempool_alloc_slab()
and mempool_kmalloc(), call kmem_cache_alloc_noprof() and kmalloc_noprof()
and rely on current->alloc_tag having been set by the caller. With
CONFIG_MEM_ALLOC_PROFILING_DEBUG=y this leads to
current->alloc_tag not set
WARNING: ./include/linux/alloc_tag.h:161 at __alloc_tagging_slab_alloc_hook
alloc_tag was not set
WARNING: ./include/linux/alloc_tag.h:166 at __alloc_tagging_slab_free_hook
at allocation and free time respectively, as reported when reading
files on a CIFS mount. The allocations are also missing from
/proc/allocinfo.
Wrap the direct ->alloc() invocations in alloc_hooks() with a new
mempool_alloc_noreserve() helper in include/linux/mempool.h, next to
the other alloc_hooks()-wrapped macros such as mempool_alloc(). The
GFP_KERNEL paths keep their failable allocation semantics, they just
get tagged now.
📍 영향받는 시스템
패치 이전의 Linux 커널 (netfs 사용 환경, 특히 CIFS 마운트 사용 시 및 메모리 할당 프로파일링 디버그 옵션 활성화 시)
⚔️ 공격 벡터
직접적인 원격 공격 경로는 확인되지 않으며, 주로 디버그 경고 및 메모리 통계 누락을 유발하는 결함입니다.
🛡️ 대응 방법
커널을 해당 수정이 포함된 최신 안정 버전으로 업데이트하세요.
🔧 검증 코드
출력된 커널 버전을 배포판 보안 공지 또는 Linux 커널 stable 저장소에서 CVE-2026-98920 수정이 포함된 버전과 비교하여, 같거나 이후 버전이면 패치가 적용된 것입니다.