cve-2024-56717
Vulnerability from cvelistv5
Published
2024-12-29 08:48
Modified
2025-01-20 06:26
Severity ?
Summary
In the Linux kernel, the following vulnerability has been resolved: net: mscc: ocelot: fix incorrect IFH SRC_PORT field in ocelot_ifh_set_basic() Packets injected by the CPU should have a SRC_PORT field equal to the CPU port module index in the Analyzer block (ocelot->num_phys_ports). The blamed commit copied the ocelot_ifh_set_basic() call incorrectly from ocelot_xmit_common() in net/dsa/tag_ocelot.c. Instead of calling with "x", it calls with BIT_ULL(x), but the field is not a port mask, but rather a single port index. [ side note: this is the technical debt of code duplication :( ] The error used to be silent and doesn't appear to have other user-visible manifestations, but with new changes in the packing library, it now fails loudly as follows: ------------[ cut here ]------------ Cannot store 0x40 inside bits 46-43 - will truncate sja1105 spi2.0: xmit timed out WARNING: CPU: 1 PID: 102 at lib/packing.c:98 __pack+0x90/0x198 sja1105 spi2.0: timed out polling for tstamp CPU: 1 UID: 0 PID: 102 Comm: felix_xmit Tainted: G W N 6.13.0-rc1-00372-gf706b85d972d-dirty #2605 Call trace: __pack+0x90/0x198 (P) __pack+0x90/0x198 (L) packing+0x78/0x98 ocelot_ifh_set_basic+0x260/0x368 ocelot_port_inject_frame+0xa8/0x250 felix_port_deferred_xmit+0x14c/0x258 kthread_worker_fn+0x134/0x350 kthread+0x114/0x138 The code path pertains to the ocelot switchdev driver and to the felix secondary DSA tag protocol, ocelot-8021q. Here seen with ocelot-8021q. The messenger (packing) is not really to blame, so fix the original commit instead.
Impacted products
Vendor Product Version
Linux Linux Version: 06bcb9032e05ad717f9fd0a6e2fd3ae7f430fa31
Version: ff7f554bbd75d5cbf00cded81d05147c6617e876
Version: e1b9e80236c540fa85d76e2d510d1b38e1968c5d
Version: e1b9e80236c540fa85d76e2d510d1b38e1968c5d
Create a notification for this product.
   Linux Linux Version: 6.11
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/mscc/ocelot.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "59c4ca8d8d7918eb6e2df91d2c254827264be309",
              "status": "affected",
              "version": "06bcb9032e05ad717f9fd0a6e2fd3ae7f430fa31",
              "versionType": "git"
            },
            {
              "lessThan": "2f3c62ffe88116cd2a39cd73e01103535599970f",
              "status": "affected",
              "version": "ff7f554bbd75d5cbf00cded81d05147c6617e876",
              "versionType": "git"
            },
            {
              "lessThan": "a8836eae3288c351acd3b2743d2fad2a4ee2bd56",
              "status": "affected",
              "version": "e1b9e80236c540fa85d76e2d510d1b38e1968c5d",
              "versionType": "git"
            },
            {
              "lessThan": "2d5df3a680ffdaf606baa10636bdb1daf757832e",
              "status": "affected",
              "version": "e1b9e80236c540fa85d76e2d510d1b38e1968c5d",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/mscc/ocelot.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.11"
            },
            {
              "lessThan": "6.11",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.122",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.68",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.7",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.13",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: mscc: ocelot: fix incorrect IFH SRC_PORT field in ocelot_ifh_set_basic()\n\nPackets injected by the CPU should have a SRC_PORT field equal to the\nCPU port module index in the Analyzer block (ocelot-\u003enum_phys_ports).\n\nThe blamed commit copied the ocelot_ifh_set_basic() call incorrectly\nfrom ocelot_xmit_common() in net/dsa/tag_ocelot.c. Instead of calling\nwith \"x\", it calls with BIT_ULL(x), but the field is not a port mask,\nbut rather a single port index.\n\n[ side note: this is the technical debt of code duplication :( ]\n\nThe error used to be silent and doesn\u0027t appear to have other\nuser-visible manifestations, but with new changes in the packing\nlibrary, it now fails loudly as follows:\n\n------------[ cut here ]------------\nCannot store 0x40 inside bits 46-43 - will truncate\nsja1105 spi2.0: xmit timed out\nWARNING: CPU: 1 PID: 102 at lib/packing.c:98 __pack+0x90/0x198\nsja1105 spi2.0: timed out polling for tstamp\nCPU: 1 UID: 0 PID: 102 Comm: felix_xmit\nTainted: G        W        N 6.13.0-rc1-00372-gf706b85d972d-dirty #2605\nCall trace:\n __pack+0x90/0x198 (P)\n __pack+0x90/0x198 (L)\n packing+0x78/0x98\n ocelot_ifh_set_basic+0x260/0x368\n ocelot_port_inject_frame+0xa8/0x250\n felix_port_deferred_xmit+0x14c/0x258\n kthread_worker_fn+0x134/0x350\n kthread+0x114/0x138\n\nThe code path pertains to the ocelot switchdev driver and to the felix\nsecondary DSA tag protocol, ocelot-8021q. Here seen with ocelot-8021q.\n\nThe messenger (packing) is not really to blame, so fix the original\ncommit instead."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2025-01-20T06:26:47.690Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/59c4ca8d8d7918eb6e2df91d2c254827264be309"
        },
        {
          "url": "https://git.kernel.org/stable/c/2f3c62ffe88116cd2a39cd73e01103535599970f"
        },
        {
          "url": "https://git.kernel.org/stable/c/a8836eae3288c351acd3b2743d2fad2a4ee2bd56"
        },
        {
          "url": "https://git.kernel.org/stable/c/2d5df3a680ffdaf606baa10636bdb1daf757832e"
        }
      ],
      "title": "net: mscc: ocelot: fix incorrect IFH SRC_PORT field in ocelot_ifh_set_basic()",
      "x_generator": {
        "engine": "bippy-5f407fcff5a0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-56717",
    "datePublished": "2024-12-29T08:48:49.958Z",
    "dateReserved": "2024-12-27T15:00:39.858Z",
    "dateUpdated": "2025-01-20T06:26:47.690Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.1",
  "vulnerability-lookup:meta": {
    "nvd": "{\"cve\":{\"id\":\"CVE-2024-56717\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-12-29T09:15:06.907\",\"lastModified\":\"2025-01-10T17:36:02.260\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nnet: mscc: ocelot: fix incorrect IFH SRC_PORT field in ocelot_ifh_set_basic()\\n\\nPackets injected by the CPU should have a SRC_PORT field equal to the\\nCPU port module index in the Analyzer block (ocelot-\u003enum_phys_ports).\\n\\nThe blamed commit copied the ocelot_ifh_set_basic() call incorrectly\\nfrom ocelot_xmit_common() in net/dsa/tag_ocelot.c. Instead of calling\\nwith \\\"x\\\", it calls with BIT_ULL(x), but the field is not a port mask,\\nbut rather a single port index.\\n\\n[ side note: this is the technical debt of code duplication :( ]\\n\\nThe error used to be silent and doesn\u0027t appear to have other\\nuser-visible manifestations, but with new changes in the packing\\nlibrary, it now fails loudly as follows:\\n\\n------------[ cut here ]------------\\nCannot store 0x40 inside bits 46-43 - will truncate\\nsja1105 spi2.0: xmit timed out\\nWARNING: CPU: 1 PID: 102 at lib/packing.c:98 __pack+0x90/0x198\\nsja1105 spi2.0: timed out polling for tstamp\\nCPU: 1 UID: 0 PID: 102 Comm: felix_xmit\\nTainted: G        W        N 6.13.0-rc1-00372-gf706b85d972d-dirty #2605\\nCall trace:\\n __pack+0x90/0x198 (P)\\n __pack+0x90/0x198 (L)\\n packing+0x78/0x98\\n ocelot_ifh_set_basic+0x260/0x368\\n ocelot_port_inject_frame+0xa8/0x250\\n felix_port_deferred_xmit+0x14c/0x258\\n kthread_worker_fn+0x134/0x350\\n kthread+0x114/0x138\\n\\nThe code path pertains to the ocelot switchdev driver and to the felix\\nsecondary DSA tag protocol, ocelot-8021q. Here seen with ocelot-8021q.\\n\\nThe messenger (packing) is not really to blame, so fix the original\\ncommit instead.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: net: mscc: ocelot: se corrige el campo IFH SRC_PORT incorrecto en ocelot_ifh_set_basic() Los paquetes inyectados por la CPU deben tener un campo SRC_PORT igual al \u00edndice del m\u00f3dulo de puerto de la CPU en el bloque Analyzer (ocelot-\u0026gt;num_phys_ports). el commit culpable copi\u00f3 la llamada ocelot_ifh_set_basic() incorrectamente desde ocelot_xmit_common() en net/dsa/tag_ocelot.c. En lugar de llamar con \\\"x\\\", llama con BIT_ULL(x), pero el campo no es una m\u00e1scara de puerto, sino un \u00edndice de puerto \u00fanico. [ nota al margen: esta es la deuda t\u00e9cnica de la duplicaci\u00f3n de c\u00f3digo :( ] El error sol\u00eda ser silencioso y no parece tener otras manifestaciones visibles para el usuario, pero con los nuevos cambios en la librer\u00eda de empaquetado, ahora falla ruidosamente de la siguiente manera: ------------[ cortar aqu\u00ed ]------------ No se puede almacenar 0x40 dentro de los bits 46-43 - truncar\u00e1 sja1105 spi2.0: xmit timed out WARNING: CPU: 1 PID: 102 at lib/packing.c:98 __pack+0x90/0x198 sja1105 spi2.0: timed out polling for tstamp CPU: 1 UID: 0 PID: 102 Comm: felix_xmit Tainted: GWN 6.13.0-rc1-00372-gf706b85d972d-dirty #2605 Rastreo de llamadas: __pack+0x90/0x198 (P) __pack+0x90/0x198 (L) packing+0x78/0x98 ocelot_ifh_set_basic+0x260/0x368 ocelot_port_inject_frame+0xa8/0x250 felix_port_deferred_xmit+0x14c/0x258 kthread_worker_fn+0x134/0x350 kthread+0x114/0x138 La ruta del c\u00f3digo pertenece al controlador switchdev de ocelot y al protocolo de etiqueta DSA secundaria de felix, ocelot-8021q. Aqu\u00ed se ve con ocelot-8021q. El mensajero (packing) no es realmente el culpable, as\u00ed que arregle el commit original en su lugar.\"}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"nvd@nist.gov\",\"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\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"NVD-CWE-noinfo\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.1.107\",\"versionEndExcluding\":\"6.1.122\",\"matchCriteriaId\":\"66B11D95-C9D9-4D15-B338-C26B1B4C6941\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.6.48\",\"versionEndExcluding\":\"6.6.68\",\"matchCriteriaId\":\"BA7165E0-1A7F-4895-911D-F511CD3EEFBB\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.10.7\",\"versionEndExcluding\":\"6.12.7\",\"matchCriteriaId\":\"756D1E80-26A8-439B-9124-504429A0207E\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.13:rc1:*:*:*:*:*:*\",\"matchCriteriaId\":\"62567B3C-6CEE-46D0-BC2E-B3717FBF7D13\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.13:rc2:*:*:*:*:*:*\",\"matchCriteriaId\":\"5A073481-106D-4B15-B4C7-FB0213B8E1D4\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.13:rc3:*:*:*:*:*:*\",\"matchCriteriaId\":\"DE491969-75AE-4A6B-9A58-8FC5AF98798F\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/2d5df3a680ffdaf606baa10636bdb1daf757832e\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/2f3c62ffe88116cd2a39cd73e01103535599970f\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/59c4ca8d8d7918eb6e2df91d2c254827264be309\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/a8836eae3288c351acd3b2743d2fad2a4ee2bd56\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}"
  }
}


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.