cve-2024-35986
Vulnerability from cvelistv5
Published
2024-05-20 09:47
Modified
2024-08-02 03:30
Severity
Summary
phy: ti: tusb1210: Resolve charger-det crash if charger psy is unregistered
Impacted products
VendorProduct
LinuxLinux
LinuxLinux
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2024-35986",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-05-29T18:11:49.424190Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-06-04T17:34:47.252Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      },
      {
        "providerMetadata": {
          "dateUpdated": "2024-08-02T03:30:11.621Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/25b3498485ac281e5851700e33b97f12c9533fd8"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/73224a5d2180066c7fe05b4656647601ba08d588"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/9827caa5105fb16d1fae2e75c8d0e4662014b3ca"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/bf6e4ee5c43690e4c5a8a057bbcd4ff986bed052"
          }
        ],
        "title": "CVE Program Container"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/phy/ti/phy-tusb1210.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "25b3498485ac",
              "status": "affected",
              "version": "48969a5623ed",
              "versionType": "git"
            },
            {
              "lessThan": "73224a5d2180",
              "status": "affected",
              "version": "48969a5623ed",
              "versionType": "git"
            },
            {
              "lessThan": "9827caa5105f",
              "status": "affected",
              "version": "48969a5623ed",
              "versionType": "git"
            },
            {
              "lessThan": "bf6e4ee5c436",
              "status": "affected",
              "version": "48969a5623ed",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/phy/ti/phy-tusb1210.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.18"
            },
            {
              "lessThan": "5.18",
              "status": "unaffected",
              "version": "0",
              "versionType": "custom"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.90",
              "versionType": "custom"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.30",
              "versionType": "custom"
            },
            {
              "lessThanOrEqual": "6.8.*",
              "status": "unaffected",
              "version": "6.8.9",
              "versionType": "custom"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.9",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nphy: ti: tusb1210: Resolve charger-det crash if charger psy is unregistered\n\nThe power_supply frame-work is not really designed for there to be\nlong living in kernel references to power_supply devices.\n\nSpecifically unregistering a power_supply while some other code has\na reference to it triggers a WARN in power_supply_unregister():\n\n\tWARN_ON(atomic_dec_return(\u0026psy-\u003euse_cnt));\n\nFolllowed by the power_supply still getting removed and the\nbacking data freed anyway, leaving the tusb1210 charger-detect code\nwith a dangling reference, resulting in a crash the next time\ntusb1210_get_online() is called.\n\nFix this by only holding the reference in tusb1210_get_online()\nfreeing it at the end of the function. Note this still leaves\na theoretical race window, but it avoids the issue when manually\nrmmod-ing the charger chip driver during development."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2024-05-29T05:32:28.292Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/25b3498485ac281e5851700e33b97f12c9533fd8"
        },
        {
          "url": "https://git.kernel.org/stable/c/73224a5d2180066c7fe05b4656647601ba08d588"
        },
        {
          "url": "https://git.kernel.org/stable/c/9827caa5105fb16d1fae2e75c8d0e4662014b3ca"
        },
        {
          "url": "https://git.kernel.org/stable/c/bf6e4ee5c43690e4c5a8a057bbcd4ff986bed052"
        }
      ],
      "title": "phy: ti: tusb1210: Resolve charger-det crash if charger psy is unregistered",
      "x_generator": {
        "engine": "bippy-a5840b7849dd"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-35986",
    "datePublished": "2024-05-20T09:47:53.074Z",
    "dateReserved": "2024-05-17T13:50:33.145Z",
    "dateUpdated": "2024-08-02T03:30:11.621Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.1",
  "meta": {
    "nvd": "{\"cve\":{\"id\":\"CVE-2024-35986\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-05-20T10:15:12.990\",\"lastModified\":\"2024-05-20T13:00:04.957\",\"vulnStatus\":\"Awaiting Analysis\",\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nphy: ti: tusb1210: Resolve charger-det crash if charger psy is unregistered\\n\\nThe power_supply frame-work is not really designed for there to be\\nlong living in kernel references to power_supply devices.\\n\\nSpecifically unregistering a power_supply while some other code has\\na reference to it triggers a WARN in power_supply_unregister():\\n\\n\\tWARN_ON(atomic_dec_return(\u0026psy-\u003euse_cnt));\\n\\nFolllowed by the power_supply still getting removed and the\\nbacking data freed anyway, leaving the tusb1210 charger-detect code\\nwith a dangling reference, resulting in a crash the next time\\ntusb1210_get_online() is called.\\n\\nFix this by only holding the reference in tusb1210_get_online()\\nfreeing it at the end of the function. Note this still leaves\\na theoretical race window, but it avoids the issue when manually\\nrmmod-ing the charger chip driver during development.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: phy: ti: tusb1210: resolver el bloqueo del cargador-det si el cargador psy no est\u00e1 registrado. El marco power_supply no est\u00e1 realmente manipulado para que haya referencias duraderas en el kernel a los dispositivos power_supply. Espec\u00edficamente, cancelar el registro de un power_supply mientras alg\u00fan otro c\u00f3digo tiene una referencia a \u00e9l activa una ADVERTENCIA en power_supply_unregister(): WARN_ON(atomic_dec_return(\u0026amp;psy-\u0026gt;use_cnt)); Seguido por power_supply a\u00fan se elimina y los datos de respaldo se liberan de todos modos, dejando el c\u00f3digo de detecci\u00f3n del cargador tusb1210 con una referencia colgante, lo que resulta en un bloqueo la pr\u00f3xima vez que se llama a tusb1210_get_online(). Solucione este problema manteniendo \u00fanicamente la referencia en tusb1210_get_online() liber\u00e1ndola al final de la funci\u00f3n. Tenga en cuenta que esto a\u00fan deja una ventana de ejecuci\u00f3n te\u00f3rica, pero evita el problema al modificar manualmente el controlador del chip del cargador durante el desarrollo.\"}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/25b3498485ac281e5851700e33b97f12c9533fd8\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/73224a5d2180066c7fe05b4656647601ba08d588\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/9827caa5105fb16d1fae2e75c8d0e4662014b3ca\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/bf6e4ee5c43690e4c5a8a057bbcd4ff986bed052\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading...

Loading...