{
    "dataType": "CVE_RECORD",
    "dataVersion": "5.2",
    "cveMetadata": {
        "cveId": "CVE-2024-38576",
        "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "state": "PUBLISHED",
        "assignerShortName": "Linux",
        "dateReserved": "2024-06-18T19:36:34.924Z",
        "datePublished": "2024-06-19T13:37:35.142Z",
        "dateUpdated": "2026-08-05T11:32:53.593Z"
    },
    "containers": {
        "cna": {
            "providerMetadata": {
                "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
                "shortName": "Linux",
                "dateUpdated": "2026-08-05T11:32:53.593Z"
            },
            "descriptions": [
                {
                    "lang": "en",
                    "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nrcu: Fix buffer overflow in print_cpu_stall_info()\n\nThe rcuc-starvation output from print_cpu_stall_info() might overflow the\nbuffer if there is a huge difference in jiffies difference.  The situation\nmight seem improbable, but computers sometimes get very confused about\ntime, which can result in full-sized integers, and, in this case,\nbuffer overflow.\n\nAlso, the unsigned jiffies difference is printed using %ld, which is\nnormally for signed integers.  This is intentional for debugging purposes,\nbut it is not obvious from the code.\n\nThis commit therefore changes sprintf() to snprintf() and adds a\nclarifying comment about intention of %ld format.\n\nFound by Linux Verification Center (linuxtesting.org) with SVACE."
                }
            ],
            "metrics": [
                {
                    "cvssV3_1": {
                        "version": "3.1",
                        "vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H",
                        "baseScore": 7,
                        "baseSeverity": "HIGH"
                    },
                    "scenarios": [
                        {
                            "lang": "en",
                            "value": "AV:L - The vulnerable code sits in core RCU stall detection (kernel/rcu/tree_stall.h), reached only from the scheduler-clock interrupt via check_cpu_stall(); there is no network, adjacent, or physical data path into it. The most an attacker can do is create local system conditions (heavy load, CPU starvation) that make an RCU stall warning fire.\nAC:H - Three conditions all lie outside attacker control: rcuc kthreads must exist (requires CONFIG_PREEMPT_RT or the boot parameter rcutree.use_softirq=0, non-default on mainstream kernels), an RCU CPU stall must actually be declared, and the jiffies delta must exceed ~1e8 (27.8 h at HZ=1000) or be a corrupted backwards value that the attacker cannot influence. The commit author himself describes the triggering situation as \"improbable\" and dependent on the machine being \"very confused about time.\"\nPR:L - No authentication gate protects the path itself, but reaching it requires being on the system to generate the CPU/RCU starvation load that provokes a stall warning, which an ordinary unprivileged local user can attempt. Choosing the higher of Low versus High since no capability check or root requirement guards the RCU stall detector.\nUI:N - The stall detector fires autonomously from the scheduler-clock interrupt with no victim action required. No file open, mount, or other user operation is involved.\nS:U - The overflow corrupts the kernel stack frame of print_cpu_stall_info() within the same kernel security authority. No VM, IOMMU, or sandbox boundary is crossed.\nC:H - The out-of-bounds write corrupts adjacent stack frame contents, including the ticks_title char pointer that is dereferenced by the very next pr_err(\"%s\", ...), which can dump arbitrary adjacent kernel memory to the console/dmesg. Memory corruption of this kind is leverageable for kernel information disclosure.\nI:H - This is an out-of-bounds stack write of up to 12 bytes past a 32-byte buffer, overwriting the stack canary, saved registers, and potentially the return address of print_cpu_stall_info(). Per scoring guidance an out-of-bounds write is High integrity impact regardless of how constrained the written bytes are.\nA:H - The overflow occurs in hard-IRQ context with interrupts disabled while holding the raw rnp->lock spinlock; on stack-protector kernels it trips __stack_chk_fail() and panics the machine, and without it the corrupted frame yields a bad pointer dereference or corrupted return leading to an oops. Either outcome is a full kernel crash."
                        }
                    ]
                }
            ],
            "affected": [
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "unaffected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "kernel/rcu/tree_stall.h"
                    ],
                    "versions": [
                        {
                            "version": "245a62982502255314b63dd2c4daaedd1cd595a6",
                            "lessThan": "e2228ed3fe7aa838fba87c79a76fb1ad9ea47138",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "245a62982502255314b63dd2c4daaedd1cd595a6",
                            "lessThan": "afb39909bfb5c08111f99e21bf5be7505f59ff1c",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "245a62982502255314b63dd2c4daaedd1cd595a6",
                            "lessThan": "9351e1338539cb7f319ffc1210fa9b2aa27384b5",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "245a62982502255314b63dd2c4daaedd1cd595a6",
                            "lessThan": "4c3e2ef4d8ddd313c8ce3ac30505940bea8d6257",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "245a62982502255314b63dd2c4daaedd1cd595a6",
                            "lessThan": "3758f7d9917bd7ef0482c4184c0ad673b4c4e069",
                            "status": "affected",
                            "versionType": "git"
                        }
                    ]
                },
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "affected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "kernel/rcu/tree_stall.h"
                    ],
                    "versions": [
                        {
                            "version": "6.0",
                            "status": "affected"
                        },
                        {
                            "version": "0",
                            "lessThan": "6.0",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.1.93",
                            "lessThanOrEqual": "6.1.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.6.33",
                            "lessThanOrEqual": "6.6.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.8.12",
                            "lessThanOrEqual": "6.8.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.9.3",
                            "lessThanOrEqual": "6.9.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.10",
                            "lessThanOrEqual": "*",
                            "status": "unaffected",
                            "versionType": "original_commit_for_fix"
                        }
                    ]
                }
            ],
            "cpeApplicability": [
                {
                    "nodes": [
                        {
                            "operator": "OR",
                            "negate": false,
                            "cpeMatch": [
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "6.0",
                                    "versionEndExcluding": "6.1.93"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "6.0",
                                    "versionEndExcluding": "6.6.33"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "6.0",
                                    "versionEndExcluding": "6.8.12"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "6.0",
                                    "versionEndExcluding": "6.9.3"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "6.0",
                                    "versionEndExcluding": "6.10"
                                }
                            ]
                        }
                    ]
                }
            ],
            "references": [
                {
                    "url": "https://git.kernel.org/stable/c/e2228ed3fe7aa838fba87c79a76fb1ad9ea47138"
                },
                {
                    "url": "https://git.kernel.org/stable/c/afb39909bfb5c08111f99e21bf5be7505f59ff1c"
                },
                {
                    "url": "https://git.kernel.org/stable/c/9351e1338539cb7f319ffc1210fa9b2aa27384b5"
                },
                {
                    "url": "https://git.kernel.org/stable/c/4c3e2ef4d8ddd313c8ce3ac30505940bea8d6257"
                },
                {
                    "url": "https://git.kernel.org/stable/c/3758f7d9917bd7ef0482c4184c0ad673b4c4e069"
                }
            ],
            "title": "rcu: Fix buffer overflow in print_cpu_stall_info()",
            "x_generator": {
                "engine": "bippy-1.2.0"
            }
        },
        "adp": [
            {
                "problemTypes": [
                    {
                        "descriptions": [
                            {
                                "type": "CWE",
                                "lang": "en",
                                "description": "CWE-noinfo Not enough information"
                            }
                        ]
                    }
                ],
                "metrics": [
                    {
                        "cvssV3_1": {
                            "scope": "UNCHANGED",
                            "version": "3.1",
                            "baseScore": 7.1,
                            "attackVector": "LOCAL",
                            "baseSeverity": "HIGH",
                            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H",
                            "integrityImpact": "NONE",
                            "userInteraction": "NONE",
                            "attackComplexity": "LOW",
                            "availabilityImpact": "HIGH",
                            "privilegesRequired": "LOW",
                            "confidentialityImpact": "HIGH"
                        }
                    },
                    {
                        "other": {
                            "type": "ssvc",
                            "content": {
                                "timestamp": "2024-06-20T15:40:30.043568Z",
                                "id": "CVE-2024-38576",
                                "options": [
                                    {
                                        "Exploitation": "none"
                                    },
                                    {
                                        "Automatable": "no"
                                    },
                                    {
                                        "Technical Impact": "partial"
                                    }
                                ],
                                "role": "CISA Coordinator",
                                "version": "2.0.3"
                            }
                        }
                    }
                ],
                "title": "CISA ADP Vulnrichment",
                "providerMetadata": {
                    "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
                    "shortName": "CISA-ADP",
                    "dateUpdated": "2024-11-07T17:27:02.961Z"
                }
            },
            {
                "providerMetadata": {
                    "orgId": "af854a3a-2127-422b-91ae-364da2661108",
                    "shortName": "CVE",
                    "dateUpdated": "2024-08-02T04:12:25.929Z"
                },
                "title": "CVE Program Container",
                "references": [
                    {
                        "url": "https://git.kernel.org/stable/c/e2228ed3fe7aa838fba87c79a76fb1ad9ea47138",
                        "tags": [
                            "x_transferred"
                        ]
                    },
                    {
                        "url": "https://git.kernel.org/stable/c/afb39909bfb5c08111f99e21bf5be7505f59ff1c",
                        "tags": [
                            "x_transferred"
                        ]
                    },
                    {
                        "url": "https://git.kernel.org/stable/c/9351e1338539cb7f319ffc1210fa9b2aa27384b5",
                        "tags": [
                            "x_transferred"
                        ]
                    },
                    {
                        "url": "https://git.kernel.org/stable/c/4c3e2ef4d8ddd313c8ce3ac30505940bea8d6257",
                        "tags": [
                            "x_transferred"
                        ]
                    },
                    {
                        "url": "https://git.kernel.org/stable/c/3758f7d9917bd7ef0482c4184c0ad673b4c4e069",
                        "tags": [
                            "x_transferred"
                        ]
                    }
                ]
            }
        ]
    }
}