PT-2026-98548 · Linux · Linux
CVE-2026-97608
·
Publicado
2026-09-25
·
Atualizado
2026-09-25
CVSS v3.1
7.0
Alta
| Vetor | AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H |
In the Linux kernel, the following vulnerability has been resolved:
netfilter: nf log: unregister loggers before per-net teardown
nf log syslog and nfnetlink log unregister their per-network namespace
operations before unregistering their global logger backends. This
leaves a window where a sysctl or netlink writer can rebind the still-
registered logger after the per-net pre-exit callback cleared the old
selection.
The race looks like this:
CPU 0 CPU 1
unregister pernet subsys()
nf log unset(net, logger)
net->nf.nf loggers[pf] = NULL
lock nf log mutex
find logger in loggers[][]
net->nf.nf loggers[pf] = logger
unlock nf log mutexnf log unregister(logger)
lock nf log mutex
loggers[pf][type] = NULL
unlock nf log mutex
synchronize rcu()
module exit returns
module core frees backend memory
Later, a sysctl read or packet logging operation can dereference the
stale per-net logger pointer.
Fix this by unregistering the global logger backends before tearing down
per-net state. Once the global registrations are gone, later writers can
no longer rebind the logger. unregister pernet subsys() already waits
for an RCU grace period after the pre-exit callback clears the per-net
selection, while nf log unregister() continues to cover readers of the
global logger table.
Apply this ordering fix to both nf log backends that combine per-net
teardown with global logger registration.
Correção
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Linux