Import Source
https://github.com/microsoft/AzureLinuxVulnerabilityData/blob/main/osv/AZL-83828.json
JSON Data
https://api.osv.dev/v1/vulns/AZL-83828
Upstream
Published
2026-04-24T15:16:32Z
Modified
2026-08-30T05:26:50Z
Summary
CVE-2026-31579 affecting package kernel 6.6.150.1-1
Details

In the Linux kernel, the following vulnerability has been resolved:

wireguard: device: use exitrtnl callback instead of manual rtnllock in pre_exit

wgnetnspreexit() manually acquires rtnllock() inside the pernet .preexit callback. This causes a hung task when another thread holds rtnlmutex - the cleanupnet workqueue (or the setupnet failure rollback path) blocks indefinitely in wgnetnspre_exit() waiting to acquire the lock.

Convert to .exitrtnl, introduced in commit 7a60d91c690b ("net: Add ->exitrtnl() hook to struct pernetoperations."), where the framework already holds RTNL and batches all callbacks under a single rtnllock()/rtnl_unlock() pair, eliminating the contention window.

The rcuassignpointer(wg->creatingnet, NULL) is safe to move from .preexit to .exitrtnl (which runs after synchronizercu()) because all RCU readers of creatingnet either use maybegetnet() - which returns NULL for a dying namespace with zero refcount - or access net->userns which remains valid throughout the entire opsundolist sequence.

[ Jason: added __net_exit and _readmostly annotations that were missing. ]

References

Affected packages

Azure Linux:3 / kernel

Package

Name
kernel
Purl
pkg:rpm/azure-linux/kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Last affected
6.6.150.1-1

Database specific

source
"https://github.com/microsoft/AzureLinuxVulnerabilityData/blob/main/osv/AZL-83828.json"