MIPS: pgalloc: fix memory leak caused by pgd_free()
In the Linux kernel, the following vulnerability has been resolved: MIPS: pgalloc: fix memory leak caused by pgd_free() pgd page is freed by generic implementation pgd_free() since commit f9cb654cb550 ("asm-generic: pgalloc: provide generic pgd_free()"), however, there are scenarios that the system uses more than one page as the pgd table, in such cases the generic implementation pgd_free() won't be applicable anymore. For example, when PAGE_SIZE_4KB is enabled and MIPS_VA_BITS_48 is not enabled in a 64bit system, the macro "PGD_ORDER" will be set as "1", which will cause allocating two pages as the pgd table. Well, at the same time, the generic implementation pgd_free() just free one pgd page, which will result in the memory leak. The memory leak can be easily detected by executing shell command: "while true; do ls > /dev/null; grep MemFree /proc/meminfo; done"
- Products
- Kernel
- Affected versions
- Not specified
- Fixed versions
- 5.10.110, 5.15.33, 5.16.19, 5.17.2
- CVEs
- CVE-2022-49210
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 5 Nov 2026, 17:40 UTC · Revision 1
Source evidence
MIPS: pgalloc: fix memory leak caused by pgd_free()
core-osv · Original sourcePublished 26 Feb 2025, 01:55 UTC
In the Linux kernel, the following vulnerability has been resolved: MIPS: pgalloc: fix memory leak caused by pgd_free() pgd page is freed by generic implementation pgd_free() since commit f9cb654cb550 ("asm-generic: pgalloc: provide generic pgd_free()"), however, there are scenarios that the system uses more than one page as the pgd table, in such cases the generic implementation pgd_free() won't be applicable anymore. For example, when PAGE_SIZE_4KB is enabled and MIPS_VA_BITS_48 is not enabled in a 64bit system, the macro "PGD_ORDER" will be set as "1", which will cause allocating two pages as the pgd table. Well, at the same time, the generic implementation pgd_free() just free one pgd page, which will result in the memory leak. The memory leak can be easily detected by executing shell command: "while true; do ls > /dev/null; grep MemFree /proc/meminfo; done"
osv:CVE-2022-49210
Kernel
Fixed versions: 5.10.110, 5.15.33, 5.16.19, 5.17.2
Complete source record
{
"id": "cc325b3ba521d27d12a5e2dd7f49d4d755ad397bcdfd8918cfc7c39e76dda588",
"url": "https://osv.dev/vulnerability/CVE-2022-49210",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "MIPS: pgalloc: fix memory leak caused by pgd_free()",
"summary": "In the Linux kernel, the following vulnerability has been resolved: MIPS: pgalloc: fix memory leak caused by pgd_free() pgd page is freed by generic implementation pgd_free() since commit f9cb654cb550 (\"asm-generic: pgalloc: provide generic pgd_free()\"), however, there are scenarios that the system uses more than one page as the pgd table, in such cases the generic implementation pgd_free() won't be applicable anymore. For example, when PAGE_SIZE_4KB is enabled and MIPS_VA_BITS_48 is not enabled in a 64bit system, the macro \"PGD_ORDER\" will be set as \"1\", which will cause allocating two pages as the pgd table. Well, at the same time, the generic implementation pgd_free() just free one pgd page, which will result in the memory leak. The memory leak can be easily detected by executing shell command: \"while true; do ls > /dev/null; grep MemFree /proc/meminfo; done\"",
"evidence": "osv:CVE-2022-49210",
"products": [
{
"name": {
"value": "Kernel",
"evidence": "/affected/1/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "5.10.110",
"evidence": "/affected/1/ranges"
},
{
"value": "5.15.33",
"evidence": "/affected/1/ranges"
},
{
"value": "5.16.19",
"evidence": "/affected/1/ranges"
},
{
"value": "5.17.2",
"evidence": "/affected/1/ranges"
}
],
"affected_versions": []
}
],
"severity": "medium",
"structured": {
"id": "CVE-2022-49210",
"aliases": [
"CVE-2022-49210"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "f9cb654cb550b7b87e8608b14fc3eca432429ffe"
},
{
"fixed": "fa3d44424579972cc7c4fac3d9cf227798ebdfa0"
},
{
"fixed": "d29cda15cab086d82d692de016f7249545d4b6b4"
},
{
"fixed": "5a8501d34b261906e4c76ec9da679f2cb4d309ed"
},
{
"fixed": "1bf0d78c8cc3cf615a6e7bf33ada70b73592f0a1"
},
{
"fixed": "2bc5bab9a763d520937e4f3fe8df51c6a1eceb97"
}
]
}
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2022-49210.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.9.0"
},
{
"fixed": "5.10.110"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.11.0"
},
{
"fixed": "5.15.33"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.16.0"
},
{
"fixed": "5.16.19"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.17.0"
},
{
"fixed": "5.17.2"
}
]
}
],
"package": {
"name": "Kernel",
"ecosystem": "Linux"
},
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2022-49210.json"
}
}
],
"modified": "2026-10-28T02:30:44.929646581Z",
"provider": "osv",
"references": [
"https://git.kernel.org/stable/c/1bf0d78c8cc3cf615a6e7bf33ada70b73592f0a1",
"https://git.kernel.org/stable/c/2bc5bab9a763d520937e4f3fe8df51c6a1eceb97",
"https://git.kernel.org/stable/c/5a8501d34b261906e4c76ec9da679f2cb4d309ed",
"https://git.kernel.org/stable/c/d29cda15cab086d82d692de016f7249545d4b6b4",
"https://git.kernel.org/stable/c/fa3d44424579972cc7c4fac3d9cf227798ebdfa0",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/49xxx/CVE-2022-49210.json",
"https://nvd.nist.gov/vuln/detail/CVE-2022-49210",
"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/2022/49xxx/CVE-2022-49210.json"
}
},
"related_cves": [
{
"value": "CVE-2022-49210",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 512559,
"published_at": "2025-02-26T01:55:47.679+00:00"
}