CVE-2026-31573 (GCVE-0-2026-31573)
Vulnerability from cvelistv5 – Published: 2026-04-24 14:35 – Updated: 2026-04-24 14:35
VLAI?
Title
media: verisilicon: Fix kernel panic due to __initconst misuse
Summary
In the Linux kernel, the following vulnerability has been resolved:
media: verisilicon: Fix kernel panic due to __initconst misuse
Fix a kernel panic when probing the driver as a module:
Unable to handle kernel paging request at virtual address
ffffd9c18eb05000
of_find_matching_node_and_match+0x5c/0x1a0
hantro_probe+0x2f4/0x7d0 [hantro_vpu]
The imx8mq_vpu_shared_resources array is referenced by variant
structures through their shared_devices field. When built as a
module, __initconst causes this data to be freed after module
init, but it's later accessed during probe, causing a page fault.
The imx8mq_vpu_shared_resources is referenced from non-init code,
so keeping __initconst or __initconst_or_module here is wrong.
Drop the __initconst annotation and let it live in the normal .rodata
section.
A bug of __initconst called from regular non-init probe code
leading to bugs during probe deferrals or during unbind-bind cycles.
Severity ?
No CVSS data available.
Assigner
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/media/platform/verisilicon/imx8m_vpu_hw.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1e7e9119cf9b0d8585b27653b1a6dc31397c252e",
"status": "affected",
"version": "286d629d10640bc22f3bf46aa4f356eb7975e862",
"versionType": "git"
},
{
"lessThan": "e8d97c270cb46a2a88739019d0f8547adc7d97da",
"status": "affected",
"version": "e0203ddf9af7c8e170e1e99ce83b4dc07f0cd765",
"versionType": "git"
}
]
},
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/media/platform/verisilicon/imx8m_vpu_hw.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "6.19.11",
"status": "affected",
"version": "6.19.6",
"versionType": "semver"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.19.11",
"versionStartIncluding": "6.19.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmedia: verisilicon: Fix kernel panic due to __initconst misuse\n\nFix a kernel panic when probing the driver as a module:\n\n Unable to handle kernel paging request at virtual address\n ffffd9c18eb05000\n of_find_matching_node_and_match+0x5c/0x1a0\n hantro_probe+0x2f4/0x7d0 [hantro_vpu]\n\nThe imx8mq_vpu_shared_resources array is referenced by variant\nstructures through their shared_devices field. When built as a\nmodule, __initconst causes this data to be freed after module\ninit, but it\u0027s later accessed during probe, causing a page fault.\n\nThe imx8mq_vpu_shared_resources is referenced from non-init code,\nso keeping __initconst or __initconst_or_module here is wrong.\n\nDrop the __initconst annotation and let it live in the normal .rodata\nsection.\n\nA bug of __initconst called from regular non-init probe code\nleading to bugs during probe deferrals or during unbind-bind cycles."
}
],
"providerMetadata": {
"dateUpdated": "2026-04-24T14:35:51.421Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1e7e9119cf9b0d8585b27653b1a6dc31397c252e"
},
{
"url": "https://git.kernel.org/stable/c/e8d97c270cb46a2a88739019d0f8547adc7d97da"
}
],
"title": "media: verisilicon: Fix kernel panic due to __initconst misuse",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-31573",
"datePublished": "2026-04-24T14:35:51.421Z",
"dateReserved": "2026-03-09T15:48:24.119Z",
"dateUpdated": "2026-04-24T14:35:51.421Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"epss": {
"cve": "CVE-2026-31573",
"date": "2026-04-25",
"epss": "0.00018",
"percentile": "0.04987"
},
"nvd": "{\"cve\":{\"id\":\"CVE-2026-31573\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-04-24T15:16:31.857\",\"lastModified\":\"2026-04-24T17:51:40.810\",\"vulnStatus\":\"Awaiting Analysis\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nmedia: verisilicon: Fix kernel panic due to __initconst misuse\\n\\nFix a kernel panic when probing the driver as a module:\\n\\n Unable to handle kernel paging request at virtual address\\n ffffd9c18eb05000\\n of_find_matching_node_and_match+0x5c/0x1a0\\n hantro_probe+0x2f4/0x7d0 [hantro_vpu]\\n\\nThe imx8mq_vpu_shared_resources array is referenced by variant\\nstructures through their shared_devices field. When built as a\\nmodule, __initconst causes this data to be freed after module\\ninit, but it\u0027s later accessed during probe, causing a page fault.\\n\\nThe imx8mq_vpu_shared_resources is referenced from non-init code,\\nso keeping __initconst or __initconst_or_module here is wrong.\\n\\nDrop the __initconst annotation and let it live in the normal .rodata\\nsection.\\n\\nA bug of __initconst called from regular non-init probe code\\nleading to bugs during probe deferrals or during unbind-bind cycles.\"}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/1e7e9119cf9b0d8585b27653b1a6dc31397c252e\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/e8d97c270cb46a2a88739019d0f8547adc7d97da\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
}
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
Loading…