{"containers":{"cna":{"affected":[{"product":"Linux kernel","vendor":"Linux","versions":[{"lessThan":"v5.13-rc4","status":"affected","version":"trunk","versionType":"custom"},{"lessThan":"v5.12.4","status":"affected","version":"linux-5.12.y","versionType":"custom"},{"lessThan":"v5.11.21","status":"affected","version":"linux-5.11.y","versionType":"custom"},{"lessThan":"v5.10.37","status":"affected","version":"linux-5.10.y","versionType":"custom"},{"lessThan":"5.7*","status":"affected","version":"v5.7-rc1","versionType":"custom"}]}],"credits":[{"lang":"en","value":"Billy Jheng Bing-Jhong (@st424204) of STAR Labs working with Trend Micro's Zero Day Initiative"}],"datePublic":"2021-05-11T00:00:00.000Z","descriptions":[{"lang":"en","value":"The io_uring subsystem in the Linux kernel allowed the MAX_RW_COUNT limit to be bypassed in the PROVIDE_BUFFERS operation, which led to negative values being usedin mem_rw 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 (\"io_uring: truncate lengths larger than MAX_RW_COUNT 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 (\"io_uring: add IORING_OP_PROVIDE_BUFFERS\") (v5.7-rc1)."}],"metrics":[{"cvssV3_1":{"attackComplexity":"HIGH","attackVector":"LOCAL","availabilityImpact":"HIGH","baseScore":7.8,"baseSeverity":"HIGH","confidentialityImpact":"HIGH","integrityImpact":"HIGH","privilegesRequired":"LOW","scope":"CHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-131","description":"CWE-131 Incorrect Calculation of Buffer Size","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2021-07-16T10:06:31.000Z","orgId":"cc1ad9ee-3454-478d-9317-d3e869d708bc","shortName":"canonical"},"references":[{"tags":["vendor-advisory","x_refsource_UBUNTU"],"url":"https://ubuntu.com/security/notices/USN-4950-1"},{"tags":["vendor-advisory","x_refsource_UBUNTU"],"url":"https://ubuntu.com/security/notices/USN-4949-1"},{"name":"[oss-security] CVE-2021-3491 - Linux kernel io_uring PROVIDE_BUFFERS MAX_RW_COUNT  bypass","tags":["mailing-list","x_refsource_MLIST"],"url":"https://www.openwall.com/lists/oss-security/2021/05/11/13"},{"tags":["x_refsource_MISC"],"url":"https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d1f82808877bb10d3deee7cf3374a4eb3fb582db"},{"tags":["x_refsource_MISC"],"url":"https://www.zerodayinitiative.com/advisories/ZDI-21-589/"},{"tags":["x_refsource_CONFIRM"],"url":"https://security.netapp.com/advisory/ntap-20210716-0004/"}],"source":{"discovery":"EXTERNAL"},"title":"Linux kernel io_uring PROVIDE_BUFFERS MAX_RW_COUNT  bypass","x_generator":{"engine":"Vulnogram 0.0.9"},"x_legacyV4Record":{"CVE_data_meta":{"ASSIGNER":"security@ubuntu.com","DATE_PUBLIC":"2021-05-11 17:00:00 +0000","ID":"CVE-2021-3491","STATE":"PUBLIC","TITLE":"Linux kernel io_uring PROVIDE_BUFFERS MAX_RW_COUNT  bypass"},"affects":{"vendor":{"vendor_data":[{"product":{"product_data":[{"product_name":"Linux kernel","version":{"version_data":[{"version_affected":"<","version_name":"trunk","version_value":"v5.13-rc4"},{"version_affected":"<","version_name":"linux-5.12.y","version_value":"v5.12.4"},{"version_affected":"<","version_name":"linux-5.11.y","version_value":"v5.11.21"},{"version_affected":"<","version_name":"linux-5.10.y","version_value":"v5.10.37"},{"version_affected":">=","version_name":"5.7","version_value":"v5.7-rc1"}]}}]},"vendor_name":"Linux"}]}},"credit":[{"lang":"eng","value":"Billy Jheng Bing-Jhong (@st424204) of STAR Labs working with Trend Micro's Zero Day Initiative"}],"data_format":"MITRE","data_type":"CVE","data_version":"4.0","description":{"description_data":[{"lang":"eng","value":"The io_uring subsystem in the Linux kernel allowed the MAX_RW_COUNT limit to be bypassed in the PROVIDE_BUFFERS operation, which led to negative values being usedin mem_rw 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 (\"io_uring: truncate lengths larger than MAX_RW_COUNT 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 (\"io_uring: add IORING_OP_PROVIDE_BUFFERS\") (v5.7-rc1)."}]},"generator":{"engine":"Vulnogram 0.0.9"},"impact":{"cvss":{"attackComplexity":"HIGH","attackVector":"LOCAL","availabilityImpact":"HIGH","baseScore":7.8,"baseSeverity":"HIGH","confidentialityImpact":"HIGH","integrityImpact":"HIGH","privilegesRequired":"LOW","scope":"CHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H","version":"3.1"}},"problemtype":{"problemtype_data":[{"description":[{"lang":"eng","value":"CWE-131 Incorrect Calculation of Buffer Size"}]}]},"references":{"reference_data":[{"name":"https://ubuntu.com/security/notices/USN-4950-1","refsource":"UBUNTU","url":"https://ubuntu.com/security/notices/USN-4950-1"},{"name":"https://ubuntu.com/security/notices/USN-4949-1","refsource":"UBUNTU","url":"https://ubuntu.com/security/notices/USN-4949-1"},{"name":"[oss-security] CVE-2021-3491 - Linux kernel io_uring PROVIDE_BUFFERS MAX_RW_COUNT  bypass","refsource":"MLIST","url":"https://www.openwall.com/lists/oss-security/2021/05/11/13"},{"name":"https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d1f82808877bb10d3deee7cf3374a4eb3fb582db","refsource":"MISC","url":"https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d1f82808877bb10d3deee7cf3374a4eb3fb582db"},{"name":"https://www.zerodayinitiative.com/advisories/ZDI-21-589/","refsource":"MISC","url":"https://www.zerodayinitiative.com/advisories/ZDI-21-589/"},{"name":"https://security.netapp.com/advisory/ntap-20210716-0004/","refsource":"CONFIRM","url":"https://security.netapp.com/advisory/ntap-20210716-0004/"}]},"source":{"discovery":"EXTERNAL"}}},"adp":[{"providerMetadata":{"orgId":"af854a3a-2127-422b-91ae-364da2661108","shortName":"CVE","dateUpdated":"2024-08-03T16:53:17.728Z"},"title":"CVE Program Container","references":[{"tags":["vendor-advisory","x_refsource_UBUNTU","x_transferred"],"url":"https://ubuntu.com/security/notices/USN-4950-1"},{"tags":["vendor-advisory","x_refsource_UBUNTU","x_transferred"],"url":"https://ubuntu.com/security/notices/USN-4949-1"},{"name":"[oss-security] CVE-2021-3491 - Linux kernel io_uring PROVIDE_BUFFERS MAX_RW_COUNT  bypass","tags":["mailing-list","x_refsource_MLIST","x_transferred"],"url":"https://www.openwall.com/lists/oss-security/2021/05/11/13"},{"tags":["x_refsource_MISC","x_transferred"],"url":"https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d1f82808877bb10d3deee7cf3374a4eb3fb582db"},{"tags":["x_refsource_MISC","x_transferred"],"url":"https://www.zerodayinitiative.com/advisories/ZDI-21-589/"},{"tags":["x_refsource_CONFIRM","x_transferred"],"url":"https://security.netapp.com/advisory/ntap-20210716-0004/"}]}]},"cveMetadata":{"assignerOrgId":"cc1ad9ee-3454-478d-9317-d3e869d708bc","assignerShortName":"canonical","cveId":"CVE-2021-3491","datePublished":"2021-06-04T01:40:20.936Z","dateReserved":"2021-04-09T00:00:00.000Z","dateUpdated":"2024-09-16T22:09:25.883Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.1"}