In the Linux kernel, the following vulnerability has been resolved: ip6_gre: make ip6gre_header() robust Over the years, syzbot found many ways to crash the kernel in ip6gre_header() [1]. This involves team or bonding drivers ability to dynamically change their dev->needed_headroom and/or dev->hard_header_len In this particular crash mld_newpack() allocated an skb with a too small reserve/headroom, and by the time mld_sendpack() was called, syzbot managed to attach an ip6gre device. [1] skbuff: skb_under_panic: text:ffffffff8a1d69a8 len:136 put:40 head:ffff888059bc7000 data:ffff888059bc6fe8 tail:0x70 end:0x6c0 dev:team0 ------------[ cut here ]------------ kernel BUG at net/core/skbuff.c:213 ! <TASK> skb_under_panic net/core/skbuff.c:223 [inline] skb_push+0xc3/0xe0 net/core/skbuff.c:2641 ip6gre_header+0xc8/0x790 net/ipv6/ip6_gre.c:1371 dev_hard_header include/linux/netdevice.h:3436 [inline] neigh_connected_output+0x286/0x460 net/core/neighbour.c:1618 neigh_output include/net/neighbour.h:556 [inline] ip6_finish_output2+0xfb3/0x1480 net/ipv6/ip6_output.c:136 __ip6_finish_output net/ipv6/ip6_output.c:-1 [inline] ip6_finish_output+0x234/0x7d0 net/ipv6/ip6_output.c:220 NF_HOOK_COND include/linux/netfilter.h:307 [inline] ip6_output+0x340/0x550 net/ipv6/ip6_output.c:247 NF_HOOK+0x9e/0x380 include/linux/netfilter.h:318 mld_sendpack+0x8d4/0xe60 net/ipv6/mcast.c:1855 mld_send_cr net/ipv6/mcast.c:2154 [inline] mld_ifc_work+0x83e/0xd60 net/ipv6/mcast.c:2693
En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta: ip6_gre: hacer que ip6gre_header() sea robusto A lo largo de los años, syzbot encontró muchas maneras de colapsar el kernel en ip6gre_header() [1]. Esto implica la capacidad de los controladores de equipo o de enlace (bonding) de cambiar dinámicamente su dev->needed_headroom y/o dev->hard_header_len En este colapso particular, mld_newpack() asignó un skb con una reserva/espacio de cabecera (headroom) demasiado pequeño, y para cuando se llamó a mld_sendpack(), syzbot logró adjuntar un dispositivo ip6gre. [1] skbuff: skb_under_panic: texto:ffffffff8a1d69a8 longitud:136 puesto:40 cabecera:ffff888059bc7000 datos:ffff888059bc6fe8 cola:0x70 fin:0x6c0 dispositivo:team0 ------------[ cortar aquí ]------------ BUG del kernel en net/core/skbuff.c:213 ! skb_under_panic net/core/skbuff.c:223 [en línea] skb_push+0xc3/0xe0 net/core/skbuff.c:2641 ip6gre_header+0xc8/0x790 net/ipv6/ip6_gre.c:1371 dev_hard_header include/linux/netdevice.h:3436 [en línea] neigh_connected_output+0x286/0x460 net/core/neighbour.c:1618 neigh_output include/net/neighbour.h:556 [en línea] ip6_finish_output2+0xfb3/0x1480 net/ipv6/ip6_output.c:136 __ip6_finish_output net/ipv6/ip6_output.c:-1 [en línea] ip6_finish_output+0x234/0x7d0 net/ipv6/ip6_output.c:220 NF_HOOK_COND include/linux/netfilter.h:307 [en línea] ip6_output+0x340/0x550 net/ipv6/ip6_output.c:247 NF_HOOK+0x9e/0x380 include/linux/netfilter.h:318 mld_sendpack+0x8d4/0xe60 net/ipv6/mcast.c:1855 mld_send_cr net/ipv6/mcast.c:2154 [en línea] mld_ifc_work+0x83e/0xd60 net/ipv6/mcast.c:2693
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
| Attack Vector | LOCAL |
|---|---|
| Attack Complexity | LOW |
| Privileges Required | LOW |
| User Interaction | NONE |
| Scope | UNCHANGED |
| Confidentiality Impact | NONE |
| Integrity Impact | NONE |
| Availability Impact | HIGH |
| Source | Type | Description |
|---|---|---|
| [email protected] | Primary |
en
CWE-476
|
| Vendor | Product | Version | Update | Type |
|---|---|---|---|---|
| linux | linux_kernel | * | <built-in method update of dict object at 0x702b8052f440> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x702bdd67f8c0> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x702bdd67d240> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x702bdd67c1c0> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x702b8052f4c0> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x702bfc337880> | Operating System |
| linux | linux_kernel | 3.7 | <built-in method update of dict object at 0x702bdd67db80> | Operating System |
| linux | linux_kernel | 6.19 | <built-in method update of dict object at 0x702bdd67c180> | Operating System |
| linux | linux_kernel | 6.19 | <built-in method update of dict object at 0x702bdd893cc0> | Operating System |
| linux | linux_kernel | 6.19 | <built-in method update of dict object at 0x702bfc334e00> | Operating System |
| linux | linux_kernel | 6.19 | <built-in method update of dict object at 0x702bdd2f1180> | Operating System |
| linux | linux_kernel | 6.19 | <built-in method update of dict object at 0x702bdd67c300> | Operating System |
| linux | linux_kernel | 6.19 | <built-in method update of dict object at 0x702bdd67d300> | Operating System |
| linux | linux_kernel | 6.19 | <built-in method update of dict object at 0x702bdcc5b600> | Operating System |
| linux | linux_kernel | 6.19 | <built-in method update of dict object at 0x702bdd2f31c0> | Operating System |
| Vulnerable | CPE |
|---|---|
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:3.7:-:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:6.19:rc1:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:6.19:rc2:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:6.19:rc3:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:6.19:rc4:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:6.19:rc5:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:6.19:rc6:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:6.19:rc7:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:6.19:rc8:*:*:*:*:*:* |