FreeSenseFreeSenseSecurity
freesense.org
← Fixed vulnerabilities
Fixed

unlinkat(2) ignores AT_RESOLVE_BENEATH flag

FreeBSD-SA-26:42.unlinkat · CVE-2026-49421

Our decision for FreeSense

FreeBSD corrected this on 2026-06-30, before the FreeBSD source pin of every FreeSense version.

  • Advisory: corrected 2026-06-30
  • FreeSense 1.0 pin: e004ff15f87e (2026-08-03)
  • FreeSense 1.1 pin: a52c50b4b7c2 (2026-10-04)
  • FreeSense 1.2 pin: a52c50b4b7c2 (2026-10-04)
Decided by rules, not yet reviewed. The status comes from the advisory's correction date and the build configuration. A maintainer has not looked at whether FreeSense is exposed in practice. How we triage

By FreeSense version

VersionStatusFreeBSD pin
FreeSense 1.01.0.7 · frozen, no further fixesFixedFreeBSD pin of 2026-08-032026-08-03e004ff15
FreeSense 1.11.1.9FixedFreeBSD pin of 2026-10-042026-10-04a52c50b4
FreeSense 1.21.2.0-DEVELOPMENTFixedFreeBSD pin of 2026-10-042026-10-04a52c50b4

Workaround

No workaround is available. Applications that do not use AT_RESOLVE_BENEATH with unlinkat(2) or funlinkat(2) are not affected.

What FreeBSD says

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.

Impact

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.

Excerpt from the FreeBSD advisory. Read the original for the full text and the fix.

Copied to clipboard