347 lines
18 KiB
JSON
347 lines
18 KiB
JSON
{
|
||
"dataType": "CVE_RECORD",
|
||
"dataVersion": "5.2",
|
||
"cveMetadata": {
|
||
"cveId": "CVE-2022-49530",
|
||
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
|
||
"state": "PUBLISHED",
|
||
"assignerShortName": "Linux",
|
||
"dateReserved": "2025-02-26T02:08:31.588Z",
|
||
"datePublished": "2025-02-26T02:13:51.057Z",
|
||
"dateUpdated": "2026-08-05T08:55:26.829Z"
|
||
},
|
||
"containers": {
|
||
"cna": {
|
||
"providerMetadata": {
|
||
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
|
||
"shortName": "Linux",
|
||
"dateUpdated": "2026-08-05T08:55:26.829Z"
|
||
},
|
||
"descriptions": [
|
||
{
|
||
"lang": "en",
|
||
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/amd/pm: fix double free in si_parse_power_table()\n\nIn function si_parse_power_table(), array adev->pm.dpm.ps and its member\nis allocated. If the allocation of each member fails, the array itself\nis freed and returned with an error code. However, the array is later\nfreed again in si_dpm_fini() function which is called when the function\nreturns an error.\n\nThis leads to potential double free of the array adev->pm.dpm.ps, as\nwell as leak of its array members, since the members are not freed in\nthe allocation function and the array is not nulled when freed.\nIn addition adev->pm.dpm.num_ps, which keeps track of the allocated\narray member, is not updated until the member allocation is\nsuccessfully finished, this could also lead to either use after free,\nor uninitialized variable access in si_dpm_fini().\n\nFix this by postponing the free of the array until si_dpm_fini() and\nincrement adev->pm.dpm.num_ps everytime the array member is allocated."
|
||
}
|
||
],
|
||
"metrics": [
|
||
{
|
||
"cvssV3_1": {
|
||
"version": "3.1",
|
||
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
|
||
"baseScore": 7.8,
|
||
"baseSeverity": "HIGH"
|
||
},
|
||
"scenarios": [
|
||
{
|
||
"lang": "en",
|
||
"value": "AV:L - The bug is reached only during local amdgpu PCI probe (amdgpu_device_ip_init → si_dpm_sw_init → si_dpm_init → si_parse_power_table) on Southern Islands GPUs; suspend/resume and GPU reset use hw callbacks and do not re-parse the power table, and no network path exists.\nAC:L - A local attacker can induce system-wide memory pressure so a mid-loop GFP_KERNEL kzalloc of struct si_ps fails; once that happens, the premature kfree of adev->pm.dpm.ps followed by si_dpm_fini’s second free is deterministic with no uncontrolled race.\nPR:L - Scored from an unprivileged local account on a shared system with an affected SI GPU under the higher-severity interpretation, consistent with sibling double-frees CVE-2023-52691 and CVE-2023-52469; real root is not required for the attacker’s privileges prior to exploitation.\nUI:N - No separate victim action such as opening a file or mounting a device is required; the flaw is triggered by driver initialization under attacker-influenced memory conditions.\nS:U - Impact remains within the host kernel’s security authority as standard kernel heap corruption / privilege escalation, with no VM escape, IOMMU bypass, or other security-boundary crossing.\nC:H - Double-free of the adev->pm.dpm.ps heap object (with a dangling non-NULL pointer) is UAF-class memory corruption; reclaiming the freed slab enables arbitrary kernel read primitives.\nI:H - Double-free freelist corruption in the kernel allocator can be abused for overlapping objects and arbitrary write / control-flow hijacking, enabling full integrity compromise and privilege escalation.\nA:H - The double-free reliably corrupts kernel heap state and can oops/panic the kernel even when not fully exploited for code execution, which is Availability High under kernel CVSS guidance."
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"affected": [
|
||
{
|
||
"product": "Linux",
|
||
"vendor": "Linux",
|
||
"defaultStatus": "unaffected",
|
||
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
|
||
"programFiles": [
|
||
"drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c"
|
||
],
|
||
"versions": [
|
||
{
|
||
"version": "841686df9f7d2942cfd94d024b8591fa3f74ef7c",
|
||
"lessThan": "2615464854505188f909d0c07c37a6623693b5c7",
|
||
"status": "affected",
|
||
"versionType": "git"
|
||
},
|
||
{
|
||
"version": "841686df9f7d2942cfd94d024b8591fa3f74ef7c",
|
||
"lessThan": "6c5bdaa1325be7f04b79ea992ab216739192d342",
|
||
"status": "affected",
|
||
"versionType": "git"
|
||
},
|
||
{
|
||
"version": "841686df9f7d2942cfd94d024b8591fa3f74ef7c",
|
||
"lessThan": "c0e811c4ccf3b42705976285e3a94cc82dea7300",
|
||
"status": "affected",
|
||
"versionType": "git"
|
||
},
|
||
{
|
||
"version": "841686df9f7d2942cfd94d024b8591fa3f74ef7c",
|
||
"lessThan": "af832028af6f44c6c45645757079c4ed6884ade5",
|
||
"status": "affected",
|
||
"versionType": "git"
|
||
},
|
||
{
|
||
"version": "841686df9f7d2942cfd94d024b8591fa3f74ef7c",
|
||
"lessThan": "ca1ce206894dd976275c78ee38dbc19873f22de9",
|
||
"status": "affected",
|
||
"versionType": "git"
|
||
},
|
||
{
|
||
"version": "841686df9f7d2942cfd94d024b8591fa3f74ef7c",
|
||
"lessThan": "a5ce7051db044290b1a95045ff03c249005a3aa4",
|
||
"status": "affected",
|
||
"versionType": "git"
|
||
},
|
||
{
|
||
"version": "841686df9f7d2942cfd94d024b8591fa3f74ef7c",
|
||
"lessThan": "fd2eff8b9dcbe469c3b7bbbc7083ab5ed94de07b",
|
||
"status": "affected",
|
||
"versionType": "git"
|
||
},
|
||
{
|
||
"version": "841686df9f7d2942cfd94d024b8591fa3f74ef7c",
|
||
"lessThan": "43eb9b667b95f2a31c63e8949b0d2161b9be59c3",
|
||
"status": "affected",
|
||
"versionType": "git"
|
||
},
|
||
{
|
||
"version": "841686df9f7d2942cfd94d024b8591fa3f74ef7c",
|
||
"lessThan": "f3fa2becf2fc25b6ac7cf8d8b1a2e4a86b3b72bd",
|
||
"status": "affected",
|
||
"versionType": "git"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"product": "Linux",
|
||
"vendor": "Linux",
|
||
"defaultStatus": "affected",
|
||
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
|
||
"programFiles": [
|
||
"drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c"
|
||
],
|
||
"versions": [
|
||
{
|
||
"version": "4.9",
|
||
"status": "affected"
|
||
},
|
||
{
|
||
"version": "0",
|
||
"lessThan": "4.9",
|
||
"status": "unaffected",
|
||
"versionType": "semver"
|
||
},
|
||
{
|
||
"version": "4.9.318",
|
||
"lessThanOrEqual": "4.9.*",
|
||
"status": "unaffected",
|
||
"versionType": "semver"
|
||
},
|
||
{
|
||
"version": "4.14.283",
|
||
"lessThanOrEqual": "4.14.*",
|
||
"status": "unaffected",
|
||
"versionType": "semver"
|
||
},
|
||
{
|
||
"version": "4.19.247",
|
||
"lessThanOrEqual": "4.19.*",
|
||
"status": "unaffected",
|
||
"versionType": "semver"
|
||
},
|
||
{
|
||
"version": "5.4.198",
|
||
"lessThanOrEqual": "5.4.*",
|
||
"status": "unaffected",
|
||
"versionType": "semver"
|
||
},
|
||
{
|
||
"version": "5.10.121",
|
||
"lessThanOrEqual": "5.10.*",
|
||
"status": "unaffected",
|
||
"versionType": "semver"
|
||
},
|
||
{
|
||
"version": "5.15.46",
|
||
"lessThanOrEqual": "5.15.*",
|
||
"status": "unaffected",
|
||
"versionType": "semver"
|
||
},
|
||
{
|
||
"version": "5.17.14",
|
||
"lessThanOrEqual": "5.17.*",
|
||
"status": "unaffected",
|
||
"versionType": "semver"
|
||
},
|
||
{
|
||
"version": "5.18.3",
|
||
"lessThanOrEqual": "5.18.*",
|
||
"status": "unaffected",
|
||
"versionType": "semver"
|
||
},
|
||
{
|
||
"version": "5.19",
|
||
"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": "4.9",
|
||
"versionEndExcluding": "4.9.318"
|
||
},
|
||
{
|
||
"vulnerable": true,
|
||
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
||
"versionStartIncluding": "4.9",
|
||
"versionEndExcluding": "4.14.283"
|
||
},
|
||
{
|
||
"vulnerable": true,
|
||
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
||
"versionStartIncluding": "4.9",
|
||
"versionEndExcluding": "4.19.247"
|
||
},
|
||
{
|
||
"vulnerable": true,
|
||
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
||
"versionStartIncluding": "4.9",
|
||
"versionEndExcluding": "5.4.198"
|
||
},
|
||
{
|
||
"vulnerable": true,
|
||
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
||
"versionStartIncluding": "4.9",
|
||
"versionEndExcluding": "5.10.121"
|
||
},
|
||
{
|
||
"vulnerable": true,
|
||
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
||
"versionStartIncluding": "4.9",
|
||
"versionEndExcluding": "5.15.46"
|
||
},
|
||
{
|
||
"vulnerable": true,
|
||
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
||
"versionStartIncluding": "4.9",
|
||
"versionEndExcluding": "5.17.14"
|
||
},
|
||
{
|
||
"vulnerable": true,
|
||
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
||
"versionStartIncluding": "4.9",
|
||
"versionEndExcluding": "5.18.3"
|
||
},
|
||
{
|
||
"vulnerable": true,
|
||
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
||
"versionStartIncluding": "4.9",
|
||
"versionEndExcluding": "5.19"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"references": [
|
||
{
|
||
"url": "https://git.kernel.org/stable/c/2615464854505188f909d0c07c37a6623693b5c7"
|
||
},
|
||
{
|
||
"url": "https://git.kernel.org/stable/c/6c5bdaa1325be7f04b79ea992ab216739192d342"
|
||
},
|
||
{
|
||
"url": "https://git.kernel.org/stable/c/c0e811c4ccf3b42705976285e3a94cc82dea7300"
|
||
},
|
||
{
|
||
"url": "https://git.kernel.org/stable/c/af832028af6f44c6c45645757079c4ed6884ade5"
|
||
},
|
||
{
|
||
"url": "https://git.kernel.org/stable/c/ca1ce206894dd976275c78ee38dbc19873f22de9"
|
||
},
|
||
{
|
||
"url": "https://git.kernel.org/stable/c/a5ce7051db044290b1a95045ff03c249005a3aa4"
|
||
},
|
||
{
|
||
"url": "https://git.kernel.org/stable/c/fd2eff8b9dcbe469c3b7bbbc7083ab5ed94de07b"
|
||
},
|
||
{
|
||
"url": "https://git.kernel.org/stable/c/43eb9b667b95f2a31c63e8949b0d2161b9be59c3"
|
||
},
|
||
{
|
||
"url": "https://git.kernel.org/stable/c/f3fa2becf2fc25b6ac7cf8d8b1a2e4a86b3b72bd"
|
||
}
|
||
],
|
||
"title": "drm/amd/pm: fix double free in si_parse_power_table()",
|
||
"x_generator": {
|
||
"engine": "bippy-1.2.0"
|
||
}
|
||
},
|
||
"adp": [
|
||
{
|
||
"metrics": [
|
||
{
|
||
"cvssV3_1": {
|
||
"scope": "UNCHANGED",
|
||
"version": "3.1",
|
||
"baseScore": 7.8,
|
||
"attackVector": "LOCAL",
|
||
"baseSeverity": "HIGH",
|
||
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
|
||
"integrityImpact": "HIGH",
|
||
"userInteraction": "NONE",
|
||
"attackComplexity": "LOW",
|
||
"availabilityImpact": "HIGH",
|
||
"privilegesRequired": "LOW",
|
||
"confidentialityImpact": "HIGH"
|
||
}
|
||
},
|
||
{
|
||
"other": {
|
||
"type": "ssvc",
|
||
"content": {
|
||
"id": "CVE-2022-49530",
|
||
"role": "CISA Coordinator",
|
||
"options": [
|
||
{
|
||
"Exploitation": "none"
|
||
},
|
||
{
|
||
"Automatable": "no"
|
||
},
|
||
{
|
||
"Technical Impact": "total"
|
||
}
|
||
],
|
||
"version": "2.0.3",
|
||
"timestamp": "2025-10-01T19:37:58.672887Z"
|
||
}
|
||
}
|
||
}
|
||
],
|
||
"problemTypes": [
|
||
{
|
||
"descriptions": [
|
||
{
|
||
"lang": "en",
|
||
"type": "CWE",
|
||
"cweId": "CWE-415",
|
||
"description": "CWE-415 Double Free"
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"title": "CISA ADP Vulnrichment",
|
||
"providerMetadata": {
|
||
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
|
||
"shortName": "CISA-ADP",
|
||
"dateUpdated": "2025-10-01T19:46:41.373Z"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
} |