In the Linux kernel, the following vulnerability has been resolved:
s390/sclp: Fix sclp_init() cleanup on failure
If sclpinit() fails it only partially cleans up: if there are multiple failing calls to sclpinit() sclpstatechangeevent will be added several times to sclpreg_list, which results in the following warning:
------------[ cut here ]------------ listadd double add: new=000003ffe1598c10, prev=000003ffe1598bf0, next=000003ffe1598c10. WARNING: CPU: 0 PID: 1 at lib/listdebug.c:35 listaddvalidorreport+0xde/0xf8 CPU: 0 PID: 1 Comm: swapper/0 Not tainted 6.10.0-rc3 Krnl PSW : 0404c00180000000 000003ffe0d6076a (listaddvalidorreport+0xe2/0xf8) R:0 T:1 IO:0 EX:0 Key:0 M:1 W:0 P:0 AS:3 CC:0 PM:0 RI:0 EA:3 ... Call Trace: [<000003ffe0d6076a>] _listaddvalidorreport+0xe2/0xf8 ([<000003ffe0d60766>] _listaddvalidorreport+0xde/0xf8) [<000003ffe0a8d37e>] sclpinit+0x40e/0x450 [<000003ffe00009f2>] dooneinitcall+0x42/0x1e0 [<000003ffe15b77a6>] doinitcalls+0x126/0x150 [<000003ffe15b7a0a>] kernelinitfreeable+0x1ba/0x1f8 [<000003ffe0d6650e>] kernelinit+0x2e/0x180 [<000003ffe000301c>] _retfromfork+0x3c/0x60 [<000003ffe0d759ca>] retfromfork+0xa/0x30
Fix this by removing sclpstatechangeevent from sclpreglist when sclpinit() fails.
[
{
"id": "CVE-2024-41068-0e7c08f9",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"digest": {
"function_hash": "312450902725610267397452217753593843181",
"length": 1457.0
},
"target": {
"file": "drivers/s390/char/sclp.c",
"function": "sclp_init"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2e51db7ab71b89dc5a17068f5e201c69f13a4c9a"
},
{
"id": "CVE-2024-41068-1399dd56",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"digest": {
"line_hashes": [
"301263126332973061229822558835905035509",
"148818464063743919055849184879108230614",
"284160394689163334207226159587928959991",
"77175837694432385342205046187377929780"
],
"threshold": 0.9
},
"target": {
"file": "drivers/s390/char/sclp.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@be0259796d0b76bbc7461e12c186814a9e58244c"
},
{
"id": "CVE-2024-41068-14456347",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"digest": {
"function_hash": "270396761014175077338881683585874308569",
"length": 1394.0
},
"target": {
"file": "drivers/s390/char/sclp.c",
"function": "sclp_init"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@79b4be70d5a160969b805f638ac5b4efd0aac7a3"
},
{
"id": "CVE-2024-41068-1fa6fcd3",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"digest": {
"function_hash": "270396761014175077338881683585874308569",
"length": 1394.0
},
"target": {
"file": "drivers/s390/char/sclp.c",
"function": "sclp_init"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cf521049fcd07071ed42dc9758fce7d5ee120ec6"
},
{
"id": "CVE-2024-41068-279ad96f",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"digest": {
"line_hashes": [
"301263126332973061229822558835905035509",
"148818464063743919055849184879108230614",
"284160394689163334207226159587928959991",
"77175837694432385342205046187377929780"
],
"threshold": 0.9
},
"target": {
"file": "drivers/s390/char/sclp.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6434b33faaa063df500af355ee6c3942e0f8d982"
},
{
"id": "CVE-2024-41068-2a655313",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"digest": {
"line_hashes": [
"301263126332973061229822558835905035509",
"148818464063743919055849184879108230614",
"284160394689163334207226159587928959991",
"77175837694432385342205046187377929780"
],
"threshold": 0.9
},
"target": {
"file": "drivers/s390/char/sclp.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@79b4be70d5a160969b805f638ac5b4efd0aac7a3"
},
{
"id": "CVE-2024-41068-2f5d7ea3",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"digest": {
"function_hash": "270396761014175077338881683585874308569",
"length": 1394.0
},
"target": {
"file": "drivers/s390/char/sclp.c",
"function": "sclp_init"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6434b33faaa063df500af355ee6c3942e0f8d982"
},
{
"id": "CVE-2024-41068-30934095",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"digest": {
"line_hashes": [
"301263126332973061229822558835905035509",
"148818464063743919055849184879108230614",
"284160394689163334207226159587928959991",
"77175837694432385342205046187377929780"
],
"threshold": 0.9
},
"target": {
"file": "drivers/s390/char/sclp.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cf521049fcd07071ed42dc9758fce7d5ee120ec6"
},
{
"id": "CVE-2024-41068-410ca08b",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"digest": {
"line_hashes": [
"301263126332973061229822558835905035509",
"148818464063743919055849184879108230614",
"162829943907490832034822963035137821803",
"1643025141644078269875707121515485304"
],
"threshold": 0.9
},
"target": {
"file": "drivers/s390/char/sclp.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a778987afc36d5dc02a1f82d352a81edcaf7eb83"
},
{
"id": "CVE-2024-41068-48ed0705",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"digest": {
"function_hash": "270396761014175077338881683585874308569",
"length": 1394.0
},
"target": {
"file": "drivers/s390/char/sclp.c",
"function": "sclp_init"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@be0259796d0b76bbc7461e12c186814a9e58244c"
},
{
"id": "CVE-2024-41068-4f6f365f",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"digest": {
"function_hash": "312450902725610267397452217753593843181",
"length": 1457.0
},
"target": {
"file": "drivers/s390/char/sclp.c",
"function": "sclp_init"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@455a6653d8700a81aa8ed2b6442a3be476007090"
},
{
"id": "CVE-2024-41068-5d7e2719",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"digest": {
"line_hashes": [
"301263126332973061229822558835905035509",
"148818464063743919055849184879108230614",
"284160394689163334207226159587928959991",
"77175837694432385342205046187377929780"
],
"threshold": 0.9
},
"target": {
"file": "drivers/s390/char/sclp.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@455a6653d8700a81aa8ed2b6442a3be476007090"
},
{
"id": "CVE-2024-41068-a6d16b22",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"digest": {
"function_hash": "175266063971285214369231677734461947454",
"length": 1177.0
},
"target": {
"file": "drivers/s390/char/sclp.c",
"function": "sclp_init"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a778987afc36d5dc02a1f82d352a81edcaf7eb83"
},
{
"id": "CVE-2024-41068-c3a0f277",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"digest": {
"function_hash": "270396761014175077338881683585874308569",
"length": 1394.0
},
"target": {
"file": "drivers/s390/char/sclp.c",
"function": "sclp_init"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0a31b3fdc7e735c4f8c65fe4339945c717ed6808"
},
{
"id": "CVE-2024-41068-ea54d0a7",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"digest": {
"line_hashes": [
"301263126332973061229822558835905035509",
"148818464063743919055849184879108230614",
"284160394689163334207226159587928959991",
"77175837694432385342205046187377929780"
],
"threshold": 0.9
},
"target": {
"file": "drivers/s390/char/sclp.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0a31b3fdc7e735c4f8c65fe4339945c717ed6808"
},
{
"id": "CVE-2024-41068-ffa6a0dc",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"digest": {
"line_hashes": [
"301263126332973061229822558835905035509",
"148818464063743919055849184879108230614",
"284160394689163334207226159587928959991",
"77175837694432385342205046187377929780"
],
"threshold": 0.9
},
"target": {
"file": "drivers/s390/char/sclp.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2e51db7ab71b89dc5a17068f5e201c69f13a4c9a"
}
]