« Volver al listado

CVE-2026-98377

Estado: RecibidaSin puntuar—

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

vlan: requerir que la cabecera MAC esté presente en __vlan_insert_inner_tag()

__vlan_insert_inner_tag() solo garantiza espacio en cabecera mediante skb_cow_head(), nunca que estén presentes mac_len bytes de cabecera MAC. Sus envoltorios ETH_HLEN - __vlan_insert_tag() bajo skb_vlan_push(), y vlan_insert_tag() bajo validate_xmit_vlan() en la ruta de transmisión genérica - por lo tanto reescriben los primeros 16 bytes en skb->data: un memmove de 12 bytes más dos almacenamientos de 2 bytes en +12 y +14. Ningún llamador proporciona el límite, mientras que los ayudantes pop utilizan skb_ensure_writable()/pskb_may_pull().

Leer descripción completaMostrar menos

Un dispositivo IFF_TUN tiene hard_header_len == 0, por lo que packet_snd() acepta una trama AF_PACKET/SOCK_RAW de un byte. El primer push vlan solo establece una etiqueta hwaccel; el siguiente - clsact "action vlan push" o bpf_skb_vlan_push() - entra en el ayudante con skb->len aún en 1. La cabecera viene de skbuff_small_head sin __GFP_ZERO, por lo que cada push arrastra bytes más allá de skb->tail hacia la trama. Después de tres, el envío de un byte se queda en 13 bytes portando 11 bytes de slab no inicializado:

Requerir que la cabecera MAC que el ayudante reescribe esté presente, para que tal trama sea descartada en lugar de transmitida.

Detalles técnicos trazas, registros y código del informe original
  0000: 5a b3 62 12 80 88 ff ff 00 b3 62 12 81
           `------------------------------'
  solo se envió 0x5a; el resto es slab, aquí los 56 bits superiores de una dirección de mapa lineal

Traducción automática del texto original de NVD (en inglés).

CVSS

NVD no ha asignado puntuación CVSS a esta CVE (habitual desde el cambio de política de abril de 2026).

Probabilidad de explotación (EPSS)

EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).

Tecnologías afectadas (1)

⚠ Inferidas por IA a partir de la descripción — NVD aún no ha analizado esta CVE; no son CPE verificados.

Referencias

JSON original (NVD)

Mostrar
{
  "id": "CVE-2026-98377",
  "cveTags": [],
  "metrics": {},
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "product": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
              "lessThan": "40a5cc4b7251c74f3341332a226d02200e96bccf",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
              "lessThan": "f42562dd027dc4ed103fae17b2206e73ea1963c4",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
              "lessThan": "59af43ccece4d2d8b62e9e3ccc96b6e2e793bcdc",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
              "lessThan": "ab888242fce4f16f6c4d4c6ec53939ad36aa3b3a",
              "versionType": "git"
            }
          ],
          "programFiles": [
            "include/linux/if_vlan.h"
          ],
          "defaultStatus": "unaffected"
        },
        {
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "product": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "2.6.12"
            },
            {
              "status": "unaffected",
              "version": "0",
              "lessThan": "2.6.12",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "6.12.112",
              "versionType": "semver",
              "lessThanOrEqual": "6.12.*"
            },
            {
              "status": "unaffected",
              "version": "6.18.55",
              "versionType": "semver",
              "lessThanOrEqual": "6.18.*"
            },
            {
              "status": "unaffected",
              "version": "7.2.9",
              "versionType": "semver",
              "lessThanOrEqual": "7.2.*"
            },
            {
              "status": "unaffected",
              "version": "7.3-rc5",
              "versionType": "original_commit_for_fix",
              "lessThanOrEqual": "*"
            }
          ],
          "programFiles": [
            "include/linux/if_vlan.h"
          ],
          "defaultStatus": "affected"
        }
      ]
    }
  ],
  "published": "2026-10-09T08:16:56.010",
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/40a5cc4b7251c74f3341332a226d02200e96bccf",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/59af43ccece4d2d8b62e9e3ccc96b6e2e793bcdc",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/ab888242fce4f16f6c4d4c6ec53939ad36aa3b3a",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/f42562dd027dc4ed103fae17b2206e73ea1963c4",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ],
  "vulnStatus": "Received",
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvlan: require the MAC header to be present in __vlan_insert_inner_tag()\n\n__vlan_insert_inner_tag() only guarantees head room via skb_cow_head(),\nnever that mac_len bytes of MAC header are present.  Its ETH_HLEN\nwrappers - __vlan_insert_tag() under skb_vlan_push(), and\nvlan_insert_tag() under validate_xmit_vlan() on the generic transmit\npath - therefore rewrite the first 16 bytes at skb->data: a 12-byte\nmemmove plus two 2-byte stores at +12 and +14.  No caller supplies the\nbound, while the pop helpers use skb_ensure_writable()/pskb_may_pull().\n\nAn IFF_TUN device has hard_header_len == 0, so packet_snd() accepts a\none-byte AF_PACKET/SOCK_RAW frame.  The first vlan push only sets a\nhwaccel tag; the next - clsact \"action vlan push\" or\nbpf_skb_vlan_push() - enters the helper with skb->len still 1.  The\nhead comes from skbuff_small_head without __GFP_ZERO, so each push\ndrags bytes from beyond skb->tail into the frame.  After three the\none-byte send leaves as 13 bytes carrying 11 bytes of uninitialised\nslab:\n\n  0000: 5a b3 62 12 80 88 ff ff 00 b3 62 12 81\n           `------------------------------'\n  only 0x5a was sent; the rest is slab, here the top 56 bits of a\n  linear-map address\n\nRequire the MAC header the helper rewrites to be present, so such a\nframe is dropped rather than transmitted."
    }
  ],
  "lastModified": "2026-10-09T08:16:56.010",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}