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.
Metrics
Affected Vendors & Products
References
History
Tue, 01 Sep 2026 22:00:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| CPEs | cpe:2.3:o:freebsd:freebsd:14.3:-:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:14.3:p10:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:14.3:p11:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:14.3:p12:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:14.3:p13:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:14.3:p14:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:14.3:p15:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:14.3:p1:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:14.3:p2:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:14.3:p3:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:14.3:p4:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:14.3:p5:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:14.3:p6:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:14.3:p7:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:14.3:p8:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:14.3:p9:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:14.4:-:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:14.4:p1:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:14.4:p2:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:14.4:p3:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:14.4:p4:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:14.4:p5:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:14.4:p6:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:14.4:rc1:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:15.0:-:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:15.0:p10:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:15.0:p1:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:15.0:p2:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:15.0:p3:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:15.0:p4:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:15.0:p5:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:15.0:p6:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:15.0:p7:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:15.0:p8:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:15.0:p9:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:15.1:-:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:15.1:rc2:*:*:*:*:*:* cpe:2.3:o:freebsd:freebsd:15.1:rc3-p1:*:*:*:*:*:* |
Wed, 26 Aug 2026 18:30:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
cvssV3_1
|
Wed, 19 Aug 2026 12:45:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Freebsd
Freebsd freebsd |
|
| Vendors & Products |
Freebsd
Freebsd freebsd |
Wed, 19 Aug 2026 05:45:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Description | 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. | |
| Title | unlinkat(2) ignores AT_RESOLVE_BENEATH flag | |
| Weaknesses | CWE-273 | |
| References |
|
Status: PUBLISHED
Assigner: freebsd
Published: 2026-08-19T05:25:43.003Z
Updated: 2026-08-26T17:44:13.985Z
Reserved: 2026-05-29T20:24:28.616Z
Link: CVE-2026-49421
Updated: 2026-08-26T17:44:08.896Z
Status : Analyzed
Published: 2026-08-19T06:17:41.160
Modified: 2026-09-01T20:20:06.177
Link: CVE-2026-49421
No data.