ufs_quotactl returns success (0) without performing the operation when vfs_busy(mp, LK_NOWAIT) fails β Q_QUOTAON/Q_SETQUOTA/Q_QUOTAOFF silently no-op during unmount contention, a security-control fail-open
Summary
If the mount is being unmounted (MNTK_UNMOUNT) or the busy fails, ufs_quotactl returns 0 (:141-142) - the caller (quotaon(8), edquota, replication tooling) believes quotas were enabled/limits were set while nothing happened. 4.4BSD heritage; modern FreeBSD propagates the error. Admin tooling gets false confirmation that a quota control was applied; all callers privileged, no privilege boundary crossed. Fix: return EBUSY. [VERIFIED pass2: vfs_busy failure returns 0 silent no-op confirmed; EBUSY fix authored compiled with QUOTA]
Discussion (0)
PoC verification
Evidence pack
findings/poc/DF-3244 Β· 4 files| File | Type | Description | Size | |
|---|---|---|---|---|
| README.md | β | 247 B | β raw | |
| fix.diff | β | 565 B | view raw | |
| manifest.json | β | 352 B | view raw | |
| verdict.json | β | 1.4 KB | view raw |
DF-3244 evidence pack
What
ufs_quotactl returns success without performing the op when vfs_busy fails
Verdict
status=not_reproduced impact=none confidence=certain
See VERDICT.md for the full narrative and fix.diff for the verified fix.
Fix verification
not_testablecompiled in the QUOTA-enabled F40FIX kernel; not runtime-exercised (vfs_busy contention window not attempted). Code-certain two-liner: return EBUSY instead of silently succeeding.
Confirmed kernel references
Detail
Evidence (decisive lines)
VERDICT.md with path:line citations; run.log where a live demo exists; fix.diff
PoC changes
n/a - see DF-3243
Verified recommended fix
return EBUSY instead of 0 when vfs_busy(LK_NOWAIT) fails
Verdict
Same kernel-availability constraint as DF-3243 (stock: EOPNOTSUPP, #ifndef QUOTA). Line-accurate confirmation: ufs_quotactl executes if (vfs_busy(mp, LK_NOWAIT)) return (0); (ufs_vfsops.c:141-142) - Q_QUOTAON/Q_SETQUOTA/Q_QUOTAOFF silently no-op during unmount contention while quotaon(8)/replication tooling receives success. 4.4BSD heritage; FreeBSD propagates the error. Fix returns EBUSY; compiled in the F40FIX kernel (options QUOTA).
No comments yet.