{"id":"CVE-2021-3490","state":"PUBLISHED","title":"Linux kernel eBPF bitwise ops ALU32 bounds tracking","description":"The eBPF ALU32 bounds tracking for bitwise ops (AND, OR and XOR) in the Linux kernel did not properly update 32-bit bounds, which could be turned into out of bounds reads and writes in the Linux kernel and therefore, arbitrary code execution. This issue was fixed via commit 049c4e13714e (\"bpf: Fix alu32 const subreg bound tracking on bitwise operations\") (v5.13-rc4) and backported to the stable kernels in v5.12.4, v5.11.21, and v5.10.37. The AND/OR issues were introduced by commit 3f50f132d840 (\"bpf: Verifier, do explicit ALU32 bounds tracking\") (5.7-rc1) and the XOR variant was introduced by 2921c90d4718 (\"bpf:Fix a verifier failure with xor\") ( 5.10-rc1).","publishedAt":"2021-06-04T01:40:20.129Z","updatedAt":"2024-09-16T22:29:57.625Z","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/11","https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf.git/commit/?id=049c4e13714ecbca567b4d5f6d563f05d431c80e","https://www.zerodayinitiative.com/advisories/ZDI-21-606/","https://security.netapp.com/advisory/ntap-20210716-0004/","http://packetstormsecurity.com/files/164015/Linux-eBPF-ALU32-32-bit-Invalid-Bounds-Tracking-Local-Privilege-Escalation.html"],"weaknesses":["CWE-787","CWE-20"],"ingestedAt":"2026-10-29T19:48:55.807Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2021/3xxx/CVE-2021-3490.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.1","cveMetadata":{"cveId":"CVE-2021-3490","state":"PUBLISHED","datePublished":"2021-06-04T01:40:20.129Z","dateUpdated":"2024-09-16T22:29:57.625Z","assignerShortName":"canonical","assignerOrgId":"cc1ad9ee-3454-478d-9317-d3e869d708bc","dateReserved":"2021-04-09T00:00:00.000Z"},"containers":{"cna":{"title":"Linux kernel eBPF bitwise ops ALU32 bounds tracking","descriptions":[{"lang":"en","value":"The eBPF ALU32 bounds tracking for bitwise ops (AND, OR and XOR) in the Linux kernel did not properly update 32-bit bounds, which could be turned into out of bounds reads and writes in the Linux kernel and therefore, arbitrary code execution. This issue was fixed via commit 049c4e13714e (\"bpf: Fix alu32 const subreg bound tracking on bitwise operations\") (v5.13-rc4) and backported to the stable kernels in v5.12.4, v5.11.21, and v5.10.37. The AND/OR issues were introduced by commit 3f50f132d840 (\"bpf: Verifier, do explicit ALU32 bounds tracking\") (5.7-rc1) and the XOR variant was introduced by 2921c90d4718 (\"bpf:Fix a verifier failure with xor\") ( 5.10-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/11","name":"[oss-security] CVE-2021-3490 - Linux kernel eBPF bitwise ops ALU32 bounds tracking","tags":["mailing-list","x_refsource_MLIST"]},{"url":"https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf.git/commit/?id=049c4e13714ecbca567b4d5f6d563f05d431c80e","tags":["x_refsource_MISC"]},{"url":"https://www.zerodayinitiative.com/advisories/ZDI-21-606/","tags":["x_refsource_MISC"]},{"url":"https://security.netapp.com/advisory/ntap-20210716-0004/","tags":["x_refsource_CONFIRM"]},{"url":"http://packetstormsecurity.com/files/164015/Linux-eBPF-ALU32-32-bit-Invalid-Bounds-Tracking-Local-Privilege-Escalation.html","tags":["x_refsource_MISC"]}],"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-787","description":"CWE-787 Out-of-bounds Write","lang":"en","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-20","description":"CWE-20 Improper Input Validation","lang":"en","type":"CWE"}]}],"providerMetadata":{"shortName":"canonical","dateUpdated":"2021-09-01T17:06:42.000Z","orgId":"cc1ad9ee-3454-478d-9317-d3e869d708bc"},"credits":[{"lang":"en","value":"Manfred Paul (@_manfp) of the RedRocket CTF team (@redrocket_ctf) 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-3490","STATE":"PUBLIC","TITLE":"Linux kernel eBPF bitwise ops ALU32 bounds tracking"},"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":"Manfred Paul (@_manfp) of the RedRocket CTF team (@redrocket_ctf) 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 eBPF ALU32 bounds tracking for bitwise ops (AND, OR and XOR) in the Linux kernel did not properly update 32-bit bounds, which could be turned into out of bounds reads and writes in the Linux kernel and therefore, arbitrary code execution. This issue was fixed via commit 049c4e13714e (\"bpf: Fix alu32 const subreg bound tracking on bitwise operations\") (v5.13-rc4) and backported to the stable kernels in v5.12.4, v5.11.21, and v5.10.37. The AND/OR issues were introduced by commit 3f50f132d840 (\"bpf: Verifier, do explicit ALU32 bounds tracking\") (5.7-rc1) and the XOR variant was introduced by 2921c90d4718 (\"bpf:Fix a verifier failure with xor\") ( 5.10-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-787 Out-of-bounds Write"}]},{"description":[{"lang":"eng","value":"CWE-20 Improper Input Validation"}]}]},"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-3490 - Linux kernel eBPF bitwise ops ALU32 bounds tracking","refsource":"MLIST","url":"https://www.openwall.com/lists/oss-security/2021/05/11/11"},{"name":"https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf.git/commit/?id=049c4e13714ecbca567b4d5f6d563f05d431c80e","refsource":"MISC","url":"https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf.git/commit/?id=049c4e13714ecbca567b4d5f6d563f05d431c80e"},{"name":"https://www.zerodayinitiative.com/advisories/ZDI-21-606/","refsource":"MISC","url":"https://www.zerodayinitiative.com/advisories/ZDI-21-606/"},{"name":"https://security.netapp.com/advisory/ntap-20210716-0004/","refsource":"CONFIRM","url":"https://security.netapp.com/advisory/ntap-20210716-0004/"},{"name":"http://packetstormsecurity.com/files/164015/Linux-eBPF-ALU32-32-bit-Invalid-Bounds-Tracking-Local-Privilege-Escalation.html","refsource":"MISC","url":"http://packetstormsecurity.com/files/164015/Linux-eBPF-ALU32-32-bit-Invalid-Bounds-Tracking-Local-Privilege-Escalation.html"}]},"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/11","name":"[oss-security] CVE-2021-3490 - Linux kernel eBPF bitwise ops ALU32 bounds tracking","tags":["mailing-list","x_refsource_MLIST","x_transferred"]},{"url":"https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf.git/commit/?id=049c4e13714ecbca567b4d5f6d563f05d431c80e","tags":["x_refsource_MISC","x_transferred"]},{"url":"https://www.zerodayinitiative.com/advisories/ZDI-21-606/","tags":["x_refsource_MISC","x_transferred"]},{"url":"https://security.netapp.com/advisory/ntap-20210716-0004/","tags":["x_refsource_CONFIRM","x_transferred"]},{"url":"http://packetstormsecurity.com/files/164015/Linux-eBPF-ALU32-32-bit-Invalid-Bounds-Tracking-Local-Privilege-Escalation.html","tags":["x_refsource_MISC","x_transferred"]}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2024-08-03T16:53:17.879Z"}}]}}}