Commit 6b22bdd
committed
Kernel use-after-free via file descriptor syscalls
A file descriptor can be closed while a thread is blocked in a poll(2) or
select(2) call waiting for that descriptor. Because the blocked thread does
not hold a reference to the underlying object, this closure may result in the
object being freed while the thread remains blocked. In this situation, the
kernel must remove the blocked thread from the per-object wait queue prior to
freeing the object.
In the case of some file descriptor types, the kernel failed to unlink
blocked threads from the object before freeing it. When the blocked thread
is subsequently woken, it accesses memory that has already been freed
resulting in a use-after-free vulnerability.
CVE-2026-45251
Obtained from: FreeBSD 14.x
Does not include tests1 parent 26484bf commit 6b22bdd
3 files changed
Lines changed: 4 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
119 | 119 | | |
120 | 120 | | |
121 | 121 | | |
| 122 | + | |
122 | 123 | | |
123 | 124 | | |
124 | 125 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
273 | 273 | | |
274 | 274 | | |
275 | 275 | | |
| 276 | + | |
276 | 277 | | |
277 | 278 | | |
278 | 279 | | |
| |||
315 | 316 | | |
316 | 317 | | |
317 | 318 | | |
318 | | - | |
319 | | - | |
320 | | - | |
321 | | - | |
| 319 | + | |
322 | 320 | | |
323 | 321 | | |
324 | 322 | | |
| |||
433 | 431 | | |
434 | 432 | | |
435 | 433 | | |
436 | | - | |
| 434 | + | |
437 | 435 | | |
438 | | - | |
439 | | - | |
440 | 436 | | |
441 | 437 | | |
442 | 438 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
86 | 86 | | |
87 | 87 | | |
88 | 88 | | |
89 | | - | |
90 | 89 | | |
91 | 90 | | |
92 | 91 | | |
| |||
0 commit comments