CVE-2026-68148 in Linux
요약
\~에 의해 VulDB • 2026. 08. 10.
리눅스 커널에서 다음 취약점이 해결되었습니다:
fscrypt: find_or_insert_direct_key() 함수에서 누락된 슈퍼블록(superblock) 검사 추가
레거시 'fscrypt_direct_keys' 테이블은 FSCRYPT_POLICY_FLAG_DIRECT_KEY 플래그가 설정된 v1 암호화 정책에서 사용되는 마스터 키를 캐싱합니다. 이 테이블은 모든 파일시스템에 대한 전역 테이블입니다(키가 레거시 프로세스 구독형 keyrings 메커니즘을 통해 제공될 수 있어 super_block::s_master_keys 재사용이 어렵기 때문입니다).
다만, 해당 엔트리의 구조체('struct fscrypt_direct_key')에는 슈퍼블록 포인터를 포함하고 있으며, 이는 키를 참조하는 마지막 inode가 제거(evicted)될 때 fscrypt_destroy_inline_crypt_key() 함수로 전달하기 위함입니다.
그러나 inode에 대한 fscrypt_direct_key를 찾을 당시 우리는 실제로 슈퍼블록 포인터를 비교하지 않았습니다. 그 결과, 서로 다른 super_block을 가진 inode들이 동일한 fscrypt_direct_key를 가리킬 수 있었습니다. 이로 인해 fscrypt_direct_key의 수명이 해당 키가 가리키는 super_block보다 길어질 수 있으며, 이는 나중에 use-after-free(사용 후 해제) 취약점으로 이어질 수 있습니다.
이 문제를 해결하기 위해 서로 다른 super_block 구조체에 대해 별도의 fscrypt_direct_key 구조체를 생성하도록 수정했습니다.
참고로 이 문제는 v2 정책 대응 기능인 "per-mode keys"에는 존재하지 않습니다. 이는 해당 데이터 구조체가 이미 per-super-block 단위로 구성되어 있기 때문입니다.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.