{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-98540","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2026-09-25T10:25:14.356Z","datePublished":"2026-10-18T15:18:08.352Z","dateUpdated":"2026-10-19T09:21:23.633Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-10-19T09:21:23.633Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nfprobe: Terminate the fgraph_data list when the reservation is not filled\n\nfprobe_fgraph_entry() reserves shadow stack space for every fprobe with\nan exit handler, but only fills it for those whose entry handler returns\n0. fgraph_reserve_data() does not clear the area, so fprobe_return()\nparses the unused tail as headers left over from an earlier call, and an\nexit handler can run twice or despite its entry handler asking to skip\nit.\n\nWrite a zero word after the last entry to terminate the walk. A zeroed\nslot does not decode to a NULL fprobe on the arches that encode the\nheader into one unsigned long, since arch_decode_fprobe_header_fp() ORs\nin FPROBE_HEADER_MSB_PATTERN, so make read_fprobe_header() return NULL\nfor a zeroed slot."}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["kernel/trace/fprobe.c"],"versions":[{"version":"e0a384434ae1bdfb03954c46c464e3dbd3223ad6","lessThan":"b7459fddcb27a4b7d01067678172afa362cf660d","status":"affected","versionType":"git"},{"version":"e0a384434ae1bdfb03954c46c464e3dbd3223ad6","lessThan":"1d653a183973f5283a3db5a38cd5e195eb152244","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/trace/fprobe.c"],"versions":[{"version":"7.1","status":"affected"},{"version":"0","lessThan":"7.1","status":"unaffected","versionType":"semver"},{"version":"7.2.9","lessThanOrEqual":"7.2.*","status":"unaffected","versionType":"semver"},{"version":"7.3","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":"7.1","versionEndExcluding":"7.2.9"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"7.1","versionEndExcluding":"7.3"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/b7459fddcb27a4b7d01067678172afa362cf660d"},{"url":"https://git.kernel.org/stable/c/1d653a183973f5283a3db5a38cd5e195eb152244"}],"title":"fprobe: Terminate the fgraph_data list when the reservation is not filled","x_generator":{"engine":"bippy-1.2.0"}}}}