In the Linux kernel, the following vulnerability has been resolved:
serial: max3100: Lock port->lock when calling uarthandlects_change()
uarthandlects_change() has to be called with port lock taken, Since we run it in a separate work, the lock may not be taken at the time of running. Make sure that it's taken by explicitly doing that. Without it we got a splat:
WARNING: CPU: 0 PID: 10 at drivers/tty/serial/serialcore.c:3491 uarthandlectschange+0xa6/0xb0 ... Workqueue: max3100-0 max3100work [max3100] RIP: 0010:uarthandlectschange+0xa6/0xb0 ... max3100handlerx+0xc5/0x110 [max3100] max3100work+0x12a/0x340 [max3100]
[
{
"id": "CVE-2024-38634-62697ac0",
"signature_version": "v1",
"digest": {
"line_hashes": [
"72693391296788612189918053442320024496",
"308131528069518597221547504542717429154",
"289714590835509039787602402787196345700",
"308889770673865194426708849204794299682",
"38320440871848635922171129580049924516",
"229811785549635325656657932403766276410",
"208406333488909071986312047707945582379"
],
"threshold": 0.9
},
"target": {
"file": "drivers/tty/serial/max3100.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@865b30c8661924ee9145f442bf32cea549faa869",
"signature_type": "Line",
"deprecated": false
},
{
"id": "CVE-2024-38634-6b0ffdcd",
"signature_version": "v1",
"digest": {
"line_hashes": [
"72693391296788612189918053442320024496",
"308131528069518597221547504542717429154",
"289714590835509039787602402787196345700",
"308889770673865194426708849204794299682",
"38320440871848635922171129580049924516",
"229811785549635325656657932403766276410",
"208406333488909071986312047707945582379"
],
"threshold": 0.9
},
"target": {
"file": "drivers/tty/serial/max3100.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@93df2fba6c7dfa9a2f08546ea9a5ca4728758458",
"signature_type": "Line",
"deprecated": false
},
{
"id": "CVE-2024-38634-6c67778d",
"signature_version": "v1",
"digest": {
"line_hashes": [
"72693391296788612189918053442320024496",
"308131528069518597221547504542717429154",
"295946886155107787917355982206036992956",
"97759027340405307398379290382885130401",
"38320440871848635922171129580049924516",
"229811785549635325656657932403766276410",
"208406333488909071986312047707945582379"
],
"threshold": 0.9
},
"target": {
"file": "drivers/tty/serial/max3100.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@78dbda51bb4241b88a52d71620f06231a341f9ba",
"signature_type": "Line",
"deprecated": false
},
{
"id": "CVE-2024-38634-6c7cdf76",
"signature_version": "v1",
"digest": {
"line_hashes": [
"72693391296788612189918053442320024496",
"308131528069518597221547504542717429154",
"289714590835509039787602402787196345700",
"308889770673865194426708849204794299682",
"38320440871848635922171129580049924516",
"229811785549635325656657932403766276410",
"208406333488909071986312047707945582379"
],
"threshold": 0.9
},
"target": {
"file": "drivers/tty/serial/max3100.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@77ab53371a2066fdf9b895246505f5ef5a4b5d47",
"signature_type": "Line",
"deprecated": false
},
{
"id": "CVE-2024-38634-8fcd71b0",
"signature_version": "v1",
"digest": {
"line_hashes": [
"72693391296788612189918053442320024496",
"308131528069518597221547504542717429154",
"295946886155107787917355982206036992956",
"97759027340405307398379290382885130401",
"38320440871848635922171129580049924516",
"229811785549635325656657932403766276410",
"208406333488909071986312047707945582379"
],
"threshold": 0.9
},
"target": {
"file": "drivers/tty/serial/max3100.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cc121e3722a0a2c8f716ef991e5425b180a5fb94",
"signature_type": "Line",
"deprecated": false
},
{
"id": "CVE-2024-38634-96829ff3",
"signature_version": "v1",
"digest": {
"line_hashes": [
"72693391296788612189918053442320024496",
"308131528069518597221547504542717429154",
"295946886155107787917355982206036992956",
"97759027340405307398379290382885130401",
"38320440871848635922171129580049924516",
"229811785549635325656657932403766276410",
"208406333488909071986312047707945582379"
],
"threshold": 0.9
},
"target": {
"file": "drivers/tty/serial/max3100.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8296bb9e5925b6634259c5d4daee88f0cc0884ec",
"signature_type": "Line",
"deprecated": false
},
{
"id": "CVE-2024-38634-b7e37c98",
"signature_version": "v1",
"digest": {
"line_hashes": [
"72693391296788612189918053442320024496",
"308131528069518597221547504542717429154",
"295946886155107787917355982206036992956",
"97759027340405307398379290382885130401",
"38320440871848635922171129580049924516",
"229811785549635325656657932403766276410",
"208406333488909071986312047707945582379"
],
"threshold": 0.9
},
"target": {
"file": "drivers/tty/serial/max3100.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ea9b35372b58ac2931bfc1d5bc25e839d1221e30",
"signature_type": "Line",
"deprecated": false
},
{
"id": "CVE-2024-38634-bde779bf",
"signature_version": "v1",
"digest": {
"line_hashes": [
"72693391296788612189918053442320024496",
"308131528069518597221547504542717429154",
"295946886155107787917355982206036992956",
"97759027340405307398379290382885130401",
"38320440871848635922171129580049924516",
"229811785549635325656657932403766276410",
"208406333488909071986312047707945582379"
],
"threshold": 0.9
},
"target": {
"file": "drivers/tty/serial/max3100.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@44b38924135d2093e2ec1812969464845dd66dc9",
"signature_type": "Line",
"deprecated": false
}
]