CVE-2024-47740

f2fs: Require FMODE_WRITE for atomic write ioctls

State
Published
Severity
7.1 High
Published
Oct 21, 2024
Updated
Aug 5, 2026
Reserved
Sep 30, 2024

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

f2fs: Require FMODE_WRITE for atomic write ioctls

The F2FS ioctls for starting and committing atomic writes check for inode_owner_or_capable(), but this does not give LSMs like SELinux or Landlock an opportunity to deny the write access - if the caller's FSUID matches the inode's UID, inode_owner_or_capable() immediately returns true.

There are scenarios where LSMs want to deny a process the ability to write particular files, even files that the FSUID of the process owns; but this can currently partially be bypassed using atomic write ioctls in two ways:

- F2FS_IOC_START_ATOMIC_REPLACE + F2FS_IOC_COMMIT_ATOMIC_WRITE can truncate an inode to size 0 - F2FS_IOC_START_ATOMIC_WRITE + F2FS_IOC_ABORT_ATOMIC_WRITE can revert changes another process concurrently made to a file

Fix it by requiring FMODE_WRITE for these operations, just like for F2FS_IOC_MOVE_RANGE. Since any legitimate caller should only be using these ioctls when intending to write into the file, that seems unlikely to break anything.

Scores

CVSSScoreVectorSource
3.17.1 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 88b88a66797159949cec32eaab12b4968f6fae2d to before 700f3a7c7fa5764c9f24bbf7c78e0b6e479fa653Affected
  • 88b88a66797159949cec32eaab12b4968f6fae2d to before 4ce87674c3a6b4d3b3d45f85b584ab8618a3ceceAffected
  • 88b88a66797159949cec32eaab12b4968f6fae2d to before 000bab8753ae29a259feb339b99ee759795a48acAffected
  • 88b88a66797159949cec32eaab12b4968f6fae2d to before 88ff021e1fea2d9b40b2d5efd9013c89f7be04acAffected
  • 88b88a66797159949cec32eaab12b4968f6fae2d to before 32f348ecc149e9ca70a1c424ae8fa9b6919d2713Affected
  • 88b88a66797159949cec32eaab12b4968f6fae2d to before 5e0de753bfe87768ebe6744d869caa92f35e5731Affected
  • 88b88a66797159949cec32eaab12b4968f6fae2d to before f3bfac2cabf5333506b263bc0c8497c95302f32dAffected
  • 88b88a66797159949cec32eaab12b4968f6fae2d to before 4583290898c13c2c2e5eb8773886d153c2c5121dAffected
  • 88b88a66797159949cec32eaab12b4968f6fae2d to before 4f5a100f87f32cb65d4bb1ad282a08c92f6f591eAffected
LinuxLinux
  • 3.18Affected
  • before 3.18Not affected
  • 4.19.323 through 4.19.*Not affected
  • 5.4.285 through 5.4.*Not affected
  • 5.10.227 through 5.10.*Not affected
  • 5.15.168 through 5.15.*Not affected
  • 6.1.113 through 6.1.*Not affected
  • 6.6.54 through 6.6.*Not affected
  • 6.10.13 through 6.10.*Not affected
  • 6.11.2 through 6.11.*Not affected
  • 6.12 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.