{
   "containers": {
      "cna": {
         "providerMetadata": {
            "orgId": "f4215fc3-5b6b-47ff-a258-f7189bd81038"
         },
         "descriptions": [
            {
               "lang": "en",
               "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nserial: max3100: Update uart_driver_registered on driver removal\n\nThe removal of the last MAX3100 device triggers the removal of\nthe driver. However, code doesn't update the respective global\nvariable and after insmod — rmmod — insmod cycle the kernel\noopses:\n\n  max3100 spi-PRP0001:01: max3100_probe: adding port 0\n  BUG: kernel NULL pointer dereference, address: 0000000000000408\n  ...\n  RIP: 0010:serial_core_register_port+0xa0/0x840\n  ...\n   max3100_probe+0x1b6/0x280 [max3100]\n   spi_probe+0x8d/0xb0\n\nUpdate the actual state so next time UART driver will be registered\nagain.\n\nHugo also noticed, that the error path in the probe also affected\nby having the variable set, and not cleared. Instead of clearing it\nmove the assignment after the successfull uart_register_driver() call."
            }
         ],
         "affected": [
            {
               "product": "Linux",
               "vendor": "Linux",
               "defaultStatus": "unaffected",
               "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
               "programFiles": [
                  "drivers/tty/serial/max3100.c"
               ],
               "versions": [
                  {
                     "version": "7831d56b0a35",
                     "lessThan": "21a61a7fbcfd",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "7831d56b0a35",
                     "lessThan": "9db4222ed8cd",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "7831d56b0a35",
                     "lessThan": "e8e2a4339dec",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "7831d56b0a35",
                     "lessThan": "361a92c9038e",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "7831d56b0a35",
                     "lessThan": "b6eb7aff23e0",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "7831d56b0a35",
                     "lessThan": "e8a10089eddb",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "7831d56b0a35",
                     "lessThan": "fa84ca78b048",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "7831d56b0a35",
                     "lessThan": "712a1fcb38dc",
                     "status": "affected",
                     "versionType": "git"
                  }
               ]
            },
            {
               "product": "Linux",
               "vendor": "Linux",
               "defaultStatus": "affected",
               "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
               "programFiles": [
                  "drivers/tty/serial/max3100.c"
               ],
               "versions": [
                  {
                     "version": "2.6.30",
                     "status": "affected"
                  },
                  {
                     "version": "0",
                     "lessThan": "2.6.30",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "4.19.316",
                     "lessThanOrEqual": "4.19.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "5.4.278",
                     "lessThanOrEqual": "5.4.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "5.10.219",
                     "lessThanOrEqual": "5.10.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "5.15.161",
                     "lessThanOrEqual": "5.15.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "6.1.93",
                     "lessThanOrEqual": "6.1.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "6.6.33",
                     "lessThanOrEqual": "6.6.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "6.9.4",
                     "lessThanOrEqual": "6.9.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "6.10",
                     "lessThanOrEqual": "*",
                     "status": "unaffected",
                     "versionType": "original_commit_for_fix"
                  }
               ]
            }
         ],
         "references": [
            {
               "url": "https://git.kernel.org/stable/c/21a61a7fbcfdd3493cede43ebc7c4dfae2147a8b"
            },
            {
               "url": "https://git.kernel.org/stable/c/9db4222ed8cd3e50b81c8b910ae74c26427a4003"
            },
            {
               "url": "https://git.kernel.org/stable/c/e8e2a4339decad7e59425b594a98613402652d72"
            },
            {
               "url": "https://git.kernel.org/stable/c/361a92c9038e8c8c3996f8eeaa14522a8ad90752"
            },
            {
               "url": "https://git.kernel.org/stable/c/b6eb7aff23e05f362e8c9b560f6ac5e727b70e00"
            },
            {
               "url": "https://git.kernel.org/stable/c/e8a10089eddba40d4b2080c9d3fc2d2b2488f762"
            },
            {
               "url": "https://git.kernel.org/stable/c/fa84ca78b048dfb00df0ef446f5c35e0a98ca6a0"
            },
            {
               "url": "https://git.kernel.org/stable/c/712a1fcb38dc7cac6da63ee79a88708fbf9c45ec"
            }
         ],
         "title": "serial: max3100: Update uart_driver_registered on driver removal",
         "x_generator": {
            "engine": "bippy-c9c4e1df01b2"
         }
      }
   },
   "cveMetadata": {
      "assignerOrgId": "f4215fc3-5b6b-47ff-a258-f7189bd81038",
      "cveID": "CVE-2024-38633",
      "requesterUserId": "gregkh@kernel.org",
      "serial": "1",
      "state": "PUBLISHED"
   },
   "dataType": "CVE_RECORD",
   "dataVersion": "5.0"
}
