In the Linux kernel, the following vulnerability has been resolved:
serial: max310x: fix NULL pointer dereference in I2C instantiation
When trying to instantiate a max14830 device from userspace:
echo max14830 0x60 > /sys/bus/i2c/devices/i2c-2/new_device
we get the following error:
Unable to handle kernel NULL pointer dereference at virtual address...
...
Call trace:
max310x_i2c_probe+0x48/0x170 [max310x]
i2c_device_probe+0x150/0x2a0
...
Add check for validity of devtype to prevent the error, and abort probe with a meaningful error message.
{ "vanir_signatures": [ { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c45e53c27b78afd6c81fc25608003576f27b5735", "signature_type": "Function", "target": { "function": "max310x_i2c_probe", "file": "drivers/tty/serial/max310x.c" }, "deprecated": false, "digest": { "length": 750.0, "function_hash": "152915863946278111916738753088075534768" }, "id": "CVE-2024-26978-050e745f" }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7d271b798add90c6196539167c019d0817285cf0", "signature_type": "Function", "target": { "function": "max310x_i2c_probe", "file": "drivers/tty/serial/max310x.c" }, "deprecated": false, "digest": { "length": 750.0, "function_hash": "152915863946278111916738753088075534768" }, "id": "CVE-2024-26978-181ffb88" }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0d27056c24efd3d63a03f3edfbcfc4827086b110", "signature_type": "Line", "target": { "file": "drivers/tty/serial/max310x.c" }, "deprecated": false, "digest": { "line_hashes": [ "176882960375663774892974222136759401085", "298817083277930966953534863420929195348", "291830083617512575902490468306015980838", "312515888580504506521476179172841965506", "186118371386276972865117694178238911393", "145302473883618746684660952555196270793", "313473913695387237657564896122859157275", "113011563577735222794299284755271040332", "200316767528452753290760077647765710379" ], "threshold": 0.9 }, "id": "CVE-2024-26978-302abb8e" }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c45e53c27b78afd6c81fc25608003576f27b5735", "signature_type": "Line", "target": { "file": "drivers/tty/serial/max310x.c" }, "deprecated": false, "digest": { "line_hashes": [ "176882960375663774892974222136759401085", "298817083277930966953534863420929195348", "291830083617512575902490468306015980838", "312515888580504506521476179172841965506", "186118371386276972865117694178238911393", "145302473883618746684660952555196270793", "313473913695387237657564896122859157275", "113011563577735222794299284755271040332", "200316767528452753290760077647765710379" ], "threshold": 0.9 }, "id": "CVE-2024-26978-65159b0f" }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5cd8af02b466e1beeae13e2de3dc58fcc7925e5a", "signature_type": "Function", "target": { "function": "max310x_i2c_probe", "file": "drivers/tty/serial/max310x.c" }, "deprecated": false, "digest": { "length": 750.0, "function_hash": "152915863946278111916738753088075534768" }, "id": "CVE-2024-26978-a69e7891" }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@aeca49661fd02fd56fb026768b580ce301b45733", "signature_type": "Function", "target": { "function": "max310x_i2c_probe", "file": "drivers/tty/serial/max310x.c" }, "deprecated": false, "digest": { "length": 750.0, "function_hash": "152915863946278111916738753088075534768" }, "id": "CVE-2024-26978-aaa9a316" }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@aeca49661fd02fd56fb026768b580ce301b45733", "signature_type": "Line", "target": { "file": "drivers/tty/serial/max310x.c" }, "deprecated": false, "digest": { "line_hashes": [ "176882960375663774892974222136759401085", "298817083277930966953534863420929195348", "291830083617512575902490468306015980838", "312515888580504506521476179172841965506", "186118371386276972865117694178238911393", "145302473883618746684660952555196270793", "313473913695387237657564896122859157275", "113011563577735222794299284755271040332", "200316767528452753290760077647765710379" ], "threshold": 0.9 }, "id": "CVE-2024-26978-bd8dcaf5" }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2160ad6861c4a21d3fa553d7b2aaec6634a37f8a", "signature_type": "Line", "target": { "file": "drivers/tty/serial/max310x.c" }, "deprecated": false, "digest": { "line_hashes": [ "176882960375663774892974222136759401085", "298817083277930966953534863420929195348", "291830083617512575902490468306015980838", "312515888580504506521476179172841965506", "186118371386276972865117694178238911393", "145302473883618746684660952555196270793", "313473913695387237657564896122859157275", "113011563577735222794299284755271040332", "200316767528452753290760077647765710379" ], "threshold": 0.9 }, "id": "CVE-2024-26978-bd9d026f" }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5cd8af02b466e1beeae13e2de3dc58fcc7925e5a", "signature_type": "Line", "target": { "file": "drivers/tty/serial/max310x.c" }, "deprecated": false, "digest": { "line_hashes": [ "176882960375663774892974222136759401085", "298817083277930966953534863420929195348", "291830083617512575902490468306015980838", "312515888580504506521476179172841965506", "186118371386276972865117694178238911393", "145302473883618746684660952555196270793", "313473913695387237657564896122859157275", "113011563577735222794299284755271040332", "200316767528452753290760077647765710379" ], "threshold": 0.9 }, "id": "CVE-2024-26978-d9f172dd" }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7d271b798add90c6196539167c019d0817285cf0", "signature_type": "Line", "target": { "file": "drivers/tty/serial/max310x.c" }, "deprecated": false, "digest": { "line_hashes": [ "176882960375663774892974222136759401085", "298817083277930966953534863420929195348", "291830083617512575902490468306015980838", "312515888580504506521476179172841965506", "186118371386276972865117694178238911393", "145302473883618746684660952555196270793", "313473913695387237657564896122859157275", "113011563577735222794299284755271040332", "200316767528452753290760077647765710379" ], "threshold": 0.9 }, "id": "CVE-2024-26978-dd8e5e0b" }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@12609c76b755dbeb1645c0aacc0f0f4743b2eff3", "signature_type": "Line", "target": { "file": "drivers/tty/serial/max310x.c" }, "deprecated": false, "digest": { "line_hashes": [ "176882960375663774892974222136759401085", "298817083277930966953534863420929195348", "291830083617512575902490468306015980838", "312515888580504506521476179172841965506", "186118371386276972865117694178238911393", "145302473883618746684660952555196270793", "313473913695387237657564896122859157275", "113011563577735222794299284755271040332", "200316767528452753290760077647765710379" ], "threshold": 0.9 }, "id": "CVE-2024-26978-dff42572" }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@12609c76b755dbeb1645c0aacc0f0f4743b2eff3", "signature_type": "Function", "target": { "function": "max310x_i2c_probe", "file": "drivers/tty/serial/max310x.c" }, "deprecated": false, "digest": { "length": 750.0, "function_hash": "152915863946278111916738753088075534768" }, "id": "CVE-2024-26978-eb31c9e9" }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2160ad6861c4a21d3fa553d7b2aaec6634a37f8a", "signature_type": "Function", "target": { "function": "max310x_i2c_probe", "file": "drivers/tty/serial/max310x.c" }, "deprecated": false, "digest": { "length": 750.0, "function_hash": "152915863946278111916738753088075534768" }, "id": "CVE-2024-26978-f7a24417" }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0d27056c24efd3d63a03f3edfbcfc4827086b110", "signature_type": "Function", "target": { "function": "max310x_i2c_probe", "file": "drivers/tty/serial/max310x.c" }, "deprecated": false, "digest": { "length": 750.0, "function_hash": "152915863946278111916738753088075534768" }, "id": "CVE-2024-26978-f90564b4" } ] }