In the Linux kernel, the following vulnerability has been resolved:
media: dvb-usb: az6027: fix null-ptr-deref in az6027i2cxfer()
Wei Chen reports a kernel bug as blew:
general protection fault, probably for non-canonical address KASAN: null-ptr-deref in range [0x0000000000000010-0x0000000000000017] ... Call Trace: <TASK> _i2ctransfer+0x77e/0x1930 drivers/i2c/i2c-core-base.c:2109 i2ctransfer+0x1d5/0x3d0 drivers/i2c/i2c-core-base.c:2170 i2cdevioctlrdwr+0x393/0x660 drivers/i2c/i2c-dev.c:297 i2cdevioctl+0x75d/0x9f0 drivers/i2c/i2c-dev.c:458 vfsioctl fs/ioctl.c:51 [inline] _dosysioctl fs/ioctl.c:870 [inline] _sesysioctl+0xfb/0x170 fs/ioctl.c:856 dosyscallx64 arch/x86/entry/common.c:50 [inline] dosyscall64+0x3d/0x90 arch/x86/entry/common.c:80 entrySYSCALL64after_hwframe+0x63/0xcd RIP: 0033:0x7fd834a8bded
In az6027i2cxfer(), if msg[i].addr is 0x99, a null-ptr-deref will caused when accessing msg[i].buf. For msg[i].len is 0 and msg[i].buf is null.
Fix this by checking msg[i].len in az6027i2cxfer().
[
{
"id": "CVE-2022-50272-15e8d05e",
"target": {
"file": "drivers/media/usb/dvb-usb/az6027.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"183636470899015986698036791502320180971",
"68347804820921306530844448685576801418",
"54146626791764190195420719379698165164",
"284858416019697774596465093970936043204"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6b60cf73a931af34b7a0a3f467a79d9fe0df2d70",
"signature_version": "v1"
},
{
"id": "CVE-2022-50272-39beaf70",
"target": {
"file": "drivers/media/usb/dvb-usb/az6027.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"183636470899015986698036791502320180971",
"68347804820921306530844448685576801418",
"54146626791764190195420719379698165164",
"284858416019697774596465093970936043204"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7abfe467cd685f5da7ecb415441e45e3e4e2baa8",
"signature_version": "v1"
},
{
"id": "CVE-2022-50272-4b0cb731",
"target": {
"file": "drivers/media/usb/dvb-usb/az6027.c",
"function": "az6027_i2c_xfer"
},
"digest": {
"function_hash": "256077691268214888913621662661144925423",
"length": 2230.0
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@559891d430e3f3a178040c4371ed419edbfa7d65",
"signature_version": "v1"
},
{
"id": "CVE-2022-50272-4dbbb957",
"target": {
"file": "drivers/media/usb/dvb-usb/az6027.c",
"function": "az6027_i2c_xfer"
},
"digest": {
"function_hash": "256077691268214888913621662661144925423",
"length": 2230.0
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2b6a8a1a32746981044e7ab06649c804acb4068a",
"signature_version": "v1"
},
{
"id": "CVE-2022-50272-6e012669",
"target": {
"file": "drivers/media/usb/dvb-usb/az6027.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"183636470899015986698036791502320180971",
"68347804820921306530844448685576801418",
"54146626791764190195420719379698165164",
"284858416019697774596465093970936043204"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2b6a8a1a32746981044e7ab06649c804acb4068a",
"signature_version": "v1"
},
{
"id": "CVE-2022-50272-72831460",
"target": {
"file": "drivers/media/usb/dvb-usb/az6027.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"183636470899015986698036791502320180971",
"68347804820921306530844448685576801418",
"54146626791764190195420719379698165164",
"284858416019697774596465093970936043204"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@559891d430e3f3a178040c4371ed419edbfa7d65",
"signature_version": "v1"
},
{
"id": "CVE-2022-50272-94e1bd8b",
"target": {
"file": "drivers/media/usb/dvb-usb/az6027.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"183636470899015986698036791502320180971",
"68347804820921306530844448685576801418",
"54146626791764190195420719379698165164",
"284858416019697774596465093970936043204"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@210fcf64be4db82c0e190e74b5111e4eef661a7a",
"signature_version": "v1"
},
{
"id": "CVE-2022-50272-b9e7f1d4",
"target": {
"file": "drivers/media/usb/dvb-usb/az6027.c",
"function": "az6027_i2c_xfer"
},
"digest": {
"function_hash": "256077691268214888913621662661144925423",
"length": 2230.0
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7abfe467cd685f5da7ecb415441e45e3e4e2baa8",
"signature_version": "v1"
},
{
"id": "CVE-2022-50272-bec18bfb",
"target": {
"file": "drivers/media/usb/dvb-usb/az6027.c",
"function": "az6027_i2c_xfer"
},
"digest": {
"function_hash": "256077691268214888913621662661144925423",
"length": 2230.0
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@210fcf64be4db82c0e190e74b5111e4eef661a7a",
"signature_version": "v1"
},
{
"id": "CVE-2022-50272-d8debee7",
"target": {
"file": "drivers/media/usb/dvb-usb/az6027.c",
"function": "az6027_i2c_xfer"
},
"digest": {
"function_hash": "256077691268214888913621662661144925423",
"length": 2230.0
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6b60cf73a931af34b7a0a3f467a79d9fe0df2d70",
"signature_version": "v1"
}
]