{"id":"CVE-2021-3491","state":"PUBLISHED","title":"Linux kernel io_uring PROVIDE_BUFFERS MAX_RW_COUNT  bypass","description":"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).","publishedAt":"2021-06-04T01:40:20.936Z","updatedAt":"2024-09-16T22:09:25.883Z","severity":{"score":7.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H","source":"canonical"},"assigner":"canonical","products":["Linux Linux kernel"],"affected":[{"vendor":"Linux","product":"Linux kernel","versions":[{"version":"trunk","status":"affected","lessThan":"v5.13-rc4","versionType":"custom"},{"version":"linux-5.12.y","status":"affected","lessThan":"v5.12.4","versionType":"custom"},{"version":"linux-5.11.y","status":"affected","lessThan":"v5.11.21","versionType":"custom"},{"version":"linux-5.10.y","status":"affected","lessThan":"v5.10.37","versionType":"custom"},{"version":"v5.7-rc1","status":"affected","lessThan":"5.7*","versionType":"custom"}]}],"references":["https://ubuntu.com/security/notices/USN-4950-1","https://ubuntu.com/security/notices/USN-4949-1","https://www.openwall.com/lists/oss-security/2021/05/11/13","https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d1f82808877bb10d3deee7cf3374a4eb3fb582db","https://www.zerodayinitiative.com/advisories/ZDI-21-589/","https://security.netapp.com/advisory/ntap-20210716-0004/"],"weaknesses":["CWE-131"],"ingestedAt":"2026-10-29T19:48:55.807Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2021/3xxx/CVE-2021-3491.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.1","cveMetadata":{"cveId":"CVE-2021-3491","state":"PUBLISHED","datePublished":"2021-06-04T01:40:20.936Z","dateUpdated":"2024-09-16T22:09:25.883Z","assignerShortName":"canonical","assignerOrgId":"cc1ad9ee-3454-478d-9317-d3e869d708bc","dateReserved":"2021-04-09T00:00:00.000Z"},"containers":{"cna":{"title":"Linux kernel io_uring PROVIDE_BUFFERS MAX_RW_COUNT  bypass","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)."}],"affected":[{"vendor":"Linux","product":"Linux kernel","versions":[{"version":"trunk","status":"affected","lessThan":"v5.13-rc4","versionType":"custom"},{"version":"linux-5.12.y","status":"affected","lessThan":"v5.12.4","versionType":"custom"},{"version":"linux-5.11.y","status":"affected","lessThan":"v5.11.21","versionType":"custom"},{"version":"linux-5.10.y","status":"affected","lessThan":"v5.10.37","versionType":"custom"},{"version":"v5.7-rc1","status":"affected","lessThan":"5.7*","versionType":"custom"}]}],"references":[{"url":"https://ubuntu.com/security/notices/USN-4950-1","tags":["vendor-advisory","x_refsource_UBUNTU"]},{"url":"https://ubuntu.com/security/notices/USN-4949-1","tags":["vendor-advisory","x_refsource_UBUNTU"]},{"url":"https://www.openwall.com/lists/oss-security/2021/05/11/13","name":"[oss-security] CVE-2021-3491 - Linux kernel io_uring PROVIDE_BUFFERS MAX_RW_COUNT  bypass","tags":["mailing-list","x_refsource_MLIST"]},{"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_MISC"]},{"url":"https://security.netapp.com/advisory/ntap-20210716-0004/","tags":["x_refsource_CONFIRM"]}],"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":{"shortName":"canonical","dateUpdated":"2021-07-16T10:06:31.000Z","orgId":"cc1ad9ee-3454-478d-9317-d3e869d708bc"},"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","source":{"discovery":"EXTERNAL"},"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":[{"title":"CVE Program Container","references":[{"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","tags":["vendor-advisory","x_refsource_UBUNTU","x_transferred"]},{"url":"https://www.openwall.com/lists/oss-security/2021/05/11/13","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://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_MISC","x_transferred"]},{"url":"https://security.netapp.com/advisory/ntap-20210716-0004/","tags":["x_refsource_CONFIRM","x_transferred"]}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2024-08-03T16:53:17.728Z"}}]}}}