cve-2024-44968
Vulnerability from cvelistv5
Published
2024-09-04 18:56
Modified
2024-12-19 09:19
Severity ?
Summary
In the Linux kernel, the following vulnerability has been resolved: tick/broadcast: Move per CPU pointer access into the atomic section The recent fix for making the take over of the broadcast timer more reliable retrieves a per CPU pointer in preemptible context. This went unnoticed as compilers hoist the access into the non-preemptible region where the pointer is actually used. But of course it's valid that the compiler keeps it at the place where the code puts it which rightfully triggers: BUG: using smp_processor_id() in preemptible [00000000] code: caller is hotplug_cpu__broadcast_tick_pull+0x1c/0xc0 Move it to the actual usage site which is in a non-preemptible region.
Impacted products
Vendor Product Version
Linux Linux Version: 6.1.103   
Version: 6.6.44   
Version: 6.10.3   
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2024-44968",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-09-10T17:39:24.484235Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-09-12T17:33:33.994Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "kernel/time/tick-broadcast.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "f54abf332a2bc0413cfa8bd6a8511f7aa99faea0",
              "status": "affected",
              "version": "dfe19aa91378972f10530635ad83b2d77f481044",
              "versionType": "git"
            },
            {
              "lessThan": "f91fb47ecacc178a83a77eeebd25cbaec18c01d6",
              "status": "affected",
              "version": "457a1c87d454455d671a3045cf0b56157be110a1",
              "versionType": "git"
            },
            {
              "lessThan": "668c6c4a7e9e9f081c06b70f30104fb7013437ed",
              "status": "affected",
              "version": "9ef7190228145f959d9bc0ddca40ecf76bb413b0",
              "versionType": "git"
            },
            {
              "lessThan": "541a900d245536d4809cb1aa322c3fcc2cdb58a6",
              "status": "affected",
              "version": "d3b165c10473aa6fc6141bb5b1f6e5b50c1fb774",
              "versionType": "git"
            },
            {
              "lessThan": "7b3ec186ba93e333e9efe7254e7e31c1828e5d2d",
              "status": "affected",
              "version": "408bfb6b0a7f22e971ce6b600aec448769e580a8",
              "versionType": "git"
            },
            {
              "lessThan": "b9d604933d5fd72dd37f24e1dc35f778297d745a",
              "status": "affected",
              "version": "3a58c590f6bd1d20eb1e76c5cea31c36cc032339",
              "versionType": "git"
            },
            {
              "lessThan": "7dd12f85f150010ef7518201c63fa7e395f5c3e9",
              "status": "affected",
              "version": "2cdab4b4bf77369961f706cdeb7d040db10c5217",
              "versionType": "git"
            },
            {
              "lessThan": "6881e75237a84093d0986f56223db3724619f26e",
              "status": "affected",
              "version": "f7d43dd206e7e18c182f200e67a8db8c209907fa",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "kernel/time/tick-broadcast.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "6.1.105",
              "status": "affected",
              "version": "6.1.103",
              "versionType": "semver"
            },
            {
              "lessThan": "6.6.46",
              "status": "affected",
              "version": "6.6.44",
              "versionType": "semver"
            },
            {
              "lessThan": "6.10.5",
              "status": "affected",
              "version": "6.10.3",
              "versionType": "semver"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntick/broadcast: Move per CPU pointer access into the atomic section\n\nThe recent fix for making the take over of the broadcast timer more\nreliable retrieves a per CPU pointer in preemptible context.\n\nThis went unnoticed as compilers hoist the access into the non-preemptible\nregion where the pointer is actually used. But of course it\u0027s valid that\nthe compiler keeps it at the place where the code puts it which rightfully\ntriggers:\n\n  BUG: using smp_processor_id() in preemptible [00000000] code:\n       caller is hotplug_cpu__broadcast_tick_pull+0x1c/0xc0\n\nMove it to the actual usage site which is in a non-preemptible region."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2024-12-19T09:19:19.039Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/f54abf332a2bc0413cfa8bd6a8511f7aa99faea0"
        },
        {
          "url": "https://git.kernel.org/stable/c/f91fb47ecacc178a83a77eeebd25cbaec18c01d6"
        },
        {
          "url": "https://git.kernel.org/stable/c/668c6c4a7e9e9f081c06b70f30104fb7013437ed"
        },
        {
          "url": "https://git.kernel.org/stable/c/541a900d245536d4809cb1aa322c3fcc2cdb58a6"
        },
        {
          "url": "https://git.kernel.org/stable/c/7b3ec186ba93e333e9efe7254e7e31c1828e5d2d"
        },
        {
          "url": "https://git.kernel.org/stable/c/b9d604933d5fd72dd37f24e1dc35f778297d745a"
        },
        {
          "url": "https://git.kernel.org/stable/c/7dd12f85f150010ef7518201c63fa7e395f5c3e9"
        },
        {
          "url": "https://git.kernel.org/stable/c/6881e75237a84093d0986f56223db3724619f26e"
        }
      ],
      "title": "tick/broadcast: Move per CPU pointer access into the atomic section",
      "x_generator": {
        "engine": "bippy-5f407fcff5a0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-44968",
    "datePublished": "2024-09-04T18:56:45.456Z",
    "dateReserved": "2024-08-21T05:34:56.667Z",
    "dateUpdated": "2024-12-19T09:19:19.039Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.1",
  "vulnerability-lookup:meta": {
    "nvd": "{\"cve\":{\"id\":\"CVE-2024-44968\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-09-04T19:15:31.173\",\"lastModified\":\"2024-10-03T18:04:57.973\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\ntick/broadcast: Move per CPU pointer access into the atomic section\\n\\nThe recent fix for making the take over of the broadcast timer more\\nreliable retrieves a per CPU pointer in preemptible context.\\n\\nThis went unnoticed as compilers hoist the access into the non-preemptible\\nregion where the pointer is actually used. But of course it\u0027s valid that\\nthe compiler keeps it at the place where the code puts it which rightfully\\ntriggers:\\n\\n  BUG: using smp_processor_id() in preemptible [00000000] code:\\n       caller is hotplug_cpu__broadcast_tick_pull+0x1c/0xc0\\n\\nMove it to the actual usage site which is in a non-preemptible region.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: tick/broadcast: mover el acceso al puntero por CPU a la secci\u00f3n at\u00f3mica La soluci\u00f3n reciente para hacer que la toma de control del temporizador de difusi\u00f3n sea m\u00e1s fiable recupera un puntero por CPU en un contexto preemptible. Esto pas\u00f3 desapercibido ya que los compiladores elevan el acceso a la regi\u00f3n no preemptible donde realmente se usa el puntero. Pero, por supuesto, es v\u00e1lido que el compilador lo mantenga en el lugar donde lo pone el c\u00f3digo, lo que activa correctamente: ERROR: usar smp_processor_id() en c\u00f3digo preemptible [00000000]: el llamador es hotplug_cpu__broadcast_tick_pull+0x1c/0xc0 Mu\u00e9valo al sitio de uso real que est\u00e1 en una regi\u00f3n no preemptible.\"}],\"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.103\",\"versionEndExcluding\":\"6.1.105\",\"matchCriteriaId\":\"46ED0550-DB43-4D2A-8895-8F048C891A5F\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.6.44\",\"versionEndExcluding\":\"6.6.46\",\"matchCriteriaId\":\"83875505-0CFF-44AD-A3E1-BE3F8B866F43\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.10.3\",\"versionEndExcluding\":\"6.10.5\",\"matchCriteriaId\":\"ECD67C7B-CA88-4F2B-B232-AE23DDFBA7D2\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.11:rc1:*:*:*:*:*:*\",\"matchCriteriaId\":\"8B3CE743-2126-47A3-8B7C-822B502CF119\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/541a900d245536d4809cb1aa322c3fcc2cdb58a6\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/668c6c4a7e9e9f081c06b70f30104fb7013437ed\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/6881e75237a84093d0986f56223db3724619f26e\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/7b3ec186ba93e333e9efe7254e7e31c1828e5d2d\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/7dd12f85f150010ef7518201c63fa7e395f5c3e9\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/b9d604933d5fd72dd37f24e1dc35f778297d745a\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/f54abf332a2bc0413cfa8bd6a8511f7aa99faea0\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/f91fb47ecacc178a83a77eeebd25cbaec18c01d6\",\"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.