data built 2026-10-19T13:16:53Z

Look up another CVE · open CVE-2026-80520 in the interactive tracker

CVE-2026-80520

ovpn: fix NULL dereference when killing missing key

7.5 EPSS 0.6% AV:N

Published 2026-08-26 (2 months ago) by the Linux kernel CNA. Subsystem drivers/net. Debian urgency: unimportant.

What to do, per Debian release

Debian's own status for CVE-2026-80520 in every release this site tracks, and what each one means in practice. Every status below is the one the Debian Security Team publishes for this CVE. source

ReleaseStatus VersionWhat this means
Debian 12bookwormnot affected6.1.190-1Nothing to do. bookworm never shipped the vulnerable code.
Debian 13trixienot affected6.12.113-1Nothing to do. trixie never shipped the vulnerable code.
Debian 14forkyfixed7.1.10-1Update the kernel and reboot. Fixed in 7.1.10-1. A running kernel keeps the old code until the machine restarts.
Debian unstablesidfixed7.1.10-1Update the kernel and reboot. Fixed in 7.1.10-1. A running kernel keeps the old code until the machine restarts.

The vulnerability

What the bug is

ovpn_crypto_kill_key assumes both crypto slots are populated and dereferences each slot before checking it. That is not guaranteed: a peer can have only one installed key, and the kill path may be asked to remove a key that is not present. Read each slot once while holding the crypto state lock, check for NULL before looking at key_id, and only replace the slot that actually matches.

Where it lives

The fix touches these files. If the subsystem is one you do not use, the practical exposure is lower, though the package is still the vulnerable one.

drivers/net/ovpn/crypto.c

What this is
OPENVPN DATA CHANNEL OFFLOADMAINTAINERS section matched on drivers/net/ovpn/ · openvpn-devel@lists.sourceforge.net · Supported
Kernel module
ovpn

Check it on the machine

grep -w CONFIG_OVPN /boot/config-$(uname -r)

Reads the booted kernel's own configuration, on the machine and nowhere else. =y is built in, =m is a module, and an is not set line means the code is not there.

lsmod | grep -w ovpn

Prints a line if that module is loaded right now, and nothing if it is not. One that is not loaded can still be loaded later by anything that needs it.

Show whether Debian builds this, per release

Debian builds this as a loadable module. Every release with an answer below compiles it as a module on every flavour, so whether the code is in the running kernel depends on whether that module is loaded. The build rule could not be established for 2 releases, so nothing is claimed about those.

  • bookworm, trixie?
  • forky, sidm
?
not established - no Makefile entry for the affected file
m
a loadable module on every flavour - check lsmod, can be blacklisted

Where a release above reads "not established", no build rule for the affected file was found in that release's kernel tree. That is a gap in this lookup, not a finding that the code is absent.

Build switch
CONFIG_OVPN

From the configuration Debian publishes for every kernel flavour it builds. It covers only the architectures Debian ships a linux-config package for, and nothing about a kernel you built yourself. Debian's own status above stays authoritative about the source package.MAINTAINERS kbuild Makefiles Debian linux-config packages

Signals

Published
2026-08-26 (2 months ago)source
CVSS
7.5 high
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:Hsource recompute it
Attack vector
network (AV:N)source
EPSS
0.61%, higher than 48.1% of all CVEssource
CISA KEV
not listedthe KEV catalogue
Debian urgency
unimportantsource
Subsystem
drivers/net

Upstream fixes

The versions the CNA records as introducing and fixing this, and the commit for each. source

IntroducedFixed inCommit
6.166.18.46a47a080d06ee
6.167.1.10acf32a5dff08
6.167.241d44ac7a61e

Why the CNA scored it this way

Quoted from the kernel CNA's own scoring file, word for word. A highlighted metric carries the most severe value CVSS v3.1 defines for it, which is what pushes the score up. source

AV:NAttack vector, network
The bug is reached from ovpn_encrypt_post during outbound VPN encryption over UDP/TCP; a remote authenticated OpenVPN peer can drive high-volume tunnel traffic that exhausts packet IDs and triggers ovpn_crypto_kill_key on internet-facing VPN concentrators.
AC:LAttack complexity, low
After a normal rekey leaves one key in slots[1] with slots[0] NULL, IV exhaustion deterministically calls ovpn_crypto_kill_key and the NULL dereference is reliable; a remote peer can sustain the encrypted traffic needed to reach the 32-bit packet-ID limit.
PR:NPrivileges required, none
Exploitation requires only an established OpenVPN data-channel session to an ovpn-offloaded interface, not local shell access, CAP_NET_ADMIN, or init-namespace root; no kernel configuration privileges are needed beyond being a connected VPN peer.
UI:NUser interaction, none
Triggering IV exhaustion and the subsequent key-kill path requires no victim user interaction beyond routine automated VPN traffic and key rotation already performed by the tunnel daemon.
S:UScope, unchanged
Impact is a kernel NULL-pointer fault and denial of service within the kernel network stack; it does not cross a security boundary such as guest-to-host escape or sandbox breakout.
C:NConfidentiality impact, none
This is a pure NULL pointer dereference when reading key_id from an unpopulated crypto slot; it does not expose kernel memory, leak pointers, or provide an arbitrary read primitive.
I:NIntegrity impact, none
The fault occurs on a NULL slot lookup and does not corrupt memory or enable arbitrary writes, code execution, or control-flow hijacking beyond the immediate crash.
A:HAvailability impact, high
The NULL dereference in ovpn_crypto_kill_key causes a kernel oops or panic when IV exhaustion triggers the key-kill path, fully denying service to the host and all VPN peers on that node.