The iouring subsystem in the Linux kernel allowed the MAXRWCOUNT limit to be bypassed in the PROVIDEBUFFERS operation, which led to negative values being usedin memrw when reading /proc/<PID>/mem. This could be used to create a heap overflow leading to arbitrary code execution in the kernel. It was addressed via commit d1f82808877b ("iouring: truncate lengths larger than MAXRWCOUNT on provide buffers") (v5.13-rc1) and backported to the stable kernels in v5.12.4, v5.11.21, and v5.10.37. It was introduced in ddf0322db79c ("iouring: add IORINGOPPROVIDEBUFFERS") (v5.7-rc1).
[
{
"events": [
{
"introduced": "5.7"
},
{
"fixed": "5.10.37"
}
]
},
{
"events": [
{
"introduced": "5.11"
},
{
"fixed": "5.11.21"
}
]
},
{
"events": [
{
"introduced": "5.12"
},
{
"fixed": "5.12.4"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "20.04"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "20.10"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "21.04"
}
]
}
]
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2021-3491.json"