ceph: bound copied dentry name length in NFS export get_name
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.6.157, 6.12.109, 6.18.50, 7.2.4
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: yes
- Technical impact: total
Summary
In the Linux kernel, the following vulnerability has been resolved: ceph: bound copied dentry name length in NFS export get_name ceph_get_name() copies the MDS-supplied name into the caller's NAME_MAX-sized buffer with memcpy(name, rinfo->dname, rinfo->dname_len) and then writes name[rinfo->dname_len] = 0, without checking dname_len against NAME_MAX. A malicious or buggy MDS that returns a LOOKUPNAME reply with dname_len > NAME_MAX overflows the buffer. __get_snap_name() copies rde->name / rde->name_len the same unchecked way. Impact: a malicious or compromised Ceph MDS overflows the NAME_MAX name buffer in a client's NFS-export get_name path, a slab out-of-bounds write reported by KASAN. Reachable when a CephFS mount is re-exported over NFS. Add ceph_export_copy_name(), which rejects lengths above NAME_MAX with -ENAMETOOLONG before the copy, and use it in both ceph_get_name() and __get_snap_name().
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: yes · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From 19913b4eac4a230dccb548931358398f45dabe4c · fixed in a294064e0e0f81ea607b2f019e16888aa1b0a011; From 19913b4eac4a230dccb548931358398f45dabe4c · fixed in 61d9f27b191b838b96b697ce0bfaee39a138243a; From 19913b4eac4a230dccb548931358398f45dabe4c · fixed in 06fb5e623cdc2402d6bb29be94d9beb9a826ffec; From 19913b4eac4a230dccb548931358398f45dabe4c · fixed in e7c2fd3893a7f7fcd7e8cf0b2c6348bb1e893df6; From 19913b4eac4a230dccb548931358398f45dabe4c · fixed in eff8013c5a8916613c742ae5a2cc341cb605c0ae
- Linux Linux
3.15
- KernelLinux
From 3.15.0 · fixed in 6.6.157; From 6.7.0 · fixed in 6.12.109; From 6.13.0 · fixed in 6.18.50; From 6.19.0 · fixed in 7.2.4