CVE-2023-54177
Unknown Unknown - Not Provided
Warning Trigger in Linux Kernel Quota Subsystem Due to Reference Count Handling

Publication date: 2025-12-30

Last updated on: 2025-12-30

Assigner: kernel.org

Description
In the Linux kernel, the following vulnerability has been resolved: quota: fix warning in dqgrab() There's issue as follows when do fault injection: WARNING: CPU: 1 PID: 14870 at include/linux/quotaops.h:51 dquot_disable+0x13b7/0x18c0 Modules linked in: CPU: 1 PID: 14870 Comm: fsconfig Not tainted 6.3.0-next-20230505-00006-g5107a9c821af-dirty #541 RIP: 0010:dquot_disable+0x13b7/0x18c0 RSP: 0018:ffffc9000acc79e0 EFLAGS: 00010246 RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffff88825e41b980 RDX: 0000000000000000 RSI: ffff88825e41b980 RDI: 0000000000000002 RBP: ffff888179f68000 R08: ffffffff82087ca7 R09: 0000000000000000 R10: 0000000000000001 R11: ffffed102f3ed026 R12: ffff888179f68130 R13: ffff888179f68110 R14: dffffc0000000000 R15: ffff888179f68118 FS: 00007f450a073740(0000) GS:ffff88882fc00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007ffe96f2efd8 CR3: 000000025c8ad000 CR4: 00000000000006e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: <TASK> dquot_load_quota_sb+0xd53/0x1060 dquot_resume+0x172/0x230 ext4_reconfigure+0x1dc6/0x27b0 reconfigure_super+0x515/0xa90 __x64_sys_fsconfig+0xb19/0xd20 do_syscall_64+0x39/0xb0 entry_SYSCALL_64_after_hwframe+0x63/0xcd Above issue may happens as follows: ProcessA ProcessB ProcessC sys_fsconfig vfs_fsconfig_locked reconfigure_super ext4_remount dquot_suspend -> suspend all type quota sys_fsconfig vfs_fsconfig_locked reconfigure_super ext4_remount dquot_resume ret = dquot_load_quota_sb add_dquot_ref do_open -> open file O_RDWR vfs_open do_dentry_open get_write_access atomic_inc_unless_negative(&inode->i_writecount) ext4_file_open dquot_file_open dquot_initialize __dquot_initialize dqget atomic_inc(&dquot->dq_count); __dquot_initialize __dquot_initialize dqget if (!test_bit(DQ_ACTIVE_B, &dquot->dq_flags)) ext4_acquire_dquot -> Return error DQ_ACTIVE_B flag isn't set dquot_disable invalidate_dquots if (atomic_read(&dquot->dq_count)) dqgrab WARN_ON_ONCE(!test_bit(DQ_ACTIVE_B, &dquot->dq_flags)) -> Trigger warning In the above scenario, 'dquot->dq_flags' has no DQ_ACTIVE_B is normal when dqgrab(). To solve above issue just replace the dqgrab() use in invalidate_dquots() with atomic_inc(&dquot->dq_count).
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2025-12-30
Last Modified
2025-12-30
Generated
2026-05-07
AI Q&A
2025-12-30
EPSS Evaluated
2026-05-05
NVD
EUVD
Affected Vendors & Products
Showing 2 associated CPEs
Vendor Product Version / Range
linux linux_kernel 6.3.0-next-20230505
linux linux_kernel 6.3.0
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-UNKNOWN
Attack-Flow Graph
AI Powered Q&A
How can this vulnerability be detected on my network or system? Can you suggest some commands?

This vulnerability manifests as a warning in the Linux kernel logs related to quota operations, specifically a WARN_ON_ONCE triggered in dqgrab() when the DQ_ACTIVE_B flag is not set in dquot->dq_flags. To detect this vulnerability on your system, you should monitor the kernel logs for warnings containing 'dquot_disable', 'dqgrab', or messages similar to 'WARNING: CPU: ... dquot_disable+0x13b7/0x18c0'. You can use the following commands to check for such warnings: 1) sudo dmesg | grep -i dquot 2) sudo journalctl -k | grep -i dquot 3) sudo dmesg | grep -i dqgrab 4) sudo journalctl -k | grep -i dqgrab These commands will help identify if the kernel has logged warnings related to this issue.


Can you explain this vulnerability to me?

This vulnerability is related to the Linux kernel's quota subsystem, specifically in the dqgrab() function. During fault injection testing, a warning occurs due to improper handling of quota references when the DQ_ACTIVE_B flag is not set on dquot->dq_flags. The issue arises when dqgrab() is called in invalidate_dquots(), triggering a warning because the expected flag is not set. The fix replaces dqgrab() with an atomic increment of the dquot reference count to prevent this warning and ensure proper quota handling.


How can this vulnerability impact me? :

This vulnerability can cause warnings and potential instability in the Linux kernel's quota management during certain operations like remounting filesystems with quotas enabled. While it may not directly lead to security breaches, it can affect system reliability and stability when quota operations are performed, possibly impacting filesystem behavior and administrative tasks.


What immediate steps should I take to mitigate this vulnerability?

The vulnerability is fixed by replacing the dqgrab() use in invalidate_dquots() with atomic_inc(&dquot->dq_count). To mitigate this vulnerability, update your Linux kernel to a version that includes this fix.


Ask Our AI Assistant
Need more information? Ask your question to get an AI reply (Powered by our expertise)
0/70
EPSS Chart