{"api_version":"1","generated_at":"2026-07-04T18:19:44+00:00","cve":"CVE-2026-23052","urls":{"html":"https://cve.report/CVE-2026-23052","api":"https://cve.report/api/cve/CVE-2026-23052.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-23052","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-23052"},"summary":{"title":"ftrace: Do not over-allocate ftrace memory","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nftrace: Do not over-allocate ftrace memory\n\nThe pg_remaining calculation in ftrace_process_locs() assumes that\nENTRIES_PER_PAGE multiplied by 2^order equals the actual capacity of the\nallocated page group. However, ENTRIES_PER_PAGE is PAGE_SIZE / ENTRY_SIZE\n(integer division). When PAGE_SIZE is not a multiple of ENTRY_SIZE (e.g.\n4096 / 24 = 170 with remainder 16), high-order allocations (like 256 pages)\nhave significantly more capacity than 256 * 170. This leads to pg_remaining\nbeing underestimated, which in turn makes skip (derived from skipped -\npg_remaining) larger than expected, causing the WARN(skip != remaining)\nto trigger.\n\nExtra allocated pages for ftrace: 2 with 654 skipped\nWARNING: CPU: 0 PID: 0 at kernel/trace/ftrace.c:7295 ftrace_process_locs+0x5bf/0x5e0\n\nA similar problem in ftrace_allocate_records() can result in allocating\ntoo many pages. This can trigger the second warning in\nftrace_process_locs().\n\nExtra allocated pages for ftrace\nWARNING: CPU: 0 PID: 0 at kernel/trace/ftrace.c:7276 ftrace_process_locs+0x548/0x580\n\nUse the actual capacity of a page group to determine the number of pages\nto allocate. Have ftrace_allocate_pages() return the number of allocated\npages to avoid having to calculate it. Use the actual page group capacity\nwhen validating the number of unused pages due to skipped entries.\nDrop the definition of ENTRIES_PER_PAGE since it is no longer used.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-02-04 17:16:15","updated_at":"2026-07-04 12:16:54"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/23936d19e4383c8dfb03931f032473d4baf92533","name":"https://git.kernel.org/stable/c/23936d19e4383c8dfb03931f032473d4baf92533","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/bf802b936a7b269917e4dc233e49f6a928db8286","name":"https://git.kernel.org/stable/c/bf802b936a7b269917e4dc233e49f6a928db8286","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/be55257fab181b93af38f8c4b1b3cb453a78d742","name":"https://git.kernel.org/stable/c/be55257fab181b93af38f8c4b1b3cb453a78d742","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/9aef476717994e96dadfb359641c4b82b521aa36","name":"https://git.kernel.org/stable/c/9aef476717994e96dadfb359641c4b82b521aa36","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-23052","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-23052","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected dc06779d338de4e5a46166a93ec124222e09f40a bf802b936a7b269917e4dc233e49f6a928db8286 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 2a6ce8bddd8aafa61aaa705e76eae810f22429be 23936d19e4383c8dfb03931f032473d4baf92533 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 4a3efc6baff931da9a85c6d2e42c87bd9a827399 9aef476717994e96dadfb359641c4b82b521aa36 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 4a3efc6baff931da9a85c6d2e42c87bd9a827399 be55257fab181b93af38f8c4b1b3cb453a78d742 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 6.15","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.15 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.7 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.19 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["kernel/trace/ftrace.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"bf802b936a7b269917e4dc233e49f6a928db8286","status":"affected","version":"dc06779d338de4e5a46166a93ec124222e09f40a","versionType":"git"},{"lessThan":"23936d19e4383c8dfb03931f032473d4baf92533","status":"affected","version":"2a6ce8bddd8aafa61aaa705e76eae810f22429be","versionType":"git"},{"lessThan":"9aef476717994e96dadfb359641c4b82b521aa36","status":"affected","version":"4a3efc6baff931da9a85c6d2e42c87bd9a827399","versionType":"git"},{"lessThan":"be55257fab181b93af38f8c4b1b3cb453a78d742","status":"affected","version":"4a3efc6baff931da9a85c6d2e42c87bd9a827399","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["kernel/trace/ftrace.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"6.15"},{"lessThan":"6.15","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.7","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"6.19","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.7","versionStartIncluding":"6.15","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.19","versionStartIncluding":"6.15","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nftrace: Do not over-allocate ftrace memory\n\nThe pg_remaining calculation in ftrace_process_locs() assumes that\nENTRIES_PER_PAGE multiplied by 2^order equals the actual capacity of the\nallocated page group. However, ENTRIES_PER_PAGE is PAGE_SIZE / ENTRY_SIZE\n(integer division). When PAGE_SIZE is not a multiple of ENTRY_SIZE (e.g.\n4096 / 24 = 170 with remainder 16), high-order allocations (like 256 pages)\nhave significantly more capacity than 256 * 170. This leads to pg_remaining\nbeing underestimated, which in turn makes skip (derived from skipped -\npg_remaining) larger than expected, causing the WARN(skip != remaining)\nto trigger.\n\nExtra allocated pages for ftrace: 2 with 654 skipped\nWARNING: CPU: 0 PID: 0 at kernel/trace/ftrace.c:7295 ftrace_process_locs+0x5bf/0x5e0\n\nA similar problem in ftrace_allocate_records() can result in allocating\ntoo many pages. This can trigger the second warning in\nftrace_process_locs().\n\nExtra allocated pages for ftrace\nWARNING: CPU: 0 PID: 0 at kernel/trace/ftrace.c:7276 ftrace_process_locs+0x548/0x580\n\nUse the actual capacity of a page group to determine the number of pages\nto allocate. Have ftrace_allocate_pages() return the number of allocated\npages to avoid having to calculate it. Use the actual page group capacity\nwhen validating the number of unused pages due to skipped entries.\nDrop the definition of ENTRIES_PER_PAGE since it is no longer used."}],"providerMetadata":{"dateUpdated":"2026-07-04T11:50:25.608Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/bf802b936a7b269917e4dc233e49f6a928db8286"},{"url":"https://git.kernel.org/stable/c/23936d19e4383c8dfb03931f032473d4baf92533"},{"url":"https://git.kernel.org/stable/c/9aef476717994e96dadfb359641c4b82b521aa36"},{"url":"https://git.kernel.org/stable/c/be55257fab181b93af38f8c4b1b3cb453a78d742"}],"title":"ftrace: Do not over-allocate ftrace memory","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-23052","datePublished":"2026-02-04T16:04:21.739Z","dateReserved":"2026-01-13T15:37:45.950Z","dateUpdated":"2026-07-04T11:50:25.608Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-02-04 17:16:15","lastModifiedDate":"2026-07-04 12:16:54","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"23052","Ordinal":"1","Title":"ftrace: Do not over-allocate ftrace memory","CVE":"CVE-2026-23052","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"23052","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\nftrace: Do not over-allocate ftrace memory\n\nThe pg_remaining calculation in ftrace_process_locs() assumes that\nENTRIES_PER_PAGE multiplied by 2^order equals the actual capacity of the\nallocated page group. However, ENTRIES_PER_PAGE is PAGE_SIZE / ENTRY_SIZE\n(integer division). When PAGE_SIZE is not a multiple of ENTRY_SIZE (e.g.\n4096 / 24 = 170 with remainder 16), high-order allocations (like 256 pages)\nhave significantly more capacity than 256 * 170. This leads to pg_remaining\nbeing underestimated, which in turn makes skip (derived from skipped -\npg_remaining) larger than expected, causing the WARN(skip != remaining)\nto trigger.\n\nExtra allocated pages for ftrace: 2 with 654 skipped\nWARNING: CPU: 0 PID: 0 at kernel/trace/ftrace.c:7295 ftrace_process_locs+0x5bf/0x5e0\n\nA similar problem in ftrace_allocate_records() can result in allocating\ntoo many pages. This can trigger the second warning in\nftrace_process_locs().\n\nExtra allocated pages for ftrace\nWARNING: CPU: 0 PID: 0 at kernel/trace/ftrace.c:7276 ftrace_process_locs+0x548/0x580\n\nUse the actual capacity of a page group to determine the number of pages\nto allocate. Have ftrace_allocate_pages() return the number of allocated\npages to avoid having to calculate it. Use the actual page group capacity\nwhen validating the number of unused pages due to skipped entries.\nDrop the definition of ENTRIES_PER_PAGE since it is no longer used.","Type":"Description","Title":"ftrace: Do not over-allocate ftrace memory"}]}}}