🔍 CVE-2022-49296

5.5
CVSS Score
MEDIUM
2025-02-26
2026-08-13 00:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 Ceph 파일 시스템에서 inline_data를 가져오기 위해 Fwb 캡을 보유하는 동안 발생할 수 있는 데드락(교착 상태) 취약점입니다. 특정 조건에서 파일 생성 및 쓰기 작업이 동시에 발생할 경우, MDS와 클라이언트 간의 캡(cap) 교환 과정에서 서로를 기다리며 시스템이 멈출 수 있습니다.

💡 쉬운 설명

파일을 만들고 바로 내용을 쓰는 과정에서 컴퓨터의 관리 시스템들이 서로의 작업이 끝나기만을 기다리며 무한 대기에 빠지는 문제입니다. 이로 인해 파일 시스템이 응답하지 않거나 시스템이 멈출 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: ceph: fix possible deadlock when holding Fwb to get inline_data 1, mount with wsync. 2, create a file with O_RDWR, and the request was sent to mds.0: ceph_atomic_open()--> ceph_mdsc_do_request(openc) finish_open(file, dentry, ceph_open)--> ceph_open()--> ceph_init_file()--> ceph_init_file_info()--> ceph_uninline_data()--> { ... if (inline_version == 1 || /* initial version, no data */ inline_version == CEPH_INLINE_NONE) goto out_unlock; ... } The inline_version will be 1, which is the initial version for the new create file. And here the ci->i_inline_version will keep with 1, it's buggy. 3, buffer write to the file immediately: ceph_write_iter()--> ceph_get_caps(file, need=Fw, want=Fb, ...); generic_perform_write()--> a_ops->write_begin()--> ceph_write_begin()--> netfs_write_begin()--> netfs_begin_read()--> netfs_rreq_submit_slice()--> netfs_read_from_server()--> rreq->netfs_ops->issue_read()--> ceph_netfs_issue_read()--> { ... if (ci->i_inline_version != CEPH_INLINE_NONE && ceph_netfs_issue_op_inline(subreq)) return; ... } ceph_put_cap_refs(ci, Fwb); The ceph_netfs_issue_op_inline() will send a getattr(Fsr) request to mds.1. 4, then the mds.1 will request the rd lock for CInode::filelock from the auth mds.0, the mds.0 will do the CInode::filelock state transation from excl --> sync, but it need to revoke the Fxwb caps back from the clients. While the kernel client has aleady held the Fwb caps and waiting for the getattr(Fsr). It's deadlock! URL: https://tracker.ceph.com/issues/55377

📍 영향받는 시스템

Linux Kernel (Ceph 파일 시스템 사용 환경)

⚔️ 공격 벡터

로컬 사용자가 특정 조건(wsync 마운트 및 특정 쓰기 패턴)을 유도하여 데드락 발생 가능

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.

Shell / Script
uname -r

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel