CVE-2024-26635

Source
https://cve.org/CVERecord?id=CVE-2024-26635
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2024-26635.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2024-26635
Downstream
Related
Published
2024-03-18T10:14:47.213Z
Modified
2026-03-20T12:35:04.945835Z
Summary
llc: Drop support for ETH_P_TR_802_2.
Details

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

llc: Drop support for ETHPTR8022.

syzbot reported an uninit-value bug below. [0]

llc supports ETHP8022 (0x0004) and used to support ETHPTR802_2 (0x0011), and syzbot abused the latter to trigger the bug.

write$tun(r0, &(0x7f0000000040)={@val={0x0, 0x11}, @val, @mpls={[], @llc={@snap={0xaa, 0x1, ')', "90e5dd"}}}}, 0x16)

llcconnhandler() initialises local variables {saddr,daddr}.mac based on skb in llcpdudecodesa()/llcpdudecodeda() and passes them to _llclookup().

However, the initialisation is done only when skb->protocol is htons(ETHP802_2), otherwise, __llclookupestablished() and __llclookuplistener() will read garbage.

The missing initialisation existed prior to commit 211ed865108e ("net: delete all instances of special processing for token ring").

It removed the part to kick out the token ring stuff but forgot to close the door allowing ETHPTR8022 packets to sneak into llc_rcv().

Let's remove llctrpacket_type and complete the deprecation.

__llclookupestablished+0xe9d/0xf90 __llclookup net/llc/llcconn.c:611 [inline] llcconnhandler+0x4bd/0x1360 net/llc/llcconn.c:791 llcrcv+0xfbb/0x14a0 net/llc/llc_input.c:206 __netifreceiveskbonecore net/core/dev.c:5527 [inline] __netifreceiveskb+0x1a6/0x5a0 net/core/dev.c:5641 netif_receiveskbinternal net/core/dev.c:5727 [inline] netifreceiveskb+0x58/0x660 net/core/dev.c:5786 tunrxbatched+0x3ee/0x980 drivers/net/tun.c:1555 tungetuser+0x53af/0x66d0 drivers/net/tun.c:2002 tunchrwriteiter+0x3af/0x5d0 drivers/net/tun.c:2048 callwriteiter include/linux/fs.h:2020 [inline] newsyncwrite fs/readwrite.c:491 [inline] vfswrite+0x8ef/0x1490 fs/readwrite.c:584 ksyswrite+0x20f/0x4c0 fs/readwrite.c:637 __dosyswrite fs/read_write.c:649 [inline] __sesyswrite fs/read_write.c:646 [inline] _x64syswrite+0x93/0xd0 fs/readwrite.c:646 dosyscallx64 arch/x86/entry/common.c:51 [inline] dosyscall64+0x44/0x110 arch/x86/entry/common.c:82 entrySYSCALL64afterhwframe+0x63/0x6b

Local variable daddr created at: llcconnhandler+0x53/0x1360 net/llc/llcconn.c:783 llcrcv+0xfbb/0x14a0 net/llc/llc_input.c:206

CPU: 1 PID: 5004 Comm: syz-executor994 Not tainted 6.6.0-syzkaller-14500-g1c41041124bd #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/09/2023

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/26xxx/CVE-2024-26635.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
211ed865108e24697b44bee5daac502ee6bdd4a4
Fixed
165ad1e22779685c3ed3dd349c6c4c632309cc62
Fixed
b8e8838f82f332ae80c643dbb1ca4418d0628097
Fixed
9ccdef19cf9497c2803b005369668feb91cacdfd
Fixed
c0fe2fe7a5a291dfcf6dc64301732c8d3dc6a828
Fixed
660c3053d992b68fee893a0e9ec9159228cffdc6
Fixed
f1f34a515fb1e25e85dee94f781e7869ae351fb8
Fixed
df57fc2f2abf548aa889a36ab0bdcc94a75399dc
Fixed
e3f9bed9bee261e3347131764e42aeedf1ffea61

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2024-26635.json"