arm64: Reserve an extra page for early kernel mapping
In the Linux kernel, the following vulnerability has been resolved: arm64: Reserve an extra page for early kernel mapping The final part of [data, end) segment may overflow into the next page of init_pg_end[1] which is the gap page before early_init_stack[2]: [1] crash_arm64_v9.0.1> vtop ffffffed00601000 VIRTUAL PHYSICAL ffffffed00601000 83401000 PAGE DIRECTORY: ffffffecffd62000 PGD: ffffffecffd62da0 => 10000000833fb003 PMD: ffffff80033fb018 => 10000000833fe003 PTE: ffffff80033fe008 => 68000083401f03 PAGE: 83401000 PTE PHYSICAL FLAGS 68000083401f03 83401000 (VALID|SHARED|AF|NG|PXN|UXN) PAGE PHYSICAL MAPPING INDEX CNT FLAGS fffffffec00d0040 83401000 0 0 1 4000 reserved [2] ffffffed002c8000 (r) __pi__data ffffffed0054e000 (d) __pi___bss_start ffffffed005f5000 (b) __pi_init_pg_dir ffffffed005fe000 (b) __pi_init_pg_end ffffffed005ff000 (B) early_init_stack ffffffed00608000 (b) __pi__end For 4K pages, the early kernel mapping may use 2MB block entries but the kernel segments are only 64KB aligned. Segment boundaries that fall within a 2MB block therefore require a PTE table so that different attributes can be applied on either side of the boundary. KERNEL_SEGMENT_COUNT still correctly counts the five permanent kernel VMAs registered by declare_kernel_vmas(). However, since commit 5973a62efa34 ("arm64: map [_text, _stext) virtual address range non-executable+read-only"), the early mapper also maps [_text, _stext) separately from [_stext, _etext). This adds one more early-only split
- Products
- Kernel
- Affected versions
- Not specified
- Fixed versions
- 6.12.91, 6.18.33, 7.0.10
- CVEs
- CVE-2026-53288
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 6 Nov 2026, 03:00 UTC · Revision 1
Source evidence
arm64: Reserve an extra page for early kernel mapping
core-osv · Original sourcePublished 26 Jun 2026, 19:40 UTC
In the Linux kernel, the following vulnerability has been resolved: arm64: Reserve an extra page for early kernel mapping The final part of [data, end) segment may overflow into the next page of init_pg_end[1] which is the gap page before early_init_stack[2]: [1] crash_arm64_v9.0.1> vtop ffffffed00601000 VIRTUAL PHYSICAL ffffffed00601000 83401000 PAGE DIRECTORY: ffffffecffd62000 PGD: ffffffecffd62da0 => 10000000833fb003 PMD: ffffff80033fb018 => 10000000833fe003 PTE: ffffff80033fe008 => 68000083401f03 PAGE: 83401000 PTE PHYSICAL FLAGS 68000083401f03 83401000 (VALID|SHARED|AF|NG|PXN|UXN) PAGE PHYSICAL MAPPING INDEX CNT FLAGS fffffffec00d0040 83401000 0 0 1 4000 reserved [2] ffffffed002c8000 (r) __pi__data ffffffed0054e000 (d) __pi___bss_start ffffffed005f5000 (b) __pi_init_pg_dir ffffffed005fe000 (b) __pi_init_pg_end ffffffed005ff000 (B) early_init_stack ffffffed00608000 (b) __pi__end For 4K pages, the early kernel mapping may use 2MB block entries but the kernel segments are only 64KB aligned. Segment boundaries that fall within a 2MB block therefore require a PTE table so that different attributes can be applied on either side of the boundary. KERNEL_SEGMENT_COUNT still correctly counts the five permanent kernel VMAs registered by declare_kernel_vmas(). However, since commit 5973a62efa34 ("arm64: map [_text, _stext) virtual address range non-executable+read-only"), the early mapper also maps [_text, _stext) separately from [_stext, _etext). This adds one more early-only split
osv:CVE-2026-53288
Kernel
Fixed versions: 6.12.91, 6.18.33, 7.0.10
Complete source record
{
"id": "e4f14ce37eca8387635e62ca7eb024615eaf5d811593b5ea73505d075430691e",
"url": "https://osv.dev/vulnerability/CVE-2026-53288",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "arm64: Reserve an extra page for early kernel mapping",
"summary": "In the Linux kernel, the following vulnerability has been resolved: arm64: Reserve an extra page for early kernel mapping The final part of [data, end) segment may overflow into the next page of init_pg_end[1] which is the gap page before early_init_stack[2]: [1] crash_arm64_v9.0.1> vtop ffffffed00601000 VIRTUAL PHYSICAL ffffffed00601000 83401000 PAGE DIRECTORY: ffffffecffd62000 PGD: ffffffecffd62da0 => 10000000833fb003 PMD: ffffff80033fb018 => 10000000833fe003 PTE: ffffff80033fe008 => 68000083401f03 PAGE: 83401000 PTE PHYSICAL FLAGS 68000083401f03 83401000 (VALID|SHARED|AF|NG|PXN|UXN) PAGE PHYSICAL MAPPING INDEX CNT FLAGS fffffffec00d0040 83401000 0 0 1 4000 reserved [2] ffffffed002c8000 (r) __pi__data ffffffed0054e000 (d) __pi___bss_start ffffffed005f5000 (b) __pi_init_pg_dir ffffffed005fe000 (b) __pi_init_pg_end ffffffed005ff000 (B) early_init_stack ffffffed00608000 (b) __pi__end For 4K pages, the early kernel mapping may use 2MB block entries but the kernel segments are only 64KB aligned. Segment boundaries that fall within a 2MB block therefore require a PTE table so that different attributes can be applied on either side of the boundary. KERNEL_SEGMENT_COUNT still correctly counts the five permanent kernel VMAs registered by declare_kernel_vmas(). However, since commit 5973a62efa34 (\"arm64: map [_text, _stext) virtual address range non-executable+read-only\"), the early mapper also maps [_text, _stext) separately from [_stext, _etext). This adds one more early-only split",
"evidence": "osv:CVE-2026-53288",
"products": [
{
"name": {
"value": "Kernel",
"evidence": "/affected/1/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "6.12.91",
"evidence": "/affected/1/ranges"
},
{
"value": "6.18.33",
"evidence": "/affected/1/ranges"
},
{
"value": "7.0.10",
"evidence": "/affected/1/ranges"
}
],
"affected_versions": []
}
],
"severity": "unknown",
"structured": {
"id": "CVE-2026-53288",
"aliases": [
"CVE-2026-53288"
],
"affected": [
{
"ranges": [
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "fdd380a5950503a07aaaf74536a0c2f223475eb0"
},
{
"fixed": "a4ff33053da0a34b14abb5c96dc5a48379e26fce"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "5973a62efa34c80c9a4e5eac1fca6f6209b902af"
},
{
"fixed": "dcb89deed40ba55ff7020061712fdabf098cc2cc"
},
{
"fixed": "9fe9e3acaa14921b0cf0d6cc2de5b562499bf721"
},
{
"fixed": "4d8e74ad4585672489da6145b3328d415f50db82"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "6.12.54"
},
{
"fixed": "6.12.91"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "6.17.4"
},
{
"fixed": "6.18"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "88025faf2aa08c7468d68d8cb31a53b55aae6ee0"
}
]
}
],
"versions": [
"v6.12.90",
"v6.12.89",
"v6.12.88",
"v6.12.87",
"v6.12.86",
"v6.12.85",
"v6.12.84",
"v6.12.83",
"v6.12.82",
"v6.12.81",
"v6.12.80",
"v6.12.79",
"v6.12.78",
"v6.12.77",
"v6.12.76",
"v6.12.75",
"v6.12.74",
"v6.12.73",
"v6.12.72",
"v6.12.71",
"v6.12.70",
"v6.12.69",
"v6.12.68",
"v6.12.67",
"v6.12.66",
"v6.12.65",
"v6.12.64",
"v6.12.63",
"v6.12.62",
"v6.12.61",
"v6.12.60",
"v6.12.59",
"v6.12.58",
"v6.12.57",
"v6.12.56",
"v6.12.55",
"v6.12.54",
"v6.17.13",
"v6.17.12",
"v6.17.11",
"v6.17.10",
"v6.17.9",
"v6.17.8",
"v6.17.7",
"v6.17.6",
"v6.17.5",
"v6.17.4"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-53288.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "6.12.91"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.13.0"
},
{
"fixed": "6.18.33"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.18.0"
},
{
"fixed": "7.0.10"
}
]
}
],
"package": {
"name": "Kernel",
"ecosystem": "Linux"
},
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-53288.json"
}
}
],
"modified": "2026-10-28T02:30:46.502922948Z",
"provider": "osv",
"references": [
"https://git.kernel.org/stable/c/4d8e74ad4585672489da6145b3328d415f50db82",
"https://git.kernel.org/stable/c/9fe9e3acaa14921b0cf0d6cc2de5b562499bf721",
"https://git.kernel.org/stable/c/a4ff33053da0a34b14abb5c96dc5a48379e26fce",
"https://git.kernel.org/stable/c/dcb89deed40ba55ff7020061712fdabf098cc2cc",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/53xxx/CVE-2026-53288.json",
"https://nvd.nist.gov/vuln/detail/CVE-2026-53288",
"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
],
"provider_metadata": {
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/53xxx/CVE-2026-53288.json"
}
},
"related_cves": [
{
"value": "CVE-2026-53288",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": null
},
"source_id": "core-osv",
"document_id": 514458,
"published_at": "2026-06-26T19:40:48.528+00:00"
}