Description
In the Linux kernel, the following vulnerability has been resolved:
quota: flush quota_release_work upon quota writeback
One of the paths quota writeback is called from is:
freeze_super() sync_filesystem() ext4_sync_fs() dquot_writeback_dquots()
Since we currently don't always flush the quota_release_work queue in this path, we can end up with the following race:
1. dquot are added to releasing_dquots list during regular operations. 2. FS Freeze starts, however, this does not flush the quota_release_work queue. 3. Freeze completes. 4. Kernel eventually tries to flush the workqueue while FS is frozen which hits a WARN_ON since transaction gets started during frozen state:
ext4_journal_check_start+0x28/0x110 [ext4] (unreliable) __ext4_journal_start_sb+0x64/0x1c0 [ext4] ext4_release_dquot+0x90/0x1d0 [ext4] quota_release_workfn+0x43c/0x4d0
Which is the following line:
WARN_ON(sb->s_writers.frozen == SB_FREEZE_COMPLETE);
Which ultimately results in generic/390 failing due to dmesg noise. This was detected on powerpc machine 15 cores.
To avoid this, make sure to flush the workqueue during dquot_writeback_dquots() so we dont have any pending workitems after freeze.
Metrics
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:HAffected software
| Vendor | Product | Versions |
|---|---|---|
| Linux | Linux | >= d40c192e119892799dd4ddf94f5cea6fa93775ef, < a5abba5e0e586e258ded3e798fe5f69c66fec198; >= 86d89987f0998c98f57d641e308b40452a994045, < 6f3821acd7c3143145999248087de5fb4b48cf26; >= 89602de9a2d7080b7a4029d5c1bf8f78d295ff5f, < ab6cfcf8ed2c7496f55d020b65b1d8cd55d9a2cb; >= 3027e200dd58d5b437f16634dbbd355b29ffe0a6, < 3e6ff207cd5bd924ad94cd1a7c633bcdac0ba1cb; >= dabc8b20756601b9e1cc85a81d47d3f98ed4d13a, < bcacb52a985f1b6d280f698a470b873dfe52728a; >= dabc8b20756601b9e1cc85a81d47d3f98ed4d13a, < 8ea87e34792258825d290f4dc5216276e91cb224; >= dabc8b20756601b9e1cc85a81d47d3f98ed4d13a, < ac6f420291b3fee1113f21d612fa88b628afab5b; f3e9a2bbdeb8987508dd6bb2b701dea911d4daec; 903fc5d8cb48b0d2de7095ef40e39fd32bb27bd0; 31bed65eecbc5ce57592cfe31947eaa64e3d678e; >= 5.4.257, < 5.4.287; >= 5.10.195, < 5.10.231; >= 5.15.132, < 5.15.174; >= 6.1.53, < 6.1.120; >= 4.19.295, < 4.20; >= 6.4.16, < 6.5; >= 6.5.3, < 6.6 |
| Linux | Linux | 6.6 |
| Siemens | SIMATIC S7-1500 CPU 1518-4 PN/DP MFP | >= V3.1.0, < V3.1.5 |
| Siemens | SIMATIC S7-1500 CPU 1518-4 PN/DP MFP | >= V3.1.0, < V3.1.5 |
| Siemens | SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP | >= V3.1.0, < V3.1.5 |
| Siemens | SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP | >= V3.1.0, < V3.1.5 |
| Siemens | SIPLUS S7-1500 CPU 1518-4 PN/DP MFP | >= V3.1.0, < V3.1.5 |
| Siemens | RUGGEDCOM RST2428P | < V3.2 |
| Siemens | SCALANCE XC-300/XR-300/XC-400/XR-500WG/XR-500 family | < V3.2 |
| Siemens | SCALANCE XCM-/XRM-/XCH-/XRH-300 family | < V3.2 |
References
- https://git.kernel.org/stable/c/3e6ff207cd5bd924ad94cd1a7c633bcdac0ba1cbPatch
- https://git.kernel.org/stable/c/6f3821acd7c3143145999248087de5fb4b48cf26Patch
- https://git.kernel.org/stable/c/8ea87e34792258825d290f4dc5216276e91cb224Patch
- https://git.kernel.org/stable/c/a5abba5e0e586e258ded3e798fe5f69c66fec198Patch
- https://git.kernel.org/stable/c/ab6cfcf8ed2c7496f55d020b65b1d8cd55d9a2cbPatch
- https://git.kernel.org/stable/c/ac6f420291b3fee1113f21d612fa88b628afab5bPatch
- https://git.kernel.org/stable/c/bcacb52a985f1b6d280f698a470b873dfe52728aPatch
- https://lists.debian.org/debian-lts-announce/2025/03/msg00001.html
- https://lists.debian.org/debian-lts-announce/2025/03/msg00002.html
- https://cert-portal.siemens.com/productcert/html/ssa-355557.html
- https://cert-portal.siemens.com/productcert/html/ssa-398330.html
Timeline
- Published
- Jan 8, 2025
- Last modified
- Oct 15, 2026
- NVD status
- Modified