CVE-2025-39946: Linux kernel · tls: make sure to abort the stream if headers are bogus
Affects Linux kernelSource GCVE Database
Not known to be exploited · 10% EPSS · CVSS 9.8 Critical · fixed in 6.8.0-1046.49~22.04.1 : patch Linux kernel as a priority.
Data as of 26 Oct 2026, 17:16 UTC
- EPSS
- 10.2% chance of exploitation in 30 days – higher than 95% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
- Patch
- Available – fixed in 6.8.0-1046.49~22.04.1, 6.8.0-1051.57~22.04.1, 6.8.0-1046.53~22.04.1 +31
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HExploitation evidence
Disclosed: evidence found.
CVE published 4 Oct 2025
Detectable: no evidence on record.
No public nuclei template indexed
Weaponised: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 26 Oct 2026.
What to do
Upgrade to a fixed release listed under Affected software.
Patches and advisories
- ubuntu.com/security/notices/USN-7921-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-7934-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-7936-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-7921-2 (opens in a new tab)
- ubuntu.com/security/notices/USN-8028-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-8028-2 (opens in a new tab)
- ubuntu.com/security/notices/USN-8031-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-8028-3 (opens in a new tab)
- ubuntu.com/security/notices/USN-8028-4 (opens in a new tab)
- ubuntu.com/security/notices/USN-8028-5 (opens in a new tab)
- ubuntu.com/security/notices/USN-8031-2 (opens in a new tab)
- ubuntu.com/security/notices/USN-8028-6 (opens in a new tab)
Affected software
| Product | Affected | Fixed in |
|---|---|---|
Ubuntu 25.10linux-azure-fdepkg:deb/ubuntu/linux-azure-fde?arch=source&distro=questingOther threats | Affected
| Fixed in– |
Ubuntu 24.04 LTSlinuxpkg:deb/ubuntu/linux?arch=source&distro=nobleOther threats | Affected
| Fixed in
|
Ubuntu 24.04 LTSlinux-awspkg:deb/ubuntu/linux-aws?arch=source&distro=nobleOther threats | Affected
| Fixed in
|
Ubuntu 24.04 LTSlinux-aws-6.14pkg:deb/ubuntu/linux-aws-6.14?arch=source&distro=nobleOther threats | Affected
| Fixed in
|
Ubuntu 24.04 LTSlinux-azurepkg:deb/ubuntu/linux-azure?arch=source&distro=nobleOther threats | Affected
| Fixed in
|
Ubuntu 24.04 LTSlinux-azure-6.11pkg:deb/ubuntu/linux-azure-6.11?arch=source&distro=nobleOther threats | Affected
| Fixed in– |
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
Description
In the Linux kernel, the following vulnerability has been resolved: tls: make sure to abort the stream if headers are bogus Normally we wait for the socket to buffer up the whole record before we service it. If the socket has a tiny buffer, however, we read out the data sooner, to prevent connection stalls. Make sure that we abort the connection when we find out late that the record is actually invalid. Retrying the parsing is fine in itself but since we copy some more data each time before we parse we can overflow the allocated skb space. Constructing a scenario in which we're under pressure without enough data in the socket to parse the length upfront is quite hard. syzbot figured out a way to do this by serving us the header in small OOB sends, and then filling in the recvbuf with a large normal send. Make sure that tls_rx_msg_size() aborts strp, if we reach an invalid record there's really no way to recover.
References
- ubuntu.com/security/CVE-2025-39946 (opens in a new tab)
- cve.org/CVERecord?id=CVE-2025-39946 (opens in a new tab)
- git.kernel.org/linus/0aeb54ac4cd5cf8f60131b4d9ec0b6dc9c27b20d (opens in a new tab)
- git.kernel.org/stable/c/0aeb54ac4cd5cf8f60131b4d9ec0b6dc9c27b20d (opens in a new tab)
- git.kernel.org/stable/c/208640e6225cc929a05adbf79d1df558add3e231 (opens in a new tab)
- git.kernel.org/stable/c/4cefe5be73886f383639fe0850bb72d5b568a7b9 (opens in a new tab)
- git.kernel.org/stable/c/61ca2da5fb8f433ce8bbd1657c84a86272133e6b (opens in a new tab)
- git.kernel.org/stable/c/b36462146d86b1f22e594fe4dae611dffacfb203 (opens in a new tab)
- ubuntu.com/security/notices/USN-7921-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-7934-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-7936-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-7921-2 (opens in a new tab)
- ubuntu.com/security/notices/USN-8028-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-8028-2 (opens in a new tab)
- ubuntu.com/security/notices/USN-8031-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-8028-3 (opens in a new tab)
- ubuntu.com/security/notices/USN-8028-4 (opens in a new tab)
- ubuntu.com/security/notices/USN-8028-5 (opens in a new tab)
- ubuntu.com/security/notices/USN-8031-2 (opens in a new tab)
- ubuntu.com/security/notices/USN-8028-6 (opens in a new tab)