CVE-2026-49421

Summary

The kernel function that implements unlinkat(2) and funlinkat(2) validated the AT_RESOLVE_BENEATH flag but failed to pass it through to the underlying path lookup. The flag was silently dropped, so path resolution was not actually restricted.

A process that uses AT_RESOLVE_BENEATH with unlinkat(2) or funlinkat(2) to confine path resolution can in fact resolve paths above the starting directory. A caller relying on this flag for path containment may delete files outside the intended directory tree.

Affected Software

VendorProductVersion RangeStatus
FreeBSDFreeBSD15.1-RELEASE < p1affected
FreeBSDFreeBSD15.0-RELEASE < p11affected
FreeBSDFreeBSD14.4-RELEASE < p7affected
FreeBSDFreeBSD14.3-RELEASE < p16affected

Weaknesses

  • CWE-273: CWE-273: Improper Check for Dropped Privileges

References