In the Linux kernel, the following vulnerability has been resolved:
ipv4: check for NULL idev in iprouteuse_hint()
syzbot was able to trigger a NULL deref in fibvalidatesource() in an old tree [1].
It appears the bug exists in latest trees.
All calls to _indevgetrcu() must be checked for a NULL result.
[1] general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] SMP KASAN KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007] CPU: 2 PID: 3257 Comm: syz-executor.3 Not tainted 5.10.0-syzkaller #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 RIP: 0010:fibvalidatesource+0xbf/0x15a0 net/ipv4/fibfrontend.c:425 Code: 18 f2 f2 f2 f2 42 c7 44 20 23 f3 f3 f3 f3 48 89 44 24 78 42 c6 44 20 27 f3 e8 5d 88 48 fc 4c 89 e8 48 c1 e8 03 48 89 44 24 18 <42> 80 3c 20 00 74 08 4c 89 ef e8 d2 15 98 fc 48 89 5c 24 10 41 bf RSP: 0018:ffffc900015fee40 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffff88800f7a4000 RCX: ffff88800f4f90c0 RDX: 0000000000000000 RSI: 0000000004001eac RDI: ffff8880160c64c0 RBP: ffffc900015ff060 R08: 0000000000000000 R09: ffff88800f7a4000 R10: 0000000000000002 R11: ffff88800f4f90c0 R12: dffffc0000000000 R13: 0000000000000000 R14: 0000000000000000 R15: ffff88800f7a4000 FS: 00007f938acfe6c0(0000) GS:ffff888058c00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f938acddd58 CR3: 000000001248e000 CR4: 0000000000352ef0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: iprouteusehint+0x410/0x9b0 net/ipv4/route.c:2231 iprcvfinishcore+0x2c4/0x1a30 net/ipv4/ipinput.c:327 iplistrcvfinish net/ipv4/ipinput.c:612 [inline] ipsublistrcv+0x3ed/0xe50 net/ipv4/ipinput.c:638 iplistrcv+0x422/0x470 net/ipv4/ipinput.c:673 _netifreceiveskblistptype net/core/dev.c:5572 [inline] _netifreceiveskblistcore+0x6b1/0x890 net/core/dev.c:5620 _netifreceiveskblist net/core/dev.c:5672 [inline] netifreceiveskblistinternal+0x9f9/0xdc0 net/core/dev.c:5764 netifreceiveskblist+0x55/0x3e0 net/core/dev.c:5816 xdprecvframes net/bpf/testrun.c:257 [inline] xdptestrunbatch net/bpf/testrun.c:335 [inline] bpftestrunxdplive+0x1818/0x1d00 net/bpf/testrun.c:363 bpfprogtestrunxdp+0x81f/0x1170 net/bpf/testrun.c:1376 bpfprogtestrun+0x349/0x3c0 kernel/bpf/syscall.c:3736 _sysbpf+0x45c/0x710 kernel/bpf/syscall.c:5115 _dosysbpf kernel/bpf/syscall.c:5201 [inline] _sesysbpf kernel/bpf/syscall.c:5199 [inline] _x64sysbpf+0x7c/0x90 kernel/bpf/syscall.c:5199
{ "vanir_signatures": [ { "signature_type": "Function", "target": { "file": "net/ipv4/route.c", "function": "ip_route_use_hint" }, "id": "CVE-2024-36008-2419e333", "digest": { "length": 800.0, "function_hash": "241517055275801577463830715191196721844" }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@58a4c9b1e5a3e53c9148e80b90e1e43897ce77d1", "signature_version": "v1" }, { "signature_type": "Function", "target": { "file": "net/ipv4/route.c", "function": "ip_route_use_hint" }, "id": "CVE-2024-36008-3477b6c9", "digest": { "length": 800.0, "function_hash": "241517055275801577463830715191196721844" }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7a25bfd12733a8f38f8ca47c581f876c3d481ac0", "signature_version": "v1" }, { "signature_type": "Function", "target": { "file": "net/ipv4/route.c", "function": "ip_route_use_hint" }, "id": "CVE-2024-36008-3f360a15", "digest": { "length": 800.0, "function_hash": "241517055275801577463830715191196721844" }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7da0f91681c4902bc5c210356fdd963b04d5d1d4", "signature_version": "v1" }, { "signature_type": "Line", "target": { "file": "net/ipv4/route.c" }, "id": "CVE-2024-36008-480c1904", "digest": { "threshold": 0.9, "line_hashes": [ "81428500974400266128147074748299641334", "205875856608728292656329687532627058660", "262444470921445783603271119760585323874" ] }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@58a4c9b1e5a3e53c9148e80b90e1e43897ce77d1", "signature_version": "v1" }, { "signature_type": "Line", "target": { "file": "net/ipv4/route.c" }, "id": "CVE-2024-36008-6067769a", "digest": { "threshold": 0.9, "line_hashes": [ "81428500974400266128147074748299641334", "205875856608728292656329687532627058660", "262444470921445783603271119760585323874" ] }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7da0f91681c4902bc5c210356fdd963b04d5d1d4", "signature_version": "v1" }, { "signature_type": "Line", "target": { "file": "net/ipv4/route.c" }, "id": "CVE-2024-36008-80766254", "digest": { "threshold": 0.9, "line_hashes": [ "81428500974400266128147074748299641334", "205875856608728292656329687532627058660", "262444470921445783603271119760585323874" ] }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@03b5a9b2b526862b21bcc31976e393a6e63785d1", "signature_version": "v1" }, { "signature_type": "Function", "target": { "file": "net/ipv4/route.c", "function": "ip_route_use_hint" }, "id": "CVE-2024-36008-82ab6978", "digest": { "length": 800.0, "function_hash": "241517055275801577463830715191196721844" }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c71ea3534ec0936fc57e6fb271c7cc6a2f68c295", "signature_version": "v1" }, { "signature_type": "Function", "target": { "file": "net/ipv4/route.c", "function": "ip_route_use_hint" }, "id": "CVE-2024-36008-8e2205da", "digest": { "length": 800.0, "function_hash": "241517055275801577463830715191196721844" }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@03b5a9b2b526862b21bcc31976e393a6e63785d1", "signature_version": "v1" }, { "signature_type": "Function", "target": { "file": "net/ipv4/route.c", "function": "ip_route_use_hint" }, "id": "CVE-2024-36008-99f93863", "digest": { "length": 800.0, "function_hash": "241517055275801577463830715191196721844" }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8240c7308c941db4d9a0a91b54eca843c616a655", "signature_version": "v1" }, { "signature_type": "Line", "target": { "file": "net/ipv4/route.c" }, "id": "CVE-2024-36008-cea1a8d1", "digest": { "threshold": 0.9, "line_hashes": [ "81428500974400266128147074748299641334", "205875856608728292656329687532627058660", "262444470921445783603271119760585323874" ] }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8240c7308c941db4d9a0a91b54eca843c616a655", "signature_version": "v1" }, { "signature_type": "Line", "target": { "file": "net/ipv4/route.c" }, "id": "CVE-2024-36008-d47f7303", "digest": { "threshold": 0.9, "line_hashes": [ "81428500974400266128147074748299641334", "205875856608728292656329687532627058660", "262444470921445783603271119760585323874" ] }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7a25bfd12733a8f38f8ca47c581f876c3d481ac0", "signature_version": "v1" }, { "signature_type": "Line", "target": { "file": "net/ipv4/route.c" }, "id": "CVE-2024-36008-d7bdd89e", "digest": { "threshold": 0.9, "line_hashes": [ "81428500974400266128147074748299641334", "205875856608728292656329687532627058660", "262444470921445783603271119760585323874" ] }, "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c71ea3534ec0936fc57e6fb271c7cc6a2f68c295", "signature_version": "v1" } ] }