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, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4e37416e4ee1b1bc17364a68973e0c63be89e611", "signature_version": "v1", "target": { "function": "sc16is7xx_fifo_read", "file": "drivers/tty/serial/sc16is7xx.c" }, "digest": { "function_hash": "101360972172374910617649227047458150086", "length": 341.0 }, "id": "CVE-2023-52488-076dfd19" }, { "signature_type": "Function", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e635f652696ef6f1230621cfd89c350cb5ec6169", "signature_version": "v1", "target": { "function": "sc16is7xx_fifo_read", "file": "drivers/tty/serial/sc16is7xx.c" }, "digest": { "function_hash": "101360972172374910617649227047458150086", "length": 341.0 }, "id": "CVE-2023-52488-0bf7d245" }, { "signature_type": "Line", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@416b10d2817c94db86829fb92ad43ce7d002c573", "signature_version": "v1", "target": { "file": "drivers/tty/serial/sc16is7xx.c" }, "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" ] }, "id": "CVE-2023-52488-1044344a" }, { "signature_type": "Line", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@084c24e788d9cf29c55564de368bf5284f2bb5db", "signature_version": "v1", "target": { "file": "drivers/tty/serial/sc16is7xx.c" }, "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" ] }, "id": "CVE-2023-52488-1f1e8371" }, { "signature_type": "Function", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@dbf4ab821804df071c8b566d9813083125e6d97b", "signature_version": "v1", "target": { "function": "sc16is7xx_fifo_read", "file": "drivers/tty/serial/sc16is7xx.c" }, "digest": { "function_hash": "212116941649916482932396457039251409919", "length": 294.0 }, "id": "CVE-2023-52488-23c042f8" }, { "signature_type": "Function", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@dbf4ab821804df071c8b566d9813083125e6d97b", "signature_version": "v1", "target": { "function": "sc16is7xx_fifo_write", "file": "drivers/tty/serial/sc16is7xx.c" }, "digest": { "function_hash": "236261514987365654759579623634682959369", "length": 322.0 }, "id": "CVE-2023-52488-28d0e864" }, { "signature_type": "Function", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@416b10d2817c94db86829fb92ad43ce7d002c573", "signature_version": "v1", "target": { "function": "sc16is7xx_fifo_read", "file": "drivers/tty/serial/sc16is7xx.c" }, "digest": { "function_hash": "212116941649916482932396457039251409919", "length": 294.0 }, "id": "CVE-2023-52488-36022f4a" }, { "signature_type": "Line", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e635f652696ef6f1230621cfd89c350cb5ec6169", "signature_version": "v1", "target": { "file": "drivers/tty/serial/sc16is7xx.c" }, "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" ] }, "id": "CVE-2023-52488-364ee51f" }, { "signature_type": "Function", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@084c24e788d9cf29c55564de368bf5284f2bb5db", "signature_version": "v1", "target": { "function": "sc16is7xx_fifo_write", "file": "drivers/tty/serial/sc16is7xx.c" }, "digest": { "function_hash": "236261514987365654759579623634682959369", "length": 322.0 }, "id": "CVE-2023-52488-3dff99be" }, { "signature_type": "Line", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4e37416e4ee1b1bc17364a68973e0c63be89e611", "signature_version": "v1", "target": { "file": "drivers/tty/serial/sc16is7xx.c" }, "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" ] }, "id": "CVE-2023-52488-51a31294" }, { "signature_type": "Function", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e635f652696ef6f1230621cfd89c350cb5ec6169", "signature_version": "v1", "target": { "function": "sc16is7xx_fifo_write", "file": "drivers/tty/serial/sc16is7xx.c" }, "digest": { "function_hash": "814335209103598860478695790030864837", "length": 369.0 }, "id": "CVE-2023-52488-8a81136a" }, { "signature_type": "Function", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4e37416e4ee1b1bc17364a68973e0c63be89e611", "signature_version": "v1", "target": { "function": "sc16is7xx_fifo_write", "file": "drivers/tty/serial/sc16is7xx.c" }, "digest": { "function_hash": "814335209103598860478695790030864837", "length": 369.0 }, "id": "CVE-2023-52488-8de0f6aa" }, { "signature_type": "Function", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@416b10d2817c94db86829fb92ad43ce7d002c573", "signature_version": "v1", "target": { "function": "sc16is7xx_fifo_write", "file": "drivers/tty/serial/sc16is7xx.c" }, "digest": { "function_hash": "236261514987365654759579623634682959369", "length": 322.0 }, "id": "CVE-2023-52488-95910f6c" }, { "signature_type": "Function", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@aa7cb4787698add9367b19f7afc667662c9bdb23", "signature_version": "v1", "target": { "function": "sc16is7xx_fifo_write", "file": "drivers/tty/serial/sc16is7xx.c" }, "digest": { "function_hash": "236261514987365654759579623634682959369", "length": 322.0 }, "id": "CVE-2023-52488-974a2766" }, { "signature_type": "Line", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@dbf4ab821804df071c8b566d9813083125e6d97b", "signature_version": "v1", "target": { "file": "drivers/tty/serial/sc16is7xx.c" }, "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" ] }, "id": "CVE-2023-52488-996259f4" }, { "signature_type": "Function", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@aa7cb4787698add9367b19f7afc667662c9bdb23", "signature_version": "v1", "target": { "function": "sc16is7xx_fifo_read", "file": "drivers/tty/serial/sc16is7xx.c" }, "digest": { "function_hash": "212116941649916482932396457039251409919", "length": 294.0 }, "id": "CVE-2023-52488-caff21b5" }, { "signature_type": "Function", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@084c24e788d9cf29c55564de368bf5284f2bb5db", "signature_version": "v1", "target": { "function": "sc16is7xx_fifo_read", "file": "drivers/tty/serial/sc16is7xx.c" }, "digest": { "function_hash": "212116941649916482932396457039251409919", "length": 294.0 }, "id": "CVE-2023-52488-e08fc8e9" }, { "signature_type": "Line", "deprecated": false, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@aa7cb4787698add9367b19f7afc667662c9bdb23", "signature_version": "v1", "target": { "file": "drivers/tty/serial/sc16is7xx.c" }, "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" ] }, "id": "CVE-2023-52488-f501e2bd" } ]