In the Linux kernel, the following vulnerability has been resolved:
HID: mcp2221: prevent a buffer overflow in mcpsmbuswrite()
Smatch Warning: drivers/hid/hid-mcp2221.c:388 mcpsmbuswrite() error: _memcpy() '&mcp->txbuf[5]' too small (59 vs 255) drivers/hid/hid-mcp2221.c:388 mcpsmbuswrite() error: _memcpy() 'buf' too small (34 vs 255)
The 'len' variable can take a value between 0-255 as it can come from data->block[0] and it is user data. So add an bound check to prevent a buffer overflow in memcpy().
[
{
"deprecated": false,
"id": "CVE-2022-50131-0d908a6a",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@91443c669d280937968f0aa4edefa741cfe35314",
"signature_version": "v1",
"target": {
"function": "mcp_smbus_write",
"file": "drivers/hid/hid-mcp2221.c"
},
"signature_type": "Function",
"digest": {
"function_hash": "198621753067792624457583356652414422842",
"length": 797.0
}
},
{
"deprecated": false,
"id": "CVE-2022-50131-28685978",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3c0f8a59f2cc8841ee6653399a77f4f3e6e9a270",
"signature_version": "v1",
"target": {
"file": "drivers/hid/hid-mcp2221.c"
},
"signature_type": "Line",
"digest": {
"line_hashes": [
"214419528541379547753149763901952009615",
"68750295198199607859693821514425497132",
"96396273200669108230001852341589087190",
"43721984344197467956697002405070748855"
],
"threshold": 0.9
}
},
{
"deprecated": false,
"id": "CVE-2022-50131-2bd53b04",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@62ac2473553a00229e67bdf3cb023b62cf7f5a9a",
"signature_version": "v1",
"target": {
"function": "mcp_smbus_write",
"file": "drivers/hid/hid-mcp2221.c"
},
"signature_type": "Function",
"digest": {
"function_hash": "198621753067792624457583356652414422842",
"length": 797.0
}
},
{
"deprecated": false,
"id": "CVE-2022-50131-47230633",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3c0f8a59f2cc8841ee6653399a77f4f3e6e9a270",
"signature_version": "v1",
"target": {
"function": "mcp_smbus_write",
"file": "drivers/hid/hid-mcp2221.c"
},
"signature_type": "Function",
"digest": {
"function_hash": "198621753067792624457583356652414422842",
"length": 797.0
}
},
{
"deprecated": false,
"id": "CVE-2022-50131-b666d4cd",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6402116a7b5ec80fa40fd145a80c813019cd555f",
"signature_version": "v1",
"target": {
"file": "drivers/hid/hid-mcp2221.c"
},
"signature_type": "Line",
"digest": {
"line_hashes": [
"214419528541379547753149763901952009615",
"68750295198199607859693821514425497132",
"96396273200669108230001852341589087190",
"43721984344197467956697002405070748855"
],
"threshold": 0.9
}
},
{
"deprecated": false,
"id": "CVE-2022-50131-b72880a3",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@66c8e816f2f2ca4a61b406503bd10bad1b35f72f",
"signature_version": "v1",
"target": {
"file": "drivers/hid/hid-mcp2221.c"
},
"signature_type": "Line",
"digest": {
"line_hashes": [
"214419528541379547753149763901952009615",
"68750295198199607859693821514425497132",
"96396273200669108230001852341589087190",
"43721984344197467956697002405070748855"
],
"threshold": 0.9
}
},
{
"deprecated": false,
"id": "CVE-2022-50131-db355b00",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@91443c669d280937968f0aa4edefa741cfe35314",
"signature_version": "v1",
"target": {
"file": "drivers/hid/hid-mcp2221.c"
},
"signature_type": "Line",
"digest": {
"line_hashes": [
"214419528541379547753149763901952009615",
"68750295198199607859693821514425497132",
"96396273200669108230001852341589087190",
"43721984344197467956697002405070748855"
],
"threshold": 0.9
}
},
{
"deprecated": false,
"id": "CVE-2022-50131-dbd57d26",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6402116a7b5ec80fa40fd145a80c813019cd555f",
"signature_version": "v1",
"target": {
"function": "mcp_smbus_write",
"file": "drivers/hid/hid-mcp2221.c"
},
"signature_type": "Function",
"digest": {
"function_hash": "198621753067792624457583356652414422842",
"length": 797.0
}
},
{
"deprecated": false,
"id": "CVE-2022-50131-dff5ed63",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@66c8e816f2f2ca4a61b406503bd10bad1b35f72f",
"signature_version": "v1",
"target": {
"function": "mcp_smbus_write",
"file": "drivers/hid/hid-mcp2221.c"
},
"signature_type": "Function",
"digest": {
"function_hash": "198621753067792624457583356652414422842",
"length": 797.0
}
},
{
"deprecated": false,
"id": "CVE-2022-50131-ea3e2d3d",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@62ac2473553a00229e67bdf3cb023b62cf7f5a9a",
"signature_version": "v1",
"target": {
"file": "drivers/hid/hid-mcp2221.c"
},
"signature_type": "Line",
"digest": {
"line_hashes": [
"214419528541379547753149763901952009615",
"68750295198199607859693821514425497132",
"96396273200669108230001852341589087190",
"43721984344197467956697002405070748855"
],
"threshold": 0.9
}
}
]