{"id":"CVE-2021-46102","aliases":["EUVD-2022-0750","GHSA-xwqr-xmgg-j69q"],"status":"published","title":"Integer overflow in solana_rbpf","description":"From version 0.2.14 to 0.2.16 for Solana rBPF, function \"relocate\" in the file src/elf.rs has an integer overflow bug because the sym.st_value is read directly from ELF file without checking. If the sym.st_value is rather large, an integer overflow is triggered while calculating the variable \"addr\" via \"addr = (sym.st_value + refd_pa) as u64\";","severity":{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-10","score":0.01872,"percentile":0.79542,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-190"],"published":"2022-01-27T17:44:59Z","modified":"2026-10-20T10:54:13Z","fixes":[{"ecosystem":"crates.io","package":"solana_rbpf","fixed_in":["0.2.17"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"crates.io","package":"solana_rbpf","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.2.14"},{"fixed":"0.2.17"}]}]},{"source":"osv","ecosystem":"crates.io","package":"solana_rbpf","ranges":[{"type":"SEMVER","events":[{"introduced":"0.2.14"},{"fixed":"0.2.17"}]}]}],"products":[{"vendor":"solanalabs","product":"rbpf"}],"references":[{"url":"https://blocksecteam.medium.com/new-integer-overflow-bug-discovered-in-solana-rbpf-7729717159ee","tags":["x_refsource_MISC","x_transferred","Exploit","Third Party Advisory","evidence","web"]},{"url":"https://github.com/solana-labs/rbpf/blob/c14764850f0b83b58aa013248eaf6d65836c1218/src/elf.rs#L609-L630","tags":["x_refsource_MISC","x_transferred","Exploit","Third Party Advisory","evidence","web"]},{"url":"https://github.com/solana-labs/rbpf/pull/200","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","fix","web"]},{"url":"https://github.com/solana-labs/rbpf/pull/236","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","fix","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-46102","tags":["advisory"]},{"url":"https://github.com/solana-labs/rbpf/releases/tag/v0.2.17","tags":["web"]},{"url":"https://github.com/advisories/GHSA-xwqr-xmgg-j69q"},{"url":"https://github.com/solana-labs/rbpf","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2021-46102","description":"From version 0.2.14 to 0.2.16 for Solana rBPF, function \"relocate\" in the file src/elf.rs has an integer overflow bug because the sym.st_value is read directly from ELF file without checking. If the sym.st_value is rather large, an integer overflow is triggered while calculating the variable \"addr\" via \"addr = (sym.st_value + refd_pa) as u64\";","status":"published","published":"2022-01-27T17:44:59Z","modified":"2024-08-04T05:02:10.272Z","updated_at":"2026-11-02T14:33:03.320536Z"}],"euvd":[{"id":"EUVD-2022-0750","description":"From version 0.2.14 to 0.2.16 for Solana rBPF, function \"relocate\" in the file src/elf.rs has an integer overflow bug because the sym.st_value is read directly from ELF file without checking. If the sym.st_value is rather large, an integer overflow is triggered while calculating the variable \"addr\" via \"addr = (sym.st_value + refd_pa) as u64\";","status":"published","published":"2022-01-27T17:44:59Z","modified":"2024-08-04T05:02:10Z","updated_at":"2026-11-03T03:08:24.682864Z"}],"ghsa":[{"id":"GHSA-xwqr-xmgg-j69q","title":"Integer overflow in solana_rbpf","description":"From version 0.2.14 to 0.2.16 for Solana rBPF, function \"relocate\" in the file src/elf.rs has an integer overflow bug because the sym.st_value is read directly from ELF file without checking. If the sym.st_value is rather large, an integer overflow is triggered while calculating the variable \"addr\" via `addr = (sym.st_value + refd_pa) as u64`","status":"published","published":"2022-01-28T22:59:28Z","modified":"2023-04-26T22:14:10Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-190"],"updated_at":"2026-11-02T14:36:51.39133Z"}],"nvd":[{"id":"CVE-2021-46102","description":"From version 0.2.14 to 0.2.16 for Solana rBPF, function \"relocate\" in the file src/elf.rs has an integer overflow bug because the sym.st_value is read directly from ELF file without checking. If the sym.st_value is rather large, an integer overflow is triggered while calculating the variable \"addr\" via \"addr = (sym.st_value + refd_pa) as u64\";","status":"published","published":"2022-01-27T18:15:07.77Z","modified":"2026-06-17T04:14:32.753Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"primary"},{"version":"2.0","score":5,"vector":"AV:N/AC:L/Au:N/C:N/I:N/A:P","level":"medium","assessor":"primary"}],"cwes":["CWE-190"],"updated_at":"2026-11-02T14:07:04.178977Z"}],"osv":[{"id":"CVE-2021-46102","description":"From version 0.2.14 to 0.2.16 for Solana rBPF, function \"relocate\" in the file src/elf.rs has an integer overflow bug because the sym.st_value is read directly from ELF file without checking. If the sym.st_value is rather large, an integer overflow is triggered while calculating the variable \"addr\" via \"addr = (sym.st_value + refd_pa) as u64\";","status":"published","published":"2022-01-27T18:15:07.77Z","modified":"2026-10-20T10:54:13.465041876Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:44:22.18434Z"},{"id":"GHSA-xwqr-xmgg-j69q","title":"Integer overflow in solana_rbpf","description":"From version 0.2.14 to 0.2.16 for Solana rBPF, function \"relocate\" in the file src/elf.rs has an integer overflow bug because the sym.st_value is read directly from ELF file without checking. If the sym.st_value is rather large, an integer overflow is triggered while calculating the variable \"addr\" via `addr = (sym.st_value + refd_pa) as u64`","status":"published","published":"2022-01-28T22:59:28Z","modified":"2023-11-08T04:07:25.094752Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-190"],"updated_at":"2026-11-02T15:47:00.604718Z"}]}}
