🇰🇷 한글 설명
Linux 커널의 overlayfs 구현에서 ovl_iterate_merged() 함수가 오류를 처리하는 과정 중 잘못된 값을 반환하는 취약점입니다. 성공적인 캐시 획득 시에도 잘못된 에러 코드가 반환될 수 있어 시스템 동작에 오류를 유발할 수 있습니다.
💡 쉬운 설명
파일 시스템의 특정 기능을 사용할 때, 컴퓨터가 실제로는 성공했음에도 불구하고 오류가 발생했다고 착각하게 만드는 버그입니다. 이로 인해 파일 목록을 읽는 등의 정상적인 작업이 갑자기 중단될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ovl: keep err zero after successful ovl_cache_get()
ovl_iterate_merged() stores PTR_ERR(cache) in err before checking
IS_ERR(cache). On success err holds the truncated cache pointer and
can be returned as a bogus non-zero error.
The syzbot reproducer reaches this through overlay-on-overlay readdir:
getdents64
iterate_dir(outer overlay file)
ovl_iterate_merged()
ovl_cache_get()
ovl_dir_read_merged()
ovl_dir_read()
iterate_dir(inner overlay file)
ovl_iterate_merged()
Only compute PTR_ERR(cache) on the error path.
📍 영향받는 시스템
Linux kernel (overlayfs 사용 환경)
⚔️ 공격 벡터
중첩된 overlayfs 구조에서 getdents64 시스템 호출을 통한 디렉토리 읽기 시도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.