---
cve: "CVE-2021-47012"
severity: "HIGH"
cvss: 7.8
epss: "27%"
vendor: "Linux"
kev: false
exploited: false
published: "2024-02-28 09:15:38"
tags: [cve, security, high]
source: tsecurity.de CVE-Dossier
exported: "2026-09-13T04:43:56+02:00"
---

# CVE-2021-47012

> 7.8 HIGH

## Beschreibung

In the Linux kernel, the following vulnerability has been resolved:

RDMA/siw: Fix a use after free in siw_alloc_mr

Our code analyzer reported a UAF.

In siw_alloc_mr(), it calls siw_mr_add_mem(mr,..). In the implementation of
siw_mr_add_mem(), mem is assigned to mr->mem and then mem is freed via
kfree(mem) if xa_alloc_cyclic() failed. Here, mr->mem still point to a
freed object. After, the execution continue up to the err_out branch of
siw_alloc_mr, and the freed mr->mem is used in siw_mr_drop_mem(mr).

My patch moves "mr->mem = mem" behind the if (xa_alloc_cyclic(..)

## CVSS-Vektor

```
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
```

| Metrik | Wert | Bewertung |
|---|---|---|
| AV Angriffsvektor | Lokal | good |
| AC Komplexität | Gering | bad |
| PR Privilegien | Gering | warn |
| UI Interaktion | Keine | bad |
| S Scope | Unverändert | good |
| C Vertraulichkeit | Hoch | bad |
| I Integrität | Hoch | bad |
| A Verfügbarkeit | Hoch | bad |

## Referenzen

- <https://git.kernel.org/stable/c/30b9e92d0b5e5d5dc1101ab856c17009537cbca4>
- <https://git.kernel.org/stable/c/608a4b90ece039940e9425ee2b39c8beff27e00c>
- <https://git.kernel.org/stable/c/3e22b88e02c194f6c80867abfef5cc09383461f4>
- <https://git.kernel.org/stable/c/ad9ce7188432650469a6c7625bf479f5ed0b6155>
- <https://git.kernel.org/stable/c/3093ee182f01689b89e9f8797b321603e5de4f63>

---
_Exportiert aus dem [tsecurity.de CVE-Dossier](https://tsecurity.de/cve?cve=CVE-2021-47012) · Datenquellen: EUVD (ENISA), NVD, OSV, CISA KEV, FIRST EPSS, Exploit-DB, BSI BITS_
