← Back to CVE Explorer

CVE-2025-40239

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: net: phy: micrel: always set shared->phydev for LAN8814 Currently, during the LAN8814 PTP probe shared->phydev is only set if PTP clock gets actually set, otherwise the function will return before setting it. This is an issue as shared->phydev is unconditionally being used when IRQ is being handled, especially in lan8814_gpio_process_cap and since it was not set it will cause a NULL pointer exception and crash the kernel. So, simply always set shared->phydev to avoid the NULL pointer exception.

Severity
Not scored
CVSS score
Not available
Vulnerability status
Deferred
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2025-12-04 16:16:16.963000
Last modified
2026-10-19 19:10:00.130000
View original CVE JSON
{
  "id": "CVE-2025-40239",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2025-12-04T16:16:16.963",
  "lastModified": "2026-10-19T19:10:00.130",
  "vulnStatus": "Deferred",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: phy: micrel: always set shared->phydev for LAN8814\n\nCurrently, during the LAN8814 PTP probe shared->phydev is only set if PTP\nclock gets actually set, otherwise the function will return before setting\nit.\n\nThis is an issue as shared->phydev is unconditionally being used when IRQ\nis being handled, especially in lan8814_gpio_process_cap and since it was\nnot set it will cause a NULL pointer exception and crash the kernel.\n\nSo, simply always set shared->phydev to avoid the NULL pointer exception."
    },
    {
      "lang": "es",
      "value": "En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\n\nnet: phy: micrel: siempre establecer shared -> phydev para LAN8814\n\nActualmente, durante la sonda PTP de LAN8814, shared -> phydev solo se establece si el reloj PTP se configura realmente; de lo contrario, la función retornará antes de establecerlo.\n\nEsto es un problema ya que shared -> phydev se utiliza incondicionalmente cuando se maneja la IRQ, especialmente en lan8814_gpio_process_cap, y dado que no se estableció, causará una excepción de puntero NULL y bloqueará el kernel.\n\nAsí que, simplemente siempre establecer shared -> phydev para evitar la excepción de puntero NULL."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "drivers/net/phy/micrel.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "b3f1a08fcf0dd58d99b14b9f8fbd1929f188b746",
              "lessThan": "da1ef8e9eb5d4a12bec32d11636e521e7d529b9e",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "b3f1a08fcf0dd58d99b14b9f8fbd1929f188b746",
              "lessThan": "b093b06826b836c2824858669db080c190c04715",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "b3f1a08fcf0dd58d99b14b9f8fbd1929f188b746",
              "lessThan": "399d10934740ae8cdaa4e3245f7c5f6c332da844",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "drivers/net/phy/micrel.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "6.10",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "6.10",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.12.56",
              "lessThanOrEqual": "6.12.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.17.6",
              "lessThanOrEqual": "6.17.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.18",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {},
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/399d10934740ae8cdaa4e3245f7c5f6c332da844",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/b093b06826b836c2824858669db080c190c04715",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/da1ef8e9eb5d4a12bec32d11636e521e7d529b9e",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}