cve-2024-26995
Vulnerability from cvelistv5
Published
2024-05-01 05:28
Modified
2024-08-02 00:21
Severity
Summary
usb: typec: tcpm: Correct the PDO counting in pd_set
Impacted products
VendorProduct
LinuxLinux
LinuxLinux
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2024-26995",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-06-17T17:40:42.913629Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-06-17T17:46:42.248Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      },
      {
        "providerMetadata": {
          "dateUpdated": "2024-08-02T00:21:05.919Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/f3da3192cdd3fefe213390e976eec424a8e270b5"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/c4128304c2169b4664ed6fb6200f228cead2ab70"
          }
        ],
        "title": "CVE Program Container"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/usb/typec/tcpm/tcpm.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "f3da3192cdd3",
              "status": "affected",
              "version": "cd099cde4ed2",
              "versionType": "git"
            },
            {
              "lessThan": "c4128304c216",
              "status": "affected",
              "version": "cd099cde4ed2",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/usb/typec/tcpm/tcpm.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.8"
            },
            {
              "lessThan": "6.8",
              "status": "unaffected",
              "version": "0",
              "versionType": "custom"
            },
            {
              "lessThanOrEqual": "6.8.*",
              "status": "unaffected",
              "version": "6.8.8",
              "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\nusb: typec: tcpm: Correct the PDO counting in pd_set\n\nOff-by-one errors happen because nr_snk_pdo and nr_src_pdo are\nincorrectly added one. The index of the loop is equal to the number of\nPDOs to be updated when leaving the loop and it doesn\u0027t need to be added\none.\n\nWhen doing the power negotiation, TCPM relies on the \"nr_snk_pdo\" as\nthe size of the local sink PDO array to match the Source capabilities\nof the partner port. If the off-by-one overflow occurs, a wrong RDO\nmight be sent and unexpected power transfer might happen such as over\nvoltage or over current (than expected).\n\n\"nr_src_pdo\" is used to set the Rp level when the port is in Source\nrole. It is also the array size of the local Source capabilities when\nfilling up the buffer which will be sent as the Source PDOs (such as\nin Power Negotiation). If the off-by-one overflow occurs, a wrong Rp\nlevel might be set and wrong Source PDOs will be sent to the partner\nport. This could potentially cause over current or port resets."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2024-05-29T05:26:38.525Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/f3da3192cdd3fefe213390e976eec424a8e270b5"
        },
        {
          "url": "https://git.kernel.org/stable/c/c4128304c2169b4664ed6fb6200f228cead2ab70"
        }
      ],
      "title": "usb: typec: tcpm: Correct the PDO counting in pd_set",
      "x_generator": {
        "engine": "bippy-a5840b7849dd"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-26995",
    "datePublished": "2024-05-01T05:28:12.105Z",
    "dateReserved": "2024-02-19T14:20:24.206Z",
    "dateUpdated": "2024-08-02T00:21:05.919Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.1",
  "meta": {
    "nvd": "{\"cve\":{\"id\":\"CVE-2024-26995\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-05-01T06:15:17.313\",\"lastModified\":\"2024-05-13T08:15:11.270\",\"vulnStatus\":\"Awaiting Analysis\",\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nusb: typec: tcpm: Correct the PDO counting in pd_set\\n\\nOff-by-one errors happen because nr_snk_pdo and nr_src_pdo are\\nincorrectly added one. The index of the loop is equal to the number of\\nPDOs to be updated when leaving the loop and it doesn\u0027t need to be added\\none.\\n\\nWhen doing the power negotiation, TCPM relies on the \\\"nr_snk_pdo\\\" as\\nthe size of the local sink PDO array to match the Source capabilities\\nof the partner port. If the off-by-one overflow occurs, a wrong RDO\\nmight be sent and unexpected power transfer might happen such as over\\nvoltage or over current (than expected).\\n\\n\\\"nr_src_pdo\\\" is used to set the Rp level when the port is in Source\\nrole. It is also the array size of the local Source capabilities when\\nfilling up the buffer which will be sent as the Source PDOs (such as\\nin Power Negotiation). If the off-by-one overflow occurs, a wrong Rp\\nlevel might be set and wrong Source PDOs will be sent to the partner\\nport. This could potentially cause over current or port resets.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: usb: typec: tcpm: corrija el recuento de PDO en pd_set Los errores off-by-one ocurren porque nr_snk_pdo y nr_src_pdo se agregaron incorrectamente. El \u00edndice del bucle es igual al n\u00famero de PDO que se actualizar\u00e1n al salir del bucle y no es necesario agregar uno. Al realizar la negociaci\u00f3n de energ\u00eda, TCPM se basa en \\\"nr_snk_pdo\\\" como el tama\u00f1o de la matriz de PDO del receptor local para que coincida con las capacidades de origen del puerto asociado. Si se produce un desbordamiento de uno a uno, es posible que se env\u00ede un RDO incorrecto y que se produzca una transferencia de energ\u00eda inesperada, como sobretensi\u00f3n o sobrecorriente (de lo esperado). \\\"nr_src_pdo\\\" se utiliza para establecer el nivel de Rp cuando el puerto est\u00e1 en la funci\u00f3n de origen. Tambi\u00e9n es el tama\u00f1o de la matriz de las capacidades de la Fuente local al llenar el b\u00fafer que se enviar\u00e1 como los PDO de la Fuente (como en la Negociaci\u00f3n de Energ\u00eda). Si se produce el desbordamiento de uno por uno, es posible que se establezca un nivel de Rp incorrecto y se enviar\u00e1n PDO de origen incorrectos al puerto asociado. Esto podr\u00eda causar sobrecorriente o restablecimientos de puertos.\"}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/c4128304c2169b4664ed6fb6200f228cead2ab70\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/f3da3192cdd3fefe213390e976eec424a8e270b5\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading...

Loading...