CVE-2025-37875 (GCVE-0-2025-37875)
Vulnerability from cvelistv5
Published
2025-05-09 06:44
Modified
2025-05-26 05:22
Severity ?
Summary
In the Linux kernel, the following vulnerability has been resolved: igc: fix PTM cycle trigger logic Writing to clear the PTM status 'valid' bit while the PTM cycle is triggered results in unreliable PTM operation. To fix this, clear the PTM 'trigger' and status after each PTM transaction. The issue can be reproduced with the following: $ sudo phc2sys -R 1000 -O 0 -i tsn0 -m Note: 1000 Hz (-R 1000) is unrealistically large, but provides a way to quickly reproduce the issue. PHC2SYS exits with: "ioctl PTP_OFFSET_PRECISE: Connection timed out" when the PTM transaction fails This patch also fixes a hang in igc_probe() when loading the igc driver in the kdump kernel on systems supporting PTM. The igc driver running in the base kernel enables PTM trigger in igc_probe(). Therefore the driver is always in PTM trigger mode, except in brief periods when manually triggering a PTM cycle. When a crash occurs, the NIC is reset while PTM trigger is enabled. Due to a hardware problem, the NIC is subsequently in a bad busmaster state and doesn't handle register reads/writes. When running igc_probe() in the kdump kernel, the first register access to a NIC register hangs driver probing and ultimately breaks kdump. With this patch, igc has PTM trigger disabled most of the time, and the trigger is only enabled for very brief (10 - 100 us) periods when manually triggering a PTM cycle. Chances that a crash occurs during a PTM trigger are not 0, but extremely reduced.
Impacted products
Vendor Product Version
Linux Linux Version: a90ec84837325df4b9a6798c2cc0df202b5680bd
Version: a90ec84837325df4b9a6798c2cc0df202b5680bd
Version: a90ec84837325df4b9a6798c2cc0df202b5680bd
Version: a90ec84837325df4b9a6798c2cc0df202b5680bd
Version: a90ec84837325df4b9a6798c2cc0df202b5680bd
Version: a90ec84837325df4b9a6798c2cc0df202b5680bd
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/intel/igc/igc_defines.h",
            "drivers/net/ethernet/intel/igc/igc_ptp.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "c1f174edaccc5a00f8e218c42a0aa9156efd5f76",
              "status": "affected",
              "version": "a90ec84837325df4b9a6798c2cc0df202b5680bd",
              "versionType": "git"
            },
            {
              "lessThan": "0c03e4fbe1321697d9d04587e21e416705e1b19f",
              "status": "affected",
              "version": "a90ec84837325df4b9a6798c2cc0df202b5680bd",
              "versionType": "git"
            },
            {
              "lessThan": "16194ca3f3b4448a062650c869a7b3b206c6f5d3",
              "status": "affected",
              "version": "a90ec84837325df4b9a6798c2cc0df202b5680bd",
              "versionType": "git"
            },
            {
              "lessThan": "f3516229cd12dcd45f23ed01adab17e8772b1bd5",
              "status": "affected",
              "version": "a90ec84837325df4b9a6798c2cc0df202b5680bd",
              "versionType": "git"
            },
            {
              "lessThan": "31959e06143692f7e02b8eef7d7d6ac645637906",
              "status": "affected",
              "version": "a90ec84837325df4b9a6798c2cc0df202b5680bd",
              "versionType": "git"
            },
            {
              "lessThan": "8e404ad95d2c10c261e2ef6992c7c12dde03df0e",
              "status": "affected",
              "version": "a90ec84837325df4b9a6798c2cc0df202b5680bd",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/intel/igc/igc_defines.h",
            "drivers/net/ethernet/intel/igc/igc_ptp.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.15"
            },
            {
              "lessThan": "5.15",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.181",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.135",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.88",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.25",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.14.*",
              "status": "unaffected",
              "version": "6.14.4",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.15",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.181",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.135",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.88",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.25",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.14.4",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.15",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nigc: fix PTM cycle trigger logic\n\nWriting to clear the PTM status \u0027valid\u0027 bit while the PTM cycle is\ntriggered results in unreliable PTM operation. To fix this, clear the\nPTM \u0027trigger\u0027 and status after each PTM transaction.\n\nThe issue can be reproduced with the following:\n\n$ sudo phc2sys -R 1000 -O 0 -i tsn0 -m\n\nNote: 1000 Hz (-R 1000) is unrealistically large, but provides a way to\nquickly reproduce the issue.\n\nPHC2SYS exits with:\n\n\"ioctl PTP_OFFSET_PRECISE: Connection timed out\" when the PTM transaction\n  fails\n\nThis patch also fixes a hang in igc_probe() when loading the igc\ndriver in the kdump kernel on systems supporting PTM.\n\nThe igc driver running in the base kernel enables PTM trigger in\nigc_probe().  Therefore the driver is always in PTM trigger mode,\nexcept in brief periods when manually triggering a PTM cycle.\n\nWhen a crash occurs, the NIC is reset while PTM trigger is enabled.\nDue to a hardware problem, the NIC is subsequently in a bad busmaster\nstate and doesn\u0027t handle register reads/writes.  When running\nigc_probe() in the kdump kernel, the first register access to a NIC\nregister hangs driver probing and ultimately breaks kdump.\n\nWith this patch, igc has PTM trigger disabled most of the time,\nand the trigger is only enabled for very brief (10 - 100 us) periods\nwhen manually triggering a PTM cycle.  Chances that a crash occurs\nduring a PTM trigger are not 0, but extremely reduced."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2025-05-26T05:22:48.769Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/c1f174edaccc5a00f8e218c42a0aa9156efd5f76"
        },
        {
          "url": "https://git.kernel.org/stable/c/0c03e4fbe1321697d9d04587e21e416705e1b19f"
        },
        {
          "url": "https://git.kernel.org/stable/c/16194ca3f3b4448a062650c869a7b3b206c6f5d3"
        },
        {
          "url": "https://git.kernel.org/stable/c/f3516229cd12dcd45f23ed01adab17e8772b1bd5"
        },
        {
          "url": "https://git.kernel.org/stable/c/31959e06143692f7e02b8eef7d7d6ac645637906"
        },
        {
          "url": "https://git.kernel.org/stable/c/8e404ad95d2c10c261e2ef6992c7c12dde03df0e"
        }
      ],
      "title": "igc: fix PTM cycle trigger logic",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-37875",
    "datePublished": "2025-05-09T06:44:03.368Z",
    "dateReserved": "2025-04-16T04:51:23.960Z",
    "dateUpdated": "2025-05-26T05:22:48.769Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.1",
  "vulnerability-lookup:meta": {
    "nvd": "{\"cve\":{\"id\":\"CVE-2025-37875\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-05-09T07:16:08.670\",\"lastModified\":\"2025-05-12T17:32:32.760\",\"vulnStatus\":\"Awaiting Analysis\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nigc: fix PTM cycle trigger logic\\n\\nWriting to clear the PTM status \u0027valid\u0027 bit while the PTM cycle is\\ntriggered results in unreliable PTM operation. To fix this, clear the\\nPTM \u0027trigger\u0027 and status after each PTM transaction.\\n\\nThe issue can be reproduced with the following:\\n\\n$ sudo phc2sys -R 1000 -O 0 -i tsn0 -m\\n\\nNote: 1000 Hz (-R 1000) is unrealistically large, but provides a way to\\nquickly reproduce the issue.\\n\\nPHC2SYS exits with:\\n\\n\\\"ioctl PTP_OFFSET_PRECISE: Connection timed out\\\" when the PTM transaction\\n  fails\\n\\nThis patch also fixes a hang in igc_probe() when loading the igc\\ndriver in the kdump kernel on systems supporting PTM.\\n\\nThe igc driver running in the base kernel enables PTM trigger in\\nigc_probe().  Therefore the driver is always in PTM trigger mode,\\nexcept in brief periods when manually triggering a PTM cycle.\\n\\nWhen a crash occurs, the NIC is reset while PTM trigger is enabled.\\nDue to a hardware problem, the NIC is subsequently in a bad busmaster\\nstate and doesn\u0027t handle register reads/writes.  When running\\nigc_probe() in the kdump kernel, the first register access to a NIC\\nregister hangs driver probing and ultimately breaks kdump.\\n\\nWith this patch, igc has PTM trigger disabled most of the time,\\nand the trigger is only enabled for very brief (10 - 100 us) periods\\nwhen manually triggering a PTM cycle.  Chances that a crash occurs\\nduring a PTM trigger are not 0, but extremely reduced.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: igc: correcci\u00f3n de la l\u00f3gica del disparador del ciclo de PTM Escribir para borrar el bit \\\"valid\\\" de estado de PTM mientras el ciclo de PTM est\u00e1 activado da como resultado un funcionamiento poco fiable de PTM. Para solucionarlo, borre el \\\"trigger\\\" y el estado de PTM despu\u00e9s de cada transacci\u00f3n de PTM. El problema se puede reproducir con lo siguiente: $ sudo phc2sys -R 1000 -O 0 -i tsn0 -m Nota: 1000 Hz (-R 1000) es irrealmente grande, pero proporciona una forma de reproducir r\u00e1pidamente el problema. PHC2SYS termina con: \\\"ioctl PTP_OFFSET_PRECISE: Connection timed out\\\" cuando falla la transacci\u00f3n de PTM Este parche tambi\u00e9n corrige un bloqueo en igc_probe() al cargar el controlador igc en el kernel kdump en sistemas compatibles con PTM. El controlador igc que se ejecuta en el kernel base habilita el disparador de PTM en igc_probe(). Por lo tanto, el controlador siempre est\u00e1 en modo de disparo PTM, excepto durante breves periodos al activar manualmente un ciclo PTM. Si se produce un fallo, la NIC se reinicia con el disparo PTM activado. Debido a un problema de hardware, la NIC se encuentra en un estado de busmaster defectuoso y no gestiona las lecturas/escrituras de registros. Al ejecutar igc_probe() en el kernel de kdump, el primer acceso a un registro de la NIC bloquea el sondeo del controlador y, en \u00faltima instancia, interrumpe kdump. Con esta revisi\u00f3n, igc mantiene el disparo PTM desactivado la mayor parte del tiempo, y solo se activa durante periodos muy breves (10-100 us) al activar manualmente un ciclo PTM. La probabilidad de que se produzca un fallo durante un disparo PTM no es nula, sino extremadamente reducida.\"}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/0c03e4fbe1321697d9d04587e21e416705e1b19f\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/16194ca3f3b4448a062650c869a7b3b206c6f5d3\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/31959e06143692f7e02b8eef7d7d6ac645637906\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/8e404ad95d2c10c261e2ef6992c7c12dde03df0e\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/c1f174edaccc5a00f8e218c42a0aa9156efd5f76\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/f3516229cd12dcd45f23ed01adab17e8772b1bd5\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…