| From bippy-1.2.0 Mon Sep 17 00:00:00 2001 |
| From: Greg Kroah-Hartman <gregkh@kernel.org> |
| To: <linux-cve-announce@vger.kernel.org> |
| Reply-to: <cve@kernel.org>, <linux-kernel@vger.kernel.org> |
| Subject: CVE-2025-22055: net: fix geneve_opt length integer overflow |
| |
| Description |
| =========== |
| |
| In the Linux kernel, the following vulnerability has been resolved: |
| |
| net: fix geneve_opt length integer overflow |
| |
| struct geneve_opt uses 5 bit length for each single option, which |
| means every vary size option should be smaller than 128 bytes. |
| |
| However, all current related Netlink policies cannot promise this |
| length condition and the attacker can exploit a exact 128-byte size |
| option to *fake* a zero length option and confuse the parsing logic, |
| further achieve heap out-of-bounds read. |
| |
| One example crash log is like below: |
| |
| [ 3.905425] ================================================================== |
| [ 3.905925] BUG: KASAN: slab-out-of-bounds in nla_put+0xa9/0xe0 |
| [ 3.906255] Read of size 124 at addr ffff888005f291cc by task poc/177 |
| [ 3.906646] |
| [ 3.906775] CPU: 0 PID: 177 Comm: poc-oob-read Not tainted 6.1.132 #1 |
| [ 3.907131] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014 |
| [ 3.907784] Call Trace: |
| [ 3.907925] <TASK> |
| [ 3.908048] dump_stack_lvl+0x44/0x5c |
| [ 3.908258] print_report+0x184/0x4be |
| [ 3.909151] kasan_report+0xc5/0x100 |
| [ 3.909539] kasan_check_range+0xf3/0x1a0 |
| [ 3.909794] memcpy+0x1f/0x60 |
| [ 3.909968] nla_put+0xa9/0xe0 |
| [ 3.910147] tunnel_key_dump+0x945/0xba0 |
| [ 3.911536] tcf_action_dump_1+0x1c1/0x340 |
| [ 3.912436] tcf_action_dump+0x101/0x180 |
| [ 3.912689] tcf_exts_dump+0x164/0x1e0 |
| [ 3.912905] fw_dump+0x18b/0x2d0 |
| [ 3.913483] tcf_fill_node+0x2ee/0x460 |
| [ 3.914778] tfilter_notify+0xf4/0x180 |
| [ 3.915208] tc_new_tfilter+0xd51/0x10d0 |
| [ 3.918615] rtnetlink_rcv_msg+0x4a2/0x560 |
| [ 3.919118] netlink_rcv_skb+0xcd/0x200 |
| [ 3.919787] netlink_unicast+0x395/0x530 |
| [ 3.921032] netlink_sendmsg+0x3d0/0x6d0 |
| [ 3.921987] __sock_sendmsg+0x99/0xa0 |
| [ 3.922220] __sys_sendto+0x1b7/0x240 |
| [ 3.922682] __x64_sys_sendto+0x72/0x90 |
| [ 3.922906] do_syscall_64+0x5e/0x90 |
| [ 3.923814] entry_SYSCALL_64_after_hwframe+0x6e/0xd8 |
| [ 3.924122] RIP: 0033:0x7e83eab84407 |
| [ 3.924331] Code: 48 89 fa 4c 89 df e8 38 aa 00 00 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 1a 5b c3 0f 1f 84 00 00 00 00 00 48 8b 44 24 10 0f 05 <5b> c3 0f 1f 80 00 00 00 00 83 e2 39 83 faf |
| [ 3.925330] RSP: 002b:00007ffff505e370 EFLAGS: 00000202 ORIG_RAX: 000000000000002c |
| [ 3.925752] RAX: ffffffffffffffda RBX: 00007e83eaafa740 RCX: 00007e83eab84407 |
| [ 3.926173] RDX: 00000000000001a8 RSI: 00007ffff505e3c0 RDI: 0000000000000003 |
| [ 3.926587] RBP: 00007ffff505f460 R08: 00007e83eace1000 R09: 000000000000000c |
| [ 3.926977] R10: 0000000000000000 R11: 0000000000000202 R12: 00007ffff505f3c0 |
| [ 3.927367] R13: 00007ffff505f5c8 R14: 00007e83ead1b000 R15: 00005d4fbbe6dcb8 |
| |
| Fix these issues by enforing correct length condition in related |
| policies. |
| |
| The Linux kernel CVE team has assigned CVE-2025-22055 to this issue. |
| |
| |
| Affected and fixed versions |
| =========================== |
| |
| Issue introduced in 4.19 with commit 0ed5269f9e41f495c8e9020c85f5e1644c1afc57 and fixed in 5.10.236 with commit a2cb85f989e2074e2f392e00188c438cab3de088 |
| Issue introduced in 4.19 with commit 0ed5269f9e41f495c8e9020c85f5e1644c1afc57 and fixed in 5.15.180 with commit b4513ad0f391871d3feee8ddf535609a3aabeeac |
| Issue introduced in 4.19 with commit 0ed5269f9e41f495c8e9020c85f5e1644c1afc57 and fixed in 6.1.134 with commit 21748669c5825761cbbf47cbeeb01387ddccc8cb |
| Issue introduced in 4.19 with commit 0ed5269f9e41f495c8e9020c85f5e1644c1afc57 and fixed in 6.6.87 with commit 5a2976cc4d9c36ff58a0f10e35ce4283cbaa9c0e |
| Issue introduced in 4.19 with commit 0ed5269f9e41f495c8e9020c85f5e1644c1afc57 and fixed in 6.12.23 with commit 2952776c69a1a551649ed770bf22e3f691f6ec65 |
| Issue introduced in 4.19 with commit 0ed5269f9e41f495c8e9020c85f5e1644c1afc57 and fixed in 6.13.11 with commit 738ae5712215fe9181587d582b23333f02c62ca6 |
| Issue introduced in 4.19 with commit 0ed5269f9e41f495c8e9020c85f5e1644c1afc57 and fixed in 6.14.2 with commit 4d606069bdd3c76f8ab1f06796c97ef7f4746807 |
| Issue introduced in 4.19 with commit 0ed5269f9e41f495c8e9020c85f5e1644c1afc57 and fixed in 6.15 with commit b27055a08ad4b415dcf15b63034f9cb236f7fb40 |
| |
| Please see https://www.kernel.org for a full list of currently supported |
| kernel versions by the kernel community. |
| |
| Unaffected versions might change over time as fixes are backported to |
| older supported kernel versions. The official CVE entry at |
| https://cve.org/CVERecord/?id=CVE-2025-22055 |
| will be updated if fixes are backported, please check that for the most |
| up to date information about this issue. |
| |
| |
| Affected files |
| ============== |
| |
| The file(s) affected by this issue are: |
| net/ipv4/ip_tunnel_core.c |
| net/netfilter/nft_tunnel.c |
| net/sched/act_tunnel_key.c |
| net/sched/cls_flower.c |
| |
| |
| Mitigation |
| ========== |
| |
| The Linux kernel CVE team recommends that you update to the latest |
| stable kernel version for this, and many other bugfixes. Individual |
| changes are never tested alone, but rather are part of a larger kernel |
| release. Cherry-picking individual commits is not recommended or |
| supported by the Linux kernel community at all. If however, updating to |
| the latest release is impossible, the individual changes to resolve this |
| issue can be found at these commits: |
| https://git.kernel.org/stable/c/a2cb85f989e2074e2f392e00188c438cab3de088 |
| https://git.kernel.org/stable/c/b4513ad0f391871d3feee8ddf535609a3aabeeac |
| https://git.kernel.org/stable/c/21748669c5825761cbbf47cbeeb01387ddccc8cb |
| https://git.kernel.org/stable/c/5a2976cc4d9c36ff58a0f10e35ce4283cbaa9c0e |
| https://git.kernel.org/stable/c/2952776c69a1a551649ed770bf22e3f691f6ec65 |
| https://git.kernel.org/stable/c/738ae5712215fe9181587d582b23333f02c62ca6 |
| https://git.kernel.org/stable/c/4d606069bdd3c76f8ab1f06796c97ef7f4746807 |
| https://git.kernel.org/stable/c/b27055a08ad4b415dcf15b63034f9cb236f7fb40 |