What happened
In the Linux kernel, the following vulnerability has been resolved: bfs: Reconstruct file type when loading from disk syzbot is reporting that S_IFMT bits of inode->i_mode can become bogus when the S_IFMT bits of the 32bits "mode" field loaded from disk are corrupted or when the 32bits "attributes" field loaded from disk are corrupted. A documentation says that BFS uses only lower 9 bits of the "mode" field. But I can't find an explicit explanation that the unused upper 23 bits (especially, the S_IFMT bits) are initialized with 0. Therefore, ignore the S_IFMT bits of the "mode" field loaded from disk. Also, verify that the value of the "attributes" field loaded from disk is either BFS_VREG or BFS_VDIR (because BFS supports only regular files and the root directory).
Affected versions
Linux: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 through before d0c5ec1f57d8fbb953f166a27d9d32473dc8f3e4 (git); 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 through before aeccd6743ee4fdd1ab8cfcbb5b9a20b613418f6d (git); 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 through before 8f73336b75bd3457b6f9410f2a0601a238f32238 (git); 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 through before a9f626396bfe66f49b743601e862767928237cc0 (git); 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 through before 77899444d46162aeb65f229590c26ba266864223 (git); 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 through before a8cb796e7e2cb7971311ba236922f5e7e1be77e6 (git); 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 through before 34ab4c75588c07cca12884f2bf6b0347c7a13872 (git); 2.6.12; V3.1.6 through before * (custom) Fixed: See vendor advisory.
Why it matters
Review the vendor advisory and exposure of the affected product to determine operational impact.
Detection & mitigation
- Apply vendor-provided updates or mitigations.
- Review affected product exposure and access logs.
Public PoC references
No public PoC reference has passed the current publication threshold.