| Added |
Translation |
|
Title: Linux, Description: En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:
flow_dissector: no diseccionar tramas PPPoE PFC
La Sección 7 del RFC 2516 establece que la Compresión de Campo de Protocolo (PFC) NO ES RECOMENDADA para PPPoE. En la práctica, pppd no soporta la negociación de PFC para sesiones PPPoE, y el controlador del disector de flujo ha asumido una trama sin comprimir hasta el commit en cuestión.
Durante el proceso de revisión de ese commit [1], se sugiere el soporte para PFC. Sin embargo, tener un campo de protocolo comprimido (de 1 byte) significa que la carga útil PPP subsiguiente se desplaza un byte, causando una desalineación de 4 bytes para el encabezado de red y una excepción de acceso no alineado en algunas arquitecturas.
La excepción puede reproducirse enviando una trama PPPoE PFC a una interfaz ethernet de una placa MIPS, con RPS habilitado, incluso si no hay ninguna sesión PPPoE activa en esa interfaz:
$ 0 : 00000000 80c40000 00000000 85144817
$ 4 : 00000008 00000100 80a75758 81dc9bb8
$ 8 : 00000010 8087ae2c 0000003d 00000000
$12 : 000000e0 00000039 00000000 00000000
$16 : 85043240 80a75758 81dc9bb8 00006488
$20 : 0000002f 00000007 85144810 80a70000
$24 : 81d1bda0 00000000
$28 : 81dc8000 81dc9aa8 00000000 805ead08
Hi : 00009d51
Lo : 2163358a
epc : 805e91f0 __skb_flow_dissect+0x1b0/0x1b50
ra : 805ead08 __skb_get_hash_net+0x74/0x12c
Status: 11000403 KERNEL EXL IE
Cause : 40800010 (ExcCode 04)
BadVA : 85144817
PrId : 0001992f (MIPS 1004Kc)
Traza de Llamada:
[<805e91f0>] __skb_flow_dissect+0x1b0/0x1b50
[<805ead08>] __skb_get_hash_net+0x74/0x12c
[<805ef330>] get_rps_cpu+0x1b8/0x3fc
[<805fca70>] netif_receive_skb_list_internal+0x324/0x364
[<805fd120>] napi_complete_done+0x68/0x2a4
[<8058de5c>] mtk_napi_rx+0x228/0xfec
[<805fd398>] __napi_poll+0x3c/0x1c4
[<805fd754>] napi_threaded_poll_loop+0x234/0x29c
[<805fd848>] napi_threaded_poll+0x8c/0xb0
[<80053544>] kthread+0x104/0x12c
[<80002bd8>] ret_from_kernel_thread+0x14/0x1c
Código: 02d51821 1060045b 00000000 <8c640000> 3084000f 2c820005 144001a2 00042080 8e220000
Para reducir la superficie de ataque y mantener el rendimiento, no procesar las tramas PPPoE PFC.
[1] https://lore.kernel.org/r/[email protected]
|