CVE-2024-56780 quota: flush quota_release_work upon quota writeback

Medium 5.5 Published Updated

A race condition in the Linux kernel quota subsystem can trigger a warning and potential instability during filesystem freeze operations.

Exploited in the wild
Not known
Login needed
Any signed-in user
Attackable
Local or same network only
Victim action needed
Not needed
Fix
Available

What is CVE-2024-56780?

CVE-2024-56780 is a medium-severity vulnerability in Linux kernel, published on 8 Jan 2025. It can only be exploited from the same machine or local network, with no action from the victim.

Official 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.

Which versions are affected by CVE-2024-56780?

It affects 1 product.

Products include Linux kernel.

How do I fix CVE-2024-56780?

Apply the vendor's patch.

Is CVE-2024-56780 being exploited?

There is no known exploitation of CVE-2024-56780 in the wild and no public exploit code.

All Linux kernel vulnerabilities

Sources

Also known as AZL-55322, AZL-55328, BELL-CVE-2024-56780, DEBIAN-CVE-2024-56780, GHSA-95w3-8433-6jf6, UBUNTU-CVE-2024-56780.

Is CVE-2024-56780 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free