🔍 CVE-2025-21896

7.8
CVSS Score
HIGH
2025-04-01
2026-07-30 06:21
✅ 완료

🇰🇷 한글 설명

Linux 커널의 FUSE 파일 시스템에서 readahead 로직을 folio 기반으로 전환하는 과정에서 참조 횟수 관리 오류가 발생했습니다. 이로 인해 splice pipe 응답 시 기존 folio를 제거하고 새 folio를 삽입할 때 참조가 유지되지 않아 Use-After-Free(UAF) 취약점이 발생할 수 있습니다.

💡 쉬운 설명

컴퓨터가 데이터를 미리 읽어오는 과정에서 메모리 관리 규칙을 잘못 적용하여, 이미 사용이 끝난 메모리 영역을 다시 사용하려고 시도하는 오류입니다. 이 오류를 이용하면 시스템이 충돌하거나 해커가 권한을 탈취할 위험이 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: fuse: revert back to __readahead_folio() for readahead In commit 3eab9d7bc2f4 ("fuse: convert readahead to use folios"), the logic was converted to using the new folio readahead code, which drops the reference on the folio once it is locked, using an inferred reference on the folio. Previously we held a reference on the folio for the entire duration of the readpages call. This is fine, however for the case for splice pipe responses where we will remove the old folio and splice in the new folio (see fuse_try_move_page()), we assume that there is a reference held on the folio for ap->folios, which is no longer the case. To fix this, revert back to __readahead_folio() which allows us to hold the reference on the folio for the duration of readpages until either we drop the reference ourselves in fuse_readpages_end() or the reference is dropped after it's replaced in the page cache in the splice case. This will fix the UAF bug that was reported.

📍 영향받는 시스템

folio readahead 전환 커밋(3eab9d7bc2f2)이 적용된 Linux 커널 버전

⚔️ 공격 벡터

FUSE 파일 시스템을 사용하는 환경에서 특정 splice pipe 응답을 유도하여 메모리 참조 오류 유발

🛡️ 대응 방법

해당 취약점이 수정된 최신 Linux 커널 버전으로 업데이트하거나, 관련 커밋(3eab9d7bc2f2)을 되돌린 패치를 적용하십시오.

🔧 검증 코드

출력된 커널 버전을 확인하여 취약점이 해결된 최신 패치 버전인지 확인하십시오.

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel