← Back to CVE Explorer

CVE-2026-74683

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: Input: evdev - sanitize event type index when fetching event masks The user-supplied event type index passed to EVIOCGMASK / EVIOCSMASK ioctls is used to index the static counts array in evdev_get_mask_cnt() and client evmasks array in evdev_get_mask(). While the event type is architecturally bounded by EV_CNT, speculative execution may mispredict bounds checks and perform out-of-bounds loads. Sanitize the event type index in evdev_get_mask_cnt() branchlessly using array_index_mask_nospec(). This clamps the index to 0 for safe array access and forces the returned count to 0 speculatively when the index is out of bounds. We do not need additional array_index_nospec() calls in evdev_get_mask() because evdev_get_mask_cnt() speculatively forces the count (and resulting xfer_size) to 0 for out-of-bounds types, preventing any speculative memory access to client evmasks array.

Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-08-22 16:16:42.617000
Last modified
2026-11-06 17:19:54.683000
View original CVE JSON
{
  "id": "CVE-2026-74683",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2026-08-22T16:16:42.617",
  "lastModified": "2026-11-06T17:19:54.683",
  "vulnStatus": "Received",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nInput: evdev - sanitize event type index when fetching event masks\n\nThe user-supplied event type index passed to EVIOCGMASK / EVIOCSMASK\nioctls is used to index the static counts array in evdev_get_mask_cnt()\nand client evmasks array in evdev_get_mask().\n\nWhile the event type is architecturally bounded by EV_CNT, speculative\nexecution may mispredict bounds checks and perform out-of-bounds loads.\n\nSanitize the event type index in evdev_get_mask_cnt() branchlessly using\narray_index_mask_nospec(). This clamps the index to 0 for safe array\naccess and forces the returned count to 0 speculatively when the index\nis out of bounds.\n\nWe do not need additional array_index_nospec() calls in evdev_get_mask()\nbecause evdev_get_mask_cnt() speculatively forces the count (and\nresulting xfer_size) to 0 for out-of-bounds types, preventing any\nspeculative memory access to client evmasks array."
    },
    {
      "lang": "es",
      "value": "En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\n\nInput: evdev - sanear el índice del tipo de evento al obtener máscaras de evento\n\nEl índice del tipo de evento proporcionado por el usuario pasado a los ioctls EVIOCGMASK / EVIOCSMASK se utiliza para indexar el array estático counts en evdev_get_mask_cnt() y el array evmasks del cliente en evdev_get_mask().\n\nSi bien el tipo de evento está arquitectónicamente limitado por EV_CNT, la ejecución especulativa puede predecir erróneamente las comprobaciones de límites y realizar cargas fuera de límites.\n\nSanear el índice del tipo de evento en evdev_get_mask_cnt() sin ramificaciones usando array_index_mask_nospec(). Esto fija el índice a 0 para un acceso seguro al array y fuerza el recuento devuelto a 0 especulativamente cuando el índice está fuera de límites.\n\nNo necesitamos llamadas adicionales a array_index_nospec() en evdev_get_mask() porque evdev_get_mask_cnt() fuerza especulativamente el recuento (y el xfer_size resultante) a 0 para tipos fuera de límites, evitando cualquier acceso especulativo a la memoria al array evmasks del cliente."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "drivers/input/evdev.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "06a16293f71927f756dcf37558a79c0b05a91641",
              "lessThan": "c79b08d8fa230871a3634e34a66e591ac2d084ef",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "06a16293f71927f756dcf37558a79c0b05a91641",
              "lessThan": "f27fa9b39f925d26e034a1f382cb45523138f4ae",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "06a16293f71927f756dcf37558a79c0b05a91641",
              "lessThan": "f3fc329acad9a71b3c077237cbac20670d2358c8",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "06a16293f71927f756dcf37558a79c0b05a91641",
              "lessThan": "5db341189bb7ff041d570dbe36ecca7e32913927",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "06a16293f71927f756dcf37558a79c0b05a91641",
              "lessThan": "433913b4a92214d76e9f0c03ad9128fec943d5f8",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "06a16293f71927f756dcf37558a79c0b05a91641",
              "lessThan": "4034ef247a9dde3f56660b01f0c3280dac6b1274",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "06a16293f71927f756dcf37558a79c0b05a91641",
              "lessThan": "810e1883d4815f29c30d900ad7333d03cc2515d1",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "06a16293f71927f756dcf37558a79c0b05a91641",
              "lessThan": "3abd29c61d2ef37c4102cf755b18be53bb9dbea6",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "drivers/input/evdev.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "4.4",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "4.4",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "5.10.265",
              "lessThanOrEqual": "5.10.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "5.15.216",
              "lessThanOrEqual": "5.15.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.1.183",
              "lessThanOrEqual": "6.1.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.6.152",
              "lessThanOrEqual": "6.6.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.12.104",
              "lessThanOrEqual": "6.12.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.18.45",
              "lessThanOrEqual": "6.18.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.1.9",
              "lessThanOrEqual": "7.1.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.2",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-11-06T17:01:28.399490Z",
          "id": "CVE-2026-74683",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/3abd29c61d2ef37c4102cf755b18be53bb9dbea6",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/4034ef247a9dde3f56660b01f0c3280dac6b1274",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/433913b4a92214d76e9f0c03ad9128fec943d5f8",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/5db341189bb7ff041d570dbe36ecca7e32913927",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/810e1883d4815f29c30d900ad7333d03cc2515d1",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/c79b08d8fa230871a3634e34a66e591ac2d084ef",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/f27fa9b39f925d26e034a1f382cb45523138f4ae",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/f3fc329acad9a71b3c077237cbac20670d2358c8",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}