← Back to CVE Explorer

CVE-2026-64275

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: Input: elan_i2c - prevent division by zero and arithmetic underflow The Elan I2C touchpad driver queries the device for its physical dimensions and trace counts to calculate the device resolution and width. However, if the device firmware or device tree provides invalid zero values for x_traces or y_traces, it results in a fatal division-by-zero exception leading to a kernel panic during device probe. Add checks to ensure these parameters are non-zero before performing the division. If invalid trace values are detected, fall back to a safe default of 1. Additionally, prevent an arithmetic underflow in the touch reporting logic. Previously, if the calculated or fallback width was smaller than ETP_FWIDTH_REDUCE (90), the subtraction would underflow, resulting in a massive unsigned integer being reported to userspace. Clamp the adjusted width to a minimum of 0 to safely handle small physical dimensions and fallback scenarios. Completing the probe with safe fallback values ensures the sysfs nodes are created, keeping the firmware update path intact so a recovery firmware can be flashed to the device.

Severity
MEDIUM
CVSS score
5.5 (v3.1)
Vulnerability status
Analyzed
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-07-25 10:17:07.927000
Last modified
2026-10-24 13:10:00.147000
View original CVE JSON
{
  "id": "CVE-2026-64275",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2026-07-25T10:17:07.927",
  "lastModified": "2026-10-24T13:10:00.147",
  "vulnStatus": "Analyzed",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nInput: elan_i2c - prevent division by zero and arithmetic underflow\n\nThe Elan I2C touchpad driver queries the device for its physical\ndimensions and trace counts to calculate the device resolution and width.\nHowever, if the device firmware or device tree provides invalid zero\nvalues for x_traces or y_traces, it results in a fatal division-by-zero\nexception leading to a kernel panic during device probe.\n\nAdd checks to ensure these parameters are non-zero before performing\nthe division. If invalid trace values are detected, fall back to a safe\ndefault of 1.\n\nAdditionally, prevent an arithmetic underflow in the touch reporting\nlogic. Previously, if the calculated or fallback width was smaller than\nETP_FWIDTH_REDUCE (90), the subtraction would underflow, resulting in a\nmassive unsigned integer being reported to userspace. Clamp the adjusted\nwidth to a minimum of 0 to safely handle small physical dimensions and\nfallback scenarios.\n\nCompleting the probe with safe fallback values ensures the sysfs nodes\nare created, keeping the firmware update path intact so a recovery\nfirmware can be flashed to the device."
    },
    {
      "lang": "es",
      "value": "En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\n\nEntrada: elan_i2c - prevenir la división por cero y el desbordamiento negativo aritmético\n\nEl controlador del panel táctil Elan I2C consulta el dispositivo para sus dimensiones físicas y recuentos de trazas para calcular la resolución y el ancho del dispositivo. Sin embargo, si el firmware del dispositivo o el árbol de dispositivos proporciona valores cero inválidos para x_traces o y_traces, resulta en una excepción fatal de división por cero que lleva a un pánico del kernel durante la detección del dispositivo.\n\nAñadir comprobaciones para asegurar que estos parámetros no sean cero antes de realizar la división. Si se detectan valores de traza inválidos, se recurre a un valor predeterminado seguro de 1.\n\nAdemás, prevenir un desbordamiento negativo aritmético en la lógica de informe táctil. Anteriormente, si el ancho calculado o de respaldo era menor que ETP_FWIDTH_REDUCE (90), la resta sufriría un desbordamiento negativo, resultando en un entero sin signo masivo siendo informado al espacio de usuario. Limitar el ancho ajustado a un mínimo de 0 para manejar de forma segura pequeñas dimensiones físicas y escenarios de respaldo.\n\nCompletar la detección con valores de respaldo seguros asegura que los nodos sysfs sean creados, manteniendo intacta la ruta de actualización del firmware para que un firmware de recuperación pueda ser flasheado al dispositivo."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "drivers/input/mouse/elan_i2c_core.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "6696777c6506fa52b2a0282121195843ed855be6",
              "lessThan": "59d4cc5e7a9785e4bdc9c55273274c6b49d4b58d",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "6696777c6506fa52b2a0282121195843ed855be6",
              "lessThan": "f6d10af2036d1d4a847a74fe47ebbf93bce3c84c",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "6696777c6506fa52b2a0282121195843ed855be6",
              "lessThan": "2f281ff0163a38fdc4cb4061f0c241e643283a5e",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "6696777c6506fa52b2a0282121195843ed855be6",
              "lessThan": "8c1db3418a419e788691746b9c47f863c2fd4890",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "6696777c6506fa52b2a0282121195843ed855be6",
              "lessThan": "feb4866a42ec94764c7eb58012256f6f37664727",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "6696777c6506fa52b2a0282121195843ed855be6",
              "lessThan": "01e0317c256c560d8dcce2e9825eb6142ee34611",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "6696777c6506fa52b2a0282121195843ed855be6",
              "lessThan": "6bac57d8fe2a077b8a85b4140eeb7999078158eb",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "6696777c6506fa52b2a0282121195843ed855be6",
              "lessThan": "df2b818fa009c10ff6ba875a1663ff001cda9558",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "drivers/input/mouse/elan_i2c_core.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "3.19",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "3.19",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "5.10.261",
              "lessThanOrEqual": "5.10.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "5.15.212",
              "lessThanOrEqual": "5.15.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.1.178",
              "lessThanOrEqual": "6.1.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.6.145",
              "lessThanOrEqual": "6.6.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.12.96",
              "lessThanOrEqual": "6.12.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.18.39",
              "lessThanOrEqual": "6.18.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.1.4",
              "lessThanOrEqual": "7.1.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.2",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV31": [
      {
        "source": "[email protected]",
        "type": "Primary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H",
          "baseScore": 5.5,
          "baseSeverity": "MEDIUM",
          "attackVector": "LOCAL",
          "attackComplexity": "LOW",
          "privilegesRequired": "LOW",
          "userInteraction": "NONE",
          "scope": "UNCHANGED",
          "confidentialityImpact": "NONE",
          "integrityImpact": "NONE",
          "availabilityImpact": "HIGH"
        },
        "exploitabilityScore": 1.8,
        "impactScore": 3.6
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Primary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-369"
        }
      ]
    }
  ],
  "configurations": [
    {
      "nodes": [
        {
          "operator": "OR",
          "negate": false,
          "cpeMatch": [
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
              "versionStartIncluding": "3.19",
              "versionEndExcluding": "5.10.261",
              "matchCriteriaId": "3E2290F3-E056-4C61-B1BE-28AFC4F9B7C2"
            },
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
              "versionStartIncluding": "5.11",
              "versionEndExcluding": "5.15.212",
              "matchCriteriaId": "8E99FB01-CD93-41AF-A653-3F450652B9A6"
            },
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
              "versionStartIncluding": "5.16",
              "versionEndExcluding": "6.1.178",
              "matchCriteriaId": "092233C7-F4E0-40C8-BD4D-A28FE50DFE20"
            },
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
              "versionStartIncluding": "6.2",
              "versionEndExcluding": "6.6.145",
              "matchCriteriaId": "7046B092-F810-4440-ACE6-60218518EECE"
            },
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
              "versionStartIncluding": "6.7",
              "versionEndExcluding": "6.12.96",
              "matchCriteriaId": "38A8100E-2B1A-462F-AEE9-8901B870FEF2"
            },
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
              "versionStartIncluding": "6.13",
              "versionEndExcluding": "6.18.39",
              "matchCriteriaId": "914AE4BC-3D59-4C5A-9DB5-9CE327B429F7"
            },
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
              "versionStartIncluding": "6.19",
              "versionEndExcluding": "7.1.4",
              "matchCriteriaId": "6228DDD6-4557-4AA3-9F43-AB995D471E42"
            }
          ]
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/01e0317c256c560d8dcce2e9825eb6142ee34611",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "tags": [
        "Patch"
      ]
    },
    {
      "url": "https://git.kernel.org/stable/c/2f281ff0163a38fdc4cb4061f0c241e643283a5e",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "tags": [
        "Patch"
      ]
    },
    {
      "url": "https://git.kernel.org/stable/c/59d4cc5e7a9785e4bdc9c55273274c6b49d4b58d",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "tags": [
        "Patch"
      ]
    },
    {
      "url": "https://git.kernel.org/stable/c/6bac57d8fe2a077b8a85b4140eeb7999078158eb",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "tags": [
        "Patch"
      ]
    },
    {
      "url": "https://git.kernel.org/stable/c/8c1db3418a419e788691746b9c47f863c2fd4890",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "tags": [
        "Patch"
      ]
    },
    {
      "url": "https://git.kernel.org/stable/c/df2b818fa009c10ff6ba875a1663ff001cda9558",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "tags": [
        "Patch"
      ]
    },
    {
      "url": "https://git.kernel.org/stable/c/f6d10af2036d1d4a847a74fe47ebbf93bce3c84c",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "tags": [
        "Patch"
      ]
    },
    {
      "url": "https://git.kernel.org/stable/c/feb4866a42ec94764c7eb58012256f6f37664727",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "tags": [
        "Patch"
      ]
    }
  ]
}