CVE-2024-38667

Source
https://nvd.nist.gov/vuln/detail/CVE-2024-38667
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2024-38667.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2024-38667
Downstream
Related
Published
2024-06-24T13:52:25Z
Modified
2025-10-14T18:17:42.160762Z
Summary
riscv: prevent pt_regs corruption for secondary idle threads
Details

In the Linux kernel, the following vulnerability has been resolved:

riscv: prevent pt_regs corruption for secondary idle threads

Top of the kernel thread stack should be reserved for ptregs. However this is not the case for the idle threads of the secondary boot harts. Their stacks overlap with their ptregs, so both may get corrupted.

Similar issue has been fixed for the primary hart, see c7cdd96eca28 ("riscv: prevent stack corruption by reserving taskptregs(p) early"). However that fix was not propagated to the secondary harts. The problem has been noticed in some CPU hotplug tests with V enabled. The function smpcallin stored several registers on stack, corrupting top of ptregs structure including status field. As a result, kernel attempted to save or restore inexistent V context.

References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
2875fe0561569f82d0e63658ccf0d11ce7da8922
Fixed
ea22d4195cca13d5fdbc4d6555a2dfb8a7867a9e
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
2875fe0561569f82d0e63658ccf0d11ce7da8922
Fixed
3090c06d50eaa91317f84bf3eac4c265e6cb8d44
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
2875fe0561569f82d0e63658ccf0d11ce7da8922
Fixed
0c1f28c32a194303da630fca89481334b9547b80
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
2875fe0561569f82d0e63658ccf0d11ce7da8922
Fixed
a638b0461b58aa3205cd9d5f14d6f703d795b4af

Affected versions

v5.*

v5.10
v5.10-rc1
v5.10-rc2
v5.10-rc3
v5.10-rc4
v5.10-rc5
v5.10-rc6
v5.10-rc7
v5.11
v5.11-rc1
v5.11-rc2
v5.11-rc3
v5.11-rc4
v5.11-rc5
v5.11-rc6
v5.11-rc7
v5.12
v5.12-rc1
v5.12-rc1-dontuse
v5.12-rc2
v5.12-rc3
v5.12-rc4
v5.12-rc5
v5.12-rc6
v5.12-rc7
v5.12-rc8
v5.13
v5.13-rc1
v5.13-rc2
v5.13-rc3
v5.13-rc4
v5.13-rc5
v5.13-rc6
v5.13-rc7
v5.14
v5.14-rc1
v5.14-rc2
v5.14-rc3
v5.14-rc4
v5.14-rc5
v5.14-rc6
v5.14-rc7
v5.15
v5.15-rc1
v5.15-rc2
v5.15-rc3
v5.15-rc4
v5.15-rc5
v5.15-rc6
v5.15-rc7
v5.16
v5.16-rc1
v5.16-rc2
v5.16-rc3
v5.16-rc4
v5.16-rc5
v5.16-rc6
v5.16-rc7
v5.16-rc8
v5.17
v5.17-rc1
v5.17-rc2
v5.17-rc3
v5.17-rc4
v5.17-rc5
v5.17-rc6
v5.17-rc7
v5.17-rc8
v5.18
v5.18-rc1
v5.18-rc2
v5.18-rc3
v5.18-rc4
v5.18-rc5
v5.18-rc6
v5.18-rc7
v5.19
v5.19-rc1
v5.19-rc2
v5.19-rc3
v5.19-rc4
v5.19-rc5
v5.19-rc6
v5.19-rc7
v5.19-rc8
v5.6
v5.6-rc5
v5.6-rc6
v5.6-rc7
v5.7
v5.7-rc1
v5.7-rc2
v5.7-rc3
v5.7-rc4
v5.7-rc5
v5.7-rc6
v5.7-rc7
v5.8
v5.8-rc1
v5.8-rc2
v5.8-rc3
v5.8-rc4
v5.8-rc5
v5.8-rc6
v5.8-rc7
v5.9
v5.9-rc1
v5.9-rc2
v5.9-rc3
v5.9-rc4
v5.9-rc5
v5.9-rc6
v5.9-rc7
v5.9-rc8

v6.*

v6.0
v6.0-rc1
v6.0-rc2
v6.0-rc3
v6.0-rc4
v6.0-rc5
v6.0-rc6
v6.0-rc7
v6.1
v6.1-rc1
v6.1-rc2
v6.1-rc3
v6.1-rc4
v6.1-rc5
v6.1-rc6
v6.1-rc7
v6.1-rc8
v6.1.1
v6.1.10
v6.1.11
v6.1.12
v6.1.13
v6.1.14
v6.1.15
v6.1.16
v6.1.17
v6.1.18
v6.1.19
v6.1.2
v6.1.20
v6.1.21
v6.1.22
v6.1.23
v6.1.24
v6.1.25
v6.1.26
v6.1.27
v6.1.28
v6.1.29
v6.1.3
v6.1.30
v6.1.31
v6.1.32
v6.1.33
v6.1.34
v6.1.35
v6.1.36
v6.1.37
v6.1.38
v6.1.39
v6.1.4
v6.1.40
v6.1.41
v6.1.42
v6.1.43
v6.1.44
v6.1.45
v6.1.46
v6.1.47
v6.1.48
v6.1.49
v6.1.5
v6.1.50
v6.1.51
v6.1.52
v6.1.53
v6.1.54
v6.1.55
v6.1.56
v6.1.57
v6.1.58
v6.1.59
v6.1.6
v6.1.60
v6.1.61
v6.1.62
v6.1.63
v6.1.64
v6.1.65
v6.1.66
v6.1.67
v6.1.68
v6.1.69
v6.1.7
v6.1.70
v6.1.71
v6.1.72
v6.1.73
v6.1.74
v6.1.75
v6.1.76
v6.1.77
v6.1.78
v6.1.79
v6.1.8
v6.1.80
v6.1.81
v6.1.82
v6.1.83
v6.1.84
v6.1.85
v6.1.86
v6.1.87
v6.1.88
v6.1.89
v6.1.9
v6.1.90
v6.1.91
v6.1.92
v6.10-rc1
v6.2
v6.2-rc1
v6.2-rc2
v6.2-rc3
v6.2-rc4
v6.2-rc5
v6.2-rc6
v6.2-rc7
v6.2-rc8
v6.3
v6.3-rc1
v6.3-rc2
v6.3-rc3
v6.3-rc4
v6.3-rc5
v6.3-rc6
v6.3-rc7
v6.4
v6.4-rc1
v6.4-rc2
v6.4-rc3
v6.4-rc4
v6.4-rc5
v6.4-rc6
v6.4-rc7
v6.5
v6.5-rc1
v6.5-rc2
v6.5-rc3
v6.5-rc4
v6.5-rc5
v6.5-rc6
v6.5-rc7
v6.6
v6.6-rc1
v6.6-rc2
v6.6-rc3
v6.6-rc4
v6.6-rc5
v6.6-rc6
v6.6-rc7
v6.6.1
v6.6.10
v6.6.11
v6.6.12
v6.6.13
v6.6.14
v6.6.15
v6.6.16
v6.6.17
v6.6.18
v6.6.19
v6.6.2
v6.6.20
v6.6.21
v6.6.22
v6.6.23
v6.6.24
v6.6.25
v6.6.26
v6.6.27
v6.6.28
v6.6.29
v6.6.3
v6.6.30
v6.6.31
v6.6.32
v6.6.4
v6.6.5
v6.6.6
v6.6.7
v6.6.8
v6.6.9
v6.7
v6.7-rc1
v6.7-rc2
v6.7-rc3
v6.7-rc4
v6.7-rc5
v6.7-rc6
v6.7-rc7
v6.7-rc8
v6.8
v6.8-rc1
v6.8-rc2
v6.8-rc3
v6.8-rc4
v6.8-rc5
v6.8-rc6
v6.8-rc7
v6.9
v6.9-rc1
v6.9-rc2
v6.9-rc3
v6.9-rc4
v6.9-rc5
v6.9-rc6
v6.9-rc7
v6.9.1
v6.9.2
v6.9.3

Database specific

{
    "vanir_signatures": [
        {
            "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a638b0461b58aa3205cd9d5f14d6f703d795b4af",
            "signature_type": "Line",
            "digest": {
                "threshold": 0.9,
                "line_hashes": [
                    "150127410219514310602300661538771830895",
                    "313904561036393381452021030649102499168",
                    "248415291426626289976080140289520420250",
                    "55238230344878173503350704916323385200",
                    "166085871545969531618680949622109804688"
                ]
            },
            "id": "CVE-2024-38667-03c051e2",
            "target": {
                "file": "arch/riscv/kernel/cpu_ops_spinwait.c"
            },
            "deprecated": false,
            "signature_version": "v1"
        },
        {
            "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0c1f28c32a194303da630fca89481334b9547b80",
            "signature_type": "Line",
            "digest": {
                "threshold": 0.9,
                "line_hashes": [
                    "150127410219514310602300661538771830895",
                    "313904561036393381452021030649102499168",
                    "248415291426626289976080140289520420250",
                    "55238230344878173503350704916323385200",
                    "166085871545969531618680949622109804688"
                ]
            },
            "id": "CVE-2024-38667-22e2fadf",
            "target": {
                "file": "arch/riscv/kernel/cpu_ops_spinwait.c"
            },
            "deprecated": false,
            "signature_version": "v1"
        },
        {
            "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3090c06d50eaa91317f84bf3eac4c265e6cb8d44",
            "signature_type": "Function",
            "digest": {
                "function_hash": "304863836827759227841652155795817270705",
                "length": 344.0
            },
            "id": "CVE-2024-38667-3fadc495",
            "target": {
                "file": "arch/riscv/kernel/cpu_ops_spinwait.c",
                "function": "cpu_update_secondary_bootdata"
            },
            "deprecated": false,
            "signature_version": "v1"
        },
        {
            "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ea22d4195cca13d5fdbc4d6555a2dfb8a7867a9e",
            "signature_type": "Function",
            "digest": {
                "function_hash": "304863836827759227841652155795817270705",
                "length": 344.0
            },
            "id": "CVE-2024-38667-41ea1376",
            "target": {
                "file": "arch/riscv/kernel/cpu_ops_spinwait.c",
                "function": "cpu_update_secondary_bootdata"
            },
            "deprecated": false,
            "signature_version": "v1"
        },
        {
            "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3090c06d50eaa91317f84bf3eac4c265e6cb8d44",
            "signature_type": "Line",
            "digest": {
                "threshold": 0.9,
                "line_hashes": [
                    "150127410219514310602300661538771830895",
                    "313904561036393381452021030649102499168",
                    "248415291426626289976080140289520420250",
                    "55238230344878173503350704916323385200",
                    "105521730090550013598986576098174059340"
                ]
            },
            "id": "CVE-2024-38667-4715e797",
            "target": {
                "file": "arch/riscv/kernel/cpu_ops_spinwait.c"
            },
            "deprecated": false,
            "signature_version": "v1"
        },
        {
            "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0c1f28c32a194303da630fca89481334b9547b80",
            "signature_type": "Function",
            "digest": {
                "function_hash": "303003893180181908998714541467659418013",
                "length": 407.0
            },
            "id": "CVE-2024-38667-4cd1b561",
            "target": {
                "file": "arch/riscv/kernel/cpu_ops_sbi.c",
                "function": "sbi_cpu_start"
            },
            "deprecated": false,
            "signature_version": "v1"
        },
        {
            "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ea22d4195cca13d5fdbc4d6555a2dfb8a7867a9e",
            "signature_type": "Line",
            "digest": {
                "threshold": 0.9,
                "line_hashes": [
                    "195839405214967543211734470122375920254",
                    "226380594458998848402799289762413728891",
                    "179538116048886076995887846850297133971",
                    "201988115140725921555802778101157639522"
                ]
            },
            "id": "CVE-2024-38667-5aa56683",
            "target": {
                "file": "arch/riscv/kernel/cpu_ops_sbi.c"
            },
            "deprecated": false,
            "signature_version": "v1"
        },
        {
            "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ea22d4195cca13d5fdbc4d6555a2dfb8a7867a9e",
            "signature_type": "Line",
            "digest": {
                "threshold": 0.9,
                "line_hashes": [
                    "150127410219514310602300661538771830895",
                    "313904561036393381452021030649102499168",
                    "248415291426626289976080140289520420250",
                    "55238230344878173503350704916323385200",
                    "105521730090550013598986576098174059340"
                ]
            },
            "id": "CVE-2024-38667-5b20f396",
            "target": {
                "file": "arch/riscv/kernel/cpu_ops_spinwait.c"
            },
            "deprecated": false,
            "signature_version": "v1"
        },
        {
            "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0c1f28c32a194303da630fca89481334b9547b80",
            "signature_type": "Line",
            "digest": {
                "threshold": 0.9,
                "line_hashes": [
                    "195839405214967543211734470122375920254",
                    "226380594458998848402799289762413728891",
                    "179538116048886076995887846850297133971",
                    "201988115140725921555802778101157639522"
                ]
            },
            "id": "CVE-2024-38667-7914fb14",
            "target": {
                "file": "arch/riscv/kernel/cpu_ops_sbi.c"
            },
            "deprecated": false,
            "signature_version": "v1"
        },
        {
            "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a638b0461b58aa3205cd9d5f14d6f703d795b4af",
            "signature_type": "Line",
            "digest": {
                "threshold": 0.9,
                "line_hashes": [
                    "195839405214967543211734470122375920254",
                    "226380594458998848402799289762413728891",
                    "179538116048886076995887846850297133971",
                    "201988115140725921555802778101157639522"
                ]
            },
            "id": "CVE-2024-38667-91f0d3a3",
            "target": {
                "file": "arch/riscv/kernel/cpu_ops_sbi.c"
            },
            "deprecated": false,
            "signature_version": "v1"
        },
        {
            "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a638b0461b58aa3205cd9d5f14d6f703d795b4af",
            "signature_type": "Function",
            "digest": {
                "function_hash": "304863836827759227841652155795817270705",
                "length": 344.0
            },
            "id": "CVE-2024-38667-a5b94e42",
            "target": {
                "file": "arch/riscv/kernel/cpu_ops_spinwait.c",
                "function": "cpu_update_secondary_bootdata"
            },
            "deprecated": false,
            "signature_version": "v1"
        },
        {
            "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0c1f28c32a194303da630fca89481334b9547b80",
            "signature_type": "Function",
            "digest": {
                "function_hash": "304863836827759227841652155795817270705",
                "length": 344.0
            },
            "id": "CVE-2024-38667-a80f3665",
            "target": {
                "file": "arch/riscv/kernel/cpu_ops_spinwait.c",
                "function": "cpu_update_secondary_bootdata"
            },
            "deprecated": false,
            "signature_version": "v1"
        },
        {
            "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a638b0461b58aa3205cd9d5f14d6f703d795b4af",
            "signature_type": "Function",
            "digest": {
                "function_hash": "303003893180181908998714541467659418013",
                "length": 407.0
            },
            "id": "CVE-2024-38667-ab04523b",
            "target": {
                "file": "arch/riscv/kernel/cpu_ops_sbi.c",
                "function": "sbi_cpu_start"
            },
            "deprecated": false,
            "signature_version": "v1"
        },
        {
            "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3090c06d50eaa91317f84bf3eac4c265e6cb8d44",
            "signature_type": "Function",
            "digest": {
                "function_hash": "303003893180181908998714541467659418013",
                "length": 407.0
            },
            "id": "CVE-2024-38667-c8a48b1d",
            "target": {
                "file": "arch/riscv/kernel/cpu_ops_sbi.c",
                "function": "sbi_cpu_start"
            },
            "deprecated": false,
            "signature_version": "v1"
        },
        {
            "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3090c06d50eaa91317f84bf3eac4c265e6cb8d44",
            "signature_type": "Line",
            "digest": {
                "threshold": 0.9,
                "line_hashes": [
                    "195839405214967543211734470122375920254",
                    "226380594458998848402799289762413728891",
                    "179538116048886076995887846850297133971",
                    "201988115140725921555802778101157639522"
                ]
            },
            "id": "CVE-2024-38667-d82bea9b",
            "target": {
                "file": "arch/riscv/kernel/cpu_ops_sbi.c"
            },
            "deprecated": false,
            "signature_version": "v1"
        },
        {
            "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ea22d4195cca13d5fdbc4d6555a2dfb8a7867a9e",
            "signature_type": "Function",
            "digest": {
                "function_hash": "303003893180181908998714541467659418013",
                "length": 407.0
            },
            "id": "CVE-2024-38667-fb7d1a7f",
            "target": {
                "file": "arch/riscv/kernel/cpu_ops_sbi.c",
                "function": "sbi_cpu_start"
            },
            "deprecated": false,
            "signature_version": "v1"
        }
    ]
}

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
5.7.0
Fixed
6.1.93
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.6.33
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.9.4