CVE-2026-81001: slip: fix use-after-free in sl_sync()
Noroxi assessment
Priority: Monitor (action score 31/100)
- The sources we track (CISA KEV, Exploit-DB, Metasploit, Nuclei, GitHub) show no public exploit code or exploitation in the wild.
- Probability of exploitation in the next 30 days: 0.16% (FIRST EPSS).
- Someone with local access to the system can trigger it. A low-privileged account is enough. No user action is required. No special conditions are required; it is repeatable.
- Fixed version: Linux Linux 045e307ac21fbd735b789d8817b21be4d8ead054, 2c4e7c42d77e78ad595dbb9e4b5886b58b45d89d, 486577db807891d0f964fdf13c1640c7f54b0ad1.
- Mentioned 1 time in Turkish national cyber security advisories (siberguvenlik.gov.tr).
Low priority for now. Upgrade to Linux Linux 045e307ac21fbd735b789d8817b21be4d8ead054, 2c4e7c42d77e78ad595dbb9e4b5886b58b45d89d, 486577db807891d0f964fdf13c1640c7f54b0ad1 or later.
Generated automatically from the record's data: CVSS (NVD and CNA), CISA KEV and SSVC, FIRST EPSS, exploit sources, fixed versions. How we calculate it
Primary sources: NVD · CVE.org · FIRST EPSS
In the Linux kernel, the following vulnerability has been resolved: slip: fix use-after-free in sl_sync() slip_devs[] stores bare net_device pointers and takes no reference on them. sl_sync() and sl_alloc() walk that table from slip_open() under rtnl_lock(), while an entry is dropped by sl_free_netdev(), which sl_setup() installs as dev->priv_destructor. priv_destructor is called from netdev_run_todo(), which deliberately runs with the RTNL semaphore released so that it can sleep while waiting for the device refcount to drop: /* Snapshot list, allow later requests */ list_replace_init(&net_todo_list, &list); __rtnl_unlock(); ... if (dev->priv_destructor) dev->priv_destructor(dev); /* slip_devs[i] = NULL */ if (dev->needs_free_netdev) free_netdev(dev); ... /* Free network device */ kobject_put(&dev->dev.kobj); So rtnl_lock() does not serialise slip_open() against the teardown at all. sl_sync() can load slip_devs[i] while the entry is still published and dereference it after netdev_run_todo() has run the destructor and released the device: CPU0 (slip_open) CPU1 (slip_close) unregister_netdev() rtnl_unlock() netdev_run_todo() __rtnl_unlock() rtnl_lock() sl_sync() dev = slip_devs[i] priv_destructor(dev) slip_devs[i] = NULL kobject_put(&dev->dev.kobj) /* dev is freed */ sl = netdev_priv(dev) if (sl->tty || sl->leased) /* use-after-free */ BUG: KASAN: use-after-free in sl_sync drivers/net/slip/slip.c:730 [inline] BUG: KASAN: use-after-free in slip_open+0xef4/0x1210 drivers/net/slip/slip.c:806 Read of size 1 at addr ffff8880712dac71 by task syz-executor.2/6506 CPU: 2 PID: 6506 Comm: syz-executor.2 Not tainted 6.1.134-syzkaller-00260-g0c8fc3469765 #0 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014 Call Trace: sl_sync drivers/net/slip/slip.c:730 [inline] slip_open+0xef4/0x1210 drivers/net/slip/slip.c:806 tty_ldisc_open+0xa2/0x120 drivers/tty/tty_ldisc.c:433 tty_set_ldisc+0x324/0x720 drivers/tty/tty_ldisc.c:564 tiocsetd drivers/tty/tty_io.c:2428 [inline] tty_ioctl+0x5f0/0x1530 drivers/tty/tty_io.c:2712 Allocated by task 6502: alloc_netdev_mqs+0x98/0xfe0 net/core/dev.c:10719 sl_alloc drivers/net/slip/slip.c:756 [inline] slip_open+0x36d/0x1210 drivers/net/slip/slip.c:817 tty_ldisc_open+0xa2/0x120 drivers/tty/tty_ldisc.c:433 tty_set_ldisc+0x324/0x720 drivers/tty/tty_ldisc.c:564 Freed by task 6497: device_release+0xa2/0x240 drivers/base/core.c:2507 kobject_put+0x179/0x280 lib/kobject.c:729 netdev_run_todo+0x6c8/0xef0 net/core/dev.c:10509 slip_close+0x166/0x1c0 drivers/net/slip/slip.c:906 tty_ldisc_close+0x113/0x1a0 drivers/tty/tty_ldisc.c:456 tty_ldisc_kill+0x94/0x160 drivers/tty/tty_ldisc.c:614 tty_ldisc_release+0xe3/0x2b0 drivers/tty/tty_ldisc.c:782 tty_release+0xbcc/0xe70 drivers/tty/tty_io.c:1860 Commit e58c19124189 ("slip: Fix use-after-free Read in slip_open") fixed a different source of stale entries - a device left in slip_devs[] after slip_open() freed it on the registration error path - and does not address this race, which is why the report survives it. Drop the entry from ndo_uninit instead. unregister_netdevice() calls ndo_uninit under RTNL, before the device is queued to netdev_run_todo(), so an entry that sl_sync() can still see while holding RTNL belongs to a device that cannot be freed until RTNL is dropped. sl_free_netdev() stays only for the slip_open() error path, where register_netdevice() may have failed before ndo_init and ndo_uninit is then not called either. Both running for the same device is harmless: the ---truncated---
- Published
- Sep 11, 2026
- Updated
- Oct 19, 2026
- EPSS
- 0.1% · 5th percentile
- CWE
- —
Report tools
Action score
31
Low priority for now.
- CVSS
- 31 / 40 · 7.8 / 10
- CISA KEV
- 0 / 30 · Not listed
- EPSS
- 0 / 30 · 0.1%
CISA SSVC decision
- Exploitation
- none
- Automatable
- no
- Technical impact
- total
Vulnrichment: CISA's decision-tree inputs.
CNA vs NVD score
- NVD
- —
- CNA · Linux
- 7.8
- NVD has not scored this yet; the score shown is the CNA’s.
The score given by the assigning authority versus NVD’s independent score. A gap means the severity is contested.
Get told when this record changes
- Not in KEV: no record of exploitation in the wild
- No public exploit code on record
- A fix has been released
If any of these changes, we'll tell you in the daily email digest.
Is your version affected? Check itNoroxi analysis
What does it mean in your environment?
The assessment above is generated automatically from the record's data; it doesn't know your environment. Our team verifies on your systems whether this vulnerability is actually exploitable and which mitigation is enough.
We use this product, ask for helpAffected systems
Is your version affected?
Pick the product and type the version you run. It's compared with this record's version ranges in your browser; the version isn't sent anywhere.
—
Versions reported by the vendor
Affected version ranges reported by the assigning authority (Linux). Independent of NVD's CPE analysis and usually ahead of it.
Linux Linux
- 2.6.32affected
- 5342b77c4123ba39f911d92a813295fb3bb21f69 and later · before 045e307ac21fbd735b789d8817b21be4d8ead054affected · git
- 5342b77c4123ba39f911d92a813295fb3bb21f69 and later · before 87398cdec8bdf84096a8af4dbccdb04f1972f32caffected · git
- 5342b77c4123ba39f911d92a813295fb3bb21f69 and later · before e93ace1f46177a4f7b5a8e5996606cdf77e1e890affected · git
- 5342b77c4123ba39f911d92a813295fb3bb21f69 and later · before 70e20456bcbf7f3ae145bb96e5548f827a37c640affected · git
- 5342b77c4123ba39f911d92a813295fb3bb21f69 and later · before a235b20972bbd98ca1fb127d6269434edc607f19affected · git
- 5342b77c4123ba39f911d92a813295fb3bb21f69 and later · before 486577db807891d0f964fdf13c1640c7f54b0ad1affected · git
- 5342b77c4123ba39f911d92a813295fb3bb21f69 and later · before d6f25e5bd777b05880da8673daf74a8419480545affected · git
- 5342b77c4123ba39f911d92a813295fb3bb21f69 and later · before 2c4e7c42d77e78ad595dbb9e4b5886b58b45d89daffected · git
- before 2.6.32not affected · semver
Package-level exposure
OSV and GitHub Advisory data: ecosystem, package and range. SBOM matching uses this table.
| Ecosystem | Package | Affected range | Fix |
|---|---|---|---|
| Debian:12 | linux | before 6.1.190-1 | 6.1.190-1 |
| Debian:12 | linux-6.12 | before 6.12.111-1~deb12u1 | 6.12.111-1~deb12u1 |
| Debian:13 | linux | before 6.12.111-1 | 6.12.111-1 |
| Debian:14 | linux | before 7.2.6-1 | 7.2.6-1 |
| openSUSE:Tumbleweed | kernel-source | before 7.2.7-1.1 | 7.2.7-1.1 |
Same product
linux: all recordsOther highest-scoring records for the same primary product.
- CVE-2026-74705udp: fix potential use-after-free in tunnel segmentation40Plan
- CVE-2026-74612veth: fix skb length accounting after XDP frag adjustment40Plan
- CVE-2026-74475vxlan: use neigh_ha_snapshot() in route_shortcircuit()40Plan
Published before and after this one in the same product
- ← EarlierCVE-2026-80999Sep 11, 2026 · net: dsa: realtek: use gpiod_set_value_cansleep for reset GPIO0Monitor
- ← EarlierCVE-2026-81000Sep 11, 2026 · net: tun: bound receive headroom31Monitor
- Later →CVE-2026-81002Sep 11, 2026 · xdp: fix zero-copy frame layout39Monitor
Remediation
Which version to upgrade to
Fix versions compiled from the vendor, package registries and Microsoft. Verify the vendor's note before upgrading.
| Product / package | Fixed version | Source |
|---|---|---|
| Linux Linux | 045e307ac21fbd735b789d8817b21be4d8ead054 | Vendor (CNA) |
| Linux Linux | 2c4e7c42d77e78ad595dbb9e4b5886b58b45d89d | Vendor (CNA) |
| Linux Linux | 486577db807891d0f964fdf13c1640c7f54b0ad1 | Vendor (CNA) |
| Linux Linux | 70e20456bcbf7f3ae145bb96e5548f827a37c640 | Vendor (CNA) |
| Linux Linux | 87398cdec8bdf84096a8af4dbccdb04f1972f32c | Vendor (CNA) |
| Linux Linux | a235b20972bbd98ca1fb127d6269434edc607f19 | Vendor (CNA) |
| Linux Linux | d6f25e5bd777b05880da8673daf74a8419480545 | Vendor (CNA) |
| Linux Linux | e93ace1f46177a4f7b5a8e5996606cdf77e1e890 | Vendor (CNA) |
| debian:linux | 6.1.190-1 · Debian:12 | Package registry (OSV) |
| debian:linux | 6.12.111-1 · Debian:13 | Package registry (OSV) |
| debian:linux-6.12 | 6.12.111-1~deb12u1 · Debian:12 | Package registry (OSV) |
| opensuse:kernel-source | 7.2.7-1.1 · openSUSE:Tumbleweed | Package registry (OSV) |
Exploit status
No known public exploit
No public exploit has been observed yet. That doesn't mean you're safe, only that the bar is a little higher.
Research context
For pentesters and researchers: attack profile, score disagreement, timeline, patch commits, credits, variant and chain candidates, bug bounty scope. All derived from existing data; no exploit code.
Timeline
From publication to today: proof of concept, Metasploit module, CISA KEV and fix record. Dates are as reported by the sources.
No dated events beyond publication.
FIRST EPSS daily score; only changes of 0.01 or more are recorded (step chart).
National notice (Türkiye Cybersecurity Directorate / USOM)
Official security notices citing this record; remediation advice is on the agency's page.
- TR-26-1085 · Sep 14, 2026(Linux Kernel Güvenlik Bildirimi)
Not on record for this CVE: patch commit or PR link · researcher credit · variant or chain candidate · public bounty program.
Technical details
Attack conditions
- Someone with local access to the system can trigger it.
- A low-privileged account is enough.
- No user action is required.
- No special conditions are required; it is repeatable.
If successful
- Confidentiality
- high · data can be read
- Integrity
- high · data or configuration can be modified
- Availability
- high · the service can be disrupted
- Attack vector
- Local
- Attack complexity
- Low
- Privileges required
- Low
- User interaction
- None
- Scope
- Unchanged
- Confidentiality impact
- High
- Integrity impact
- High
- Availability impact
- High
Weakness class (CWE)
—
CVSS vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
nvd-secondary
Attack context
MITRE CAPEC attack patterns and ATT&CK techniques for this weakness class (CWE). A starting point for detection rules and threat hunting.
MITRE has no CAPEC/ATT&CK mapping for this CWE.
Change log (2)
- SSVC exploitation— → none
- Fix✗ → ✓
For records you follow, these changes also arrive as notifications. →
References
Show all references (7 more)Show less
- git.kernel.org/stable/c/2c4e7c42d77e78ad595dbb9e4b5886b58b45d89d
- git.kernel.org/stable/c/486577db807891d0f964fdf13c1640c7f54b0ad1
- git.kernel.org/stable/c/70e20456bcbf7f3ae145bb96e5548f827a37c640
- git.kernel.org/stable/c/87398cdec8bdf84096a8af4dbccdb04f1972f32c
- git.kernel.org/stable/c/a235b20972bbd98ca1fb127d6269434edc607f19
- git.kernel.org/stable/c/d6f25e5bd777b05880da8673daf74a8419480545
- git.kernel.org/stable/c/e93ace1f46177a4f7b5a8e5996606cdf77e1e890
Vendor advisories and official records. Exploit/PoC links are deliberately left out.