In the Linux kernel, the following vulnerability has been resolved:
serial: sc16is7xx: convert from raw to noinc regmap functions for FIFO
The SC16IS7XX IC supports a burst mode to access the FIFOs where the initial register address is sent ($00), followed by all the FIFO data without having to resend the register address each time. In this mode, the IC doesn't increment the register address for each R/W byte.
The regmaprawread() and regmaprawwrite() are functions which can perform IO over multiple registers. They are currently used to read/write from/to the FIFO, and although they operate correctly in this burst mode on the SPI bus, they would corrupt the regmap cache if it was not disabled manually. The reason is that when the R/W size is more than 1 byte, these functions assume that the register address is incremented and handle the cache accordingly.
Convert FIFO R/W functions to use the regmap noinc versions in order to remove the manual cache control which was a workaround when using the raw versions. FIFO registers are properly declared as volatile so cache will not be used/updated for FIFO accesses.
[
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"function_hash": "101360972172374910617649227047458150086",
"length": 341.0
},
"signature_version": "v1",
"id": "CVE-2023-52488-076dfd19",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4e37416e4ee1b1bc17364a68973e0c63be89e611",
"target": {
"function": "sc16is7xx_fifo_read",
"file": "drivers/tty/serial/sc16is7xx.c"
}
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"function_hash": "101360972172374910617649227047458150086",
"length": 341.0
},
"signature_version": "v1",
"id": "CVE-2023-52488-0bf7d245",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e635f652696ef6f1230621cfd89c350cb5ec6169",
"target": {
"function": "sc16is7xx_fifo_read",
"file": "drivers/tty/serial/sc16is7xx.c"
}
},
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"339783587039084766467432030548655084374",
"275268579393420179007714970037042977129",
"279848112582513293517979876821943490622",
"317677811093078599533341140605038855713",
"247150919072747117173554303392946546206",
"302827430425116096860186813456394561248",
"67410985705504230773614660251950527406",
"191137938199175523727139162734336338321",
"161460223053492290724557677157234354844",
"104260476024215799015287080129820178166",
"190076660612915197596186207466625227571",
"140990346728693724794637399232472338122",
"83728206196890070930638048276840264373",
"227776114676464714310069595762477194832",
"76882329276462322247023746890012681461",
"62440843553692093600047275100066101805",
"162848938201690034868947090601402190529",
"179170583849447508192959976837974081920",
"252555973415715211113668156976941605120"
]
},
"signature_version": "v1",
"id": "CVE-2023-52488-1044344a",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@416b10d2817c94db86829fb92ad43ce7d002c573",
"target": {
"file": "drivers/tty/serial/sc16is7xx.c"
}
},
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"339783587039084766467432030548655084374",
"275268579393420179007714970037042977129",
"279848112582513293517979876821943490622",
"317677811093078599533341140605038855713",
"247150919072747117173554303392946546206",
"302827430425116096860186813456394561248",
"67410985705504230773614660251950527406",
"191137938199175523727139162734336338321",
"161460223053492290724557677157234354844",
"104260476024215799015287080129820178166",
"190076660612915197596186207466625227571",
"140990346728693724794637399232472338122",
"83728206196890070930638048276840264373",
"227776114676464714310069595762477194832",
"76882329276462322247023746890012681461",
"62440843553692093600047275100066101805",
"162848938201690034868947090601402190529",
"179170583849447508192959976837974081920",
"252555973415715211113668156976941605120"
]
},
"signature_version": "v1",
"id": "CVE-2023-52488-1f1e8371",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@084c24e788d9cf29c55564de368bf5284f2bb5db",
"target": {
"file": "drivers/tty/serial/sc16is7xx.c"
}
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"function_hash": "212116941649916482932396457039251409919",
"length": 294.0
},
"signature_version": "v1",
"id": "CVE-2023-52488-23c042f8",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@dbf4ab821804df071c8b566d9813083125e6d97b",
"target": {
"function": "sc16is7xx_fifo_read",
"file": "drivers/tty/serial/sc16is7xx.c"
}
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"function_hash": "236261514987365654759579623634682959369",
"length": 322.0
},
"signature_version": "v1",
"id": "CVE-2023-52488-28d0e864",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@dbf4ab821804df071c8b566d9813083125e6d97b",
"target": {
"function": "sc16is7xx_fifo_write",
"file": "drivers/tty/serial/sc16is7xx.c"
}
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"function_hash": "212116941649916482932396457039251409919",
"length": 294.0
},
"signature_version": "v1",
"id": "CVE-2023-52488-36022f4a",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@416b10d2817c94db86829fb92ad43ce7d002c573",
"target": {
"function": "sc16is7xx_fifo_read",
"file": "drivers/tty/serial/sc16is7xx.c"
}
},
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"78976009798821587995615118510312021985",
"208855560581170142559067215417708250343",
"98101855550219279672937655017092506079",
"92869749603706507115642763718973876586",
"180362177155401435600182361451257337233",
"309202186621230119924732938216022224259",
"131560433285774764848596489466791572858",
"5526872660819571171925602493910296528",
"246414507555125599969357435705936677016",
"52259784980940773770389022714560816366",
"140405690331043016341677538552654185615",
"139972805735371900508776187588445771628",
"83728206196890070930638048276840264373",
"227776114676464714310069595762477194832",
"310520615079478940601615890190342524148",
"62440843553692093600047275100066101805",
"206496613812759666221044430141622747695",
"286349005715432726621380534994997306129",
"195071261721068325049693098802436364125"
]
},
"signature_version": "v1",
"id": "CVE-2023-52488-364ee51f",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e635f652696ef6f1230621cfd89c350cb5ec6169",
"target": {
"file": "drivers/tty/serial/sc16is7xx.c"
}
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"function_hash": "236261514987365654759579623634682959369",
"length": 322.0
},
"signature_version": "v1",
"id": "CVE-2023-52488-3dff99be",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@084c24e788d9cf29c55564de368bf5284f2bb5db",
"target": {
"function": "sc16is7xx_fifo_write",
"file": "drivers/tty/serial/sc16is7xx.c"
}
},
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"78976009798821587995615118510312021985",
"208855560581170142559067215417708250343",
"98101855550219279672937655017092506079",
"92869749603706507115642763718973876586",
"180362177155401435600182361451257337233",
"309202186621230119924732938216022224259",
"131560433285774764848596489466791572858",
"5526872660819571171925602493910296528",
"246414507555125599969357435705936677016",
"52259784980940773770389022714560816366",
"140405690331043016341677538552654185615",
"139972805735371900508776187588445771628",
"83728206196890070930638048276840264373",
"227776114676464714310069595762477194832",
"310520615079478940601615890190342524148",
"62440843553692093600047275100066101805",
"206496613812759666221044430141622747695",
"286349005715432726621380534994997306129",
"195071261721068325049693098802436364125"
]
},
"signature_version": "v1",
"id": "CVE-2023-52488-51a31294",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4e37416e4ee1b1bc17364a68973e0c63be89e611",
"target": {
"file": "drivers/tty/serial/sc16is7xx.c"
}
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"function_hash": "814335209103598860478695790030864837",
"length": 369.0
},
"signature_version": "v1",
"id": "CVE-2023-52488-8a81136a",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e635f652696ef6f1230621cfd89c350cb5ec6169",
"target": {
"function": "sc16is7xx_fifo_write",
"file": "drivers/tty/serial/sc16is7xx.c"
}
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"function_hash": "814335209103598860478695790030864837",
"length": 369.0
},
"signature_version": "v1",
"id": "CVE-2023-52488-8de0f6aa",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4e37416e4ee1b1bc17364a68973e0c63be89e611",
"target": {
"function": "sc16is7xx_fifo_write",
"file": "drivers/tty/serial/sc16is7xx.c"
}
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"function_hash": "236261514987365654759579623634682959369",
"length": 322.0
},
"signature_version": "v1",
"id": "CVE-2023-52488-95910f6c",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@416b10d2817c94db86829fb92ad43ce7d002c573",
"target": {
"function": "sc16is7xx_fifo_write",
"file": "drivers/tty/serial/sc16is7xx.c"
}
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"function_hash": "236261514987365654759579623634682959369",
"length": 322.0
},
"signature_version": "v1",
"id": "CVE-2023-52488-974a2766",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@aa7cb4787698add9367b19f7afc667662c9bdb23",
"target": {
"function": "sc16is7xx_fifo_write",
"file": "drivers/tty/serial/sc16is7xx.c"
}
},
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"339783587039084766467432030548655084374",
"275268579393420179007714970037042977129",
"279848112582513293517979876821943490622",
"317677811093078599533341140605038855713",
"247150919072747117173554303392946546206",
"302827430425116096860186813456394561248",
"67410985705504230773614660251950527406",
"191137938199175523727139162734336338321",
"161460223053492290724557677157234354844",
"104260476024215799015287080129820178166",
"190076660612915197596186207466625227571",
"140990346728693724794637399232472338122",
"83728206196890070930638048276840264373",
"227776114676464714310069595762477194832",
"76882329276462322247023746890012681461",
"62440843553692093600047275100066101805",
"162848938201690034868947090601402190529",
"179170583849447508192959976837974081920",
"252555973415715211113668156976941605120"
]
},
"signature_version": "v1",
"id": "CVE-2023-52488-996259f4",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@dbf4ab821804df071c8b566d9813083125e6d97b",
"target": {
"file": "drivers/tty/serial/sc16is7xx.c"
}
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"function_hash": "212116941649916482932396457039251409919",
"length": 294.0
},
"signature_version": "v1",
"id": "CVE-2023-52488-caff21b5",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@aa7cb4787698add9367b19f7afc667662c9bdb23",
"target": {
"function": "sc16is7xx_fifo_read",
"file": "drivers/tty/serial/sc16is7xx.c"
}
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"function_hash": "212116941649916482932396457039251409919",
"length": 294.0
},
"signature_version": "v1",
"id": "CVE-2023-52488-e08fc8e9",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@084c24e788d9cf29c55564de368bf5284f2bb5db",
"target": {
"function": "sc16is7xx_fifo_read",
"file": "drivers/tty/serial/sc16is7xx.c"
}
},
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"339783587039084766467432030548655084374",
"275268579393420179007714970037042977129",
"279848112582513293517979876821943490622",
"317677811093078599533341140605038855713",
"247150919072747117173554303392946546206",
"302827430425116096860186813456394561248",
"67410985705504230773614660251950527406",
"191137938199175523727139162734336338321",
"161460223053492290724557677157234354844",
"104260476024215799015287080129820178166",
"190076660612915197596186207466625227571",
"140990346728693724794637399232472338122",
"83728206196890070930638048276840264373",
"227776114676464714310069595762477194832",
"76882329276462322247023746890012681461",
"62440843553692093600047275100066101805",
"162848938201690034868947090601402190529",
"179170583849447508192959976837974081920",
"252555973415715211113668156976941605120"
]
},
"signature_version": "v1",
"id": "CVE-2023-52488-f501e2bd",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@aa7cb4787698add9367b19f7afc667662c9bdb23",
"target": {
"file": "drivers/tty/serial/sc16is7xx.c"
}
}
]