CVE-2026-49421 PUBLISHED

unlinkat(2) ignores AT_RESOLVE_BENEATH flag

Assigner: freebsd
Reserved: 29.05.2026 Published: 19.08.2026 Updated: 19.08.2026

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.

Product Status

Vendor FreeBSD
Product FreeBSD
Versions Default: unknown
  • affected from 15.1-RELEASE to p1 (excl.)
  • affected from 15.0-RELEASE to p11 (excl.)
  • affected from 14.4-RELEASE to p7 (excl.)
  • affected from 14.3-RELEASE to p16 (excl.)

Credits

  • Yuxiang Yang, Yizhou Zhao, Ao Wang, Xuewei Feng, Qi Li, and Ke Xu from Tsinghua University using GLM-5.1 from Z.ai finder

References

Problem Types

  • CWE-273: Improper Check for Dropped Privileges CWE