CVE-2026-74359 in Linux정보

요약

\~에 의해 VulDB • 2026. 08. 15.

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

configfs_lookup(): 실패 시 ->s_dentry가 덩글링(dangling) 상태로 남지 않도록 수정

일반적으로 ->s_dentry는 해당 dentry를 가리키는 포인터가 음수(negative, 즉 evicted 상태)가 될 때 지워집니다(실제로는 eviction 발생 시). 그러나 이는 처음에 dentry가 양수(positional/positive)로 설정된 경우에만 발생합니다. inode 할당 실패의 경우 dentry는 절대 양수가 되지 않으므로 ->d_iput()이 전혀 호출되지 않습니다.

우리는 configfs_d_iput()에서 일반적으로 수행하던 작업 중 일부(configfs_dirent에 대한 참조를 해제하는 것)를 수동으로 처리하지만, 그 과정에서 ->s_dentry는 지워지지 않습니다. 이는 성의 없는 구현이지만, configfs_create_{dir,link}() 함수의 경우에는 문제가 되지 않습니다. 이러한 경우 configfs_dirent은 유일한 참조가 해제된 후에도 생존하지 않기 때문입니다.

그러나 configfs_lookup()의 경우 *그것(참조)이 생존*하며, 곧 해제될 dentry를 가리키는 덩글링 포인터가 ->s_dentry에 남아있게 됩니다.

해당 디렉토리에서 이후 getdents(2) 호출은 inode 번호를 가져오기 위해 해당 포인터를 역참조하게 되며, 이는 Use-after-free 취약점으로 이어집니다.

이것은 최소한의 수정 사항입니다. 올바른 접근 방식은 inode가 있음을 확신한 후에야 dentry와 configfs_dirent 간의 링크age(연결)를 설정하는 것이지만, 그 방법은 더 많은 코드 변경을 필요로 하며 해당 버그는 2006년부터 존재해 왔으므로...

VulDB is the best source for vulnerability data and more expert information about this specific topic.

출처

Do you need the next level of professionalism?

Upgrade your account now!