In the Linux kernel, the following vulnerability has been resolved:
iommu/amd/iommuv2: Fix pasidstate refcount dec hit 0 warning on pasid unbind
When unbinding pasid - a race condition exists vs outstanding page faults.
To prevent this, the pasid_state object contains a refcount. * set to 1 on pasid bind * incremented on each ppr notification start * decremented on each ppr notification done * decremented on pasid unbind
Since refcountdec assumes that refcount will never reach 0: the current implementation causes the following to be invoked on pasid unbind: REFCOUNTWARN("decrement hit 0; leaking memory")
Fix this issue by changing refcountdec to refcountdecandtest to explicitly handle refcount=1.
{
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/53xxx/CVE-2023-53501.json"
}"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2023-53501.json"
[
{
"id": "CVE-2023-53501-1afd12c1",
"target": {
"function": "put_pasid_state_wait",
"file": "drivers/iommu/amd/iommu_v2.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a50d60b8f2aff46dd7c7edb4a5835cdc4d432c22",
"digest": {
"function_hash": "27549943489426976684960040244367961144",
"length": 157.0
},
"signature_type": "Function"
},
{
"id": "CVE-2023-53501-340105b5",
"target": {
"function": "put_pasid_state_wait",
"file": "drivers/iommu/amd/iommu_v2.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9ccc51be3126b25cfe9351dbffde946c925cc28a",
"digest": {
"function_hash": "27549943489426976684960040244367961144",
"length": 157.0
},
"signature_type": "Function"
},
{
"id": "CVE-2023-53501-809ca76b",
"target": {
"file": "drivers/iommu/amd/iommu_v2.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@534103bcd52ca9c1fecbc70e717b4a538dc4ded8",
"digest": {
"threshold": 0.9,
"line_hashes": [
"202903671457099793163618007315205797383",
"138818796410511711022102277580474346071",
"151314674619640767253672328481311338542",
"157773198344314086882562294808461803406",
"309671446595942992889277934794014641588"
]
},
"signature_type": "Line"
},
{
"id": "CVE-2023-53501-88f99d32",
"target": {
"file": "drivers/iommu/amd/iommu_v2.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a50d60b8f2aff46dd7c7edb4a5835cdc4d432c22",
"digest": {
"threshold": 0.9,
"line_hashes": [
"202903671457099793163618007315205797383",
"138818796410511711022102277580474346071",
"151314674619640767253672328481311338542",
"157773198344314086882562294808461803406",
"309671446595942992889277934794014641588"
]
},
"signature_type": "Line"
},
{
"id": "CVE-2023-53501-91f9d7c9",
"target": {
"function": "put_pasid_state_wait",
"file": "drivers/iommu/amd/iommu_v2.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@98d86bf32187db27946ca817c2467a5f2f7aa02f",
"digest": {
"function_hash": "27549943489426976684960040244367961144",
"length": 157.0
},
"signature_type": "Function"
},
{
"id": "CVE-2023-53501-a40b9573",
"target": {
"file": "drivers/iommu/amd/iommu_v2.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9ccc51be3126b25cfe9351dbffde946c925cc28a",
"digest": {
"threshold": 0.9,
"line_hashes": [
"202903671457099793163618007315205797383",
"138818796410511711022102277580474346071",
"151314674619640767253672328481311338542",
"157773198344314086882562294808461803406",
"309671446595942992889277934794014641588"
]
},
"signature_type": "Line"
},
{
"id": "CVE-2023-53501-f6e5122b",
"target": {
"file": "drivers/iommu/amd/iommu_v2.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@98d86bf32187db27946ca817c2467a5f2f7aa02f",
"digest": {
"threshold": 0.9,
"line_hashes": [
"202903671457099793163618007315205797383",
"138818796410511711022102277580474346071",
"151314674619640767253672328481311338542",
"157773198344314086882562294808461803406",
"309671446595942992889277934794014641588"
]
},
"signature_type": "Line"
},
{
"id": "CVE-2023-53501-f7587c2b",
"target": {
"function": "put_pasid_state_wait",
"file": "drivers/iommu/amd/iommu_v2.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@534103bcd52ca9c1fecbc70e717b4a538dc4ded8",
"digest": {
"function_hash": "27549943489426976684960040244367961144",
"length": 157.0
},
"signature_type": "Function"
}
]