🇰🇷 한글 설명
Linux 커널의 netfs 구성 요소 내 netfs_perform_write() 함수에서 folio->private 처리 오류가 발견되었습니다. 이로 인해 folio 참조 누수, netfs_folio 구조체 또는 netfs_group 참조 누수가 발생할 수 있습니다. 수정 사항은 folio 상태 업데이트 위치를 통합하고 그룹 설정 방식을 개선하여 데이터 누수를 방지하는 것입니다.
💡 쉬운 설명
리눅스 운영체제의 네트워크 파일 시스템 관리 과정에서 메모리 자원을 제대로 반환하지 못하는 오류가 있었습니다. 이 문제가 지속되면 시스템의 메모리가 조금씩 새어나가 성능 저하나 시스템 불안정을 초래할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
netfs: Fix folio->private handling in netfs_perform_write()
Under some circumstances, netfs_perform_write() doesn't correctly
manipulate folio->private between NULL, NETFS_FOLIO_COPY_TO_CACHE, pointing
to a group and pointing to a netfs_folio struct, leading to potential
multiple attachments of private data with associated folio ref leaks and
also leaks of netfs_folio structs or netfs_group refs.
Fix this by consolidating the place at which a folio is marked uptodate in
one place and having that look at what's attached to folio->private and
decide how to clean it up and then set the new group. Also, the content
shouldn't be flushed if group is NULL, even if a group is specified in the
netfs_group parameter, as that would be the case for a new folio. A
filesystem should always specify netfs_group or never specify netfs_group.
The Sashiko auto-review tool noted that it was theoretically possible that
the fpos >= ctx->zero_point section might leak if it modified a streaming
write folio. This is unlikely, but with a network filesystem, third party
changes can happen. It also pointed out that __netfs_set_group() would
leak if called multiple times on the same folio from the "whole folio
modify section".
📍 영향받는 시스템
Linux kernel (netfs subsystem 사용 환경)
⚔️ 공격 벡터
네트워크 파일 시스템을 사용하는 환경에서 특정 쓰기 작업(netfs_perform_write)을 유도하여 자원 누수 유발
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인