{"id":"CVE-2020-25016","aliases":["DEBIAN-CVE-2020-25016","EUVD-2021-1710","GHSA-g4rw-8m5q-6453","RUSTSEC-2020-0029","UBUNTU-CVE-2020-25016"],"status":"published","title":"Out of bounds access in rgb","description":"A safety violation was discovered in the rgb crate before 0.8.20 for Rust, leading to (for example) dereferencing of arbitrary pointers or disclosure of uninitialized memory. This occurs because structs can be treated as bytes for read and write operations.","severity":{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-09","score":0.01595,"percentile":0.75896,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-119","CWE-843"],"published":"2020-06-14T12:00:00Z","modified":"2026-10-26T12:01:47Z","fixes":[{"ecosystem":"crates.io","package":"rgb","fixed_in":["0.8.20"],"sources":["ghsa","osv"]},{"ecosystem":"Debian:12","package":"rust-rgb","fixed_in":["0.8.36-1"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"rust-rgb","fixed_in":["0.8.36-1"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"rust-rgb","fixed_in":["0.8.36-1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"crates.io","package":"rgb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.5.4"},{"fixed":"0.8.20"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"rust-rgb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.8.36-1"}]}]},{"source":"osv","ecosystem":"Debian:13","package":"rust-rgb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.8.36-1"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"rust-rgb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.8.36-1"}]}]},{"source":"osv","ecosystem":"crates.io","package":"rgb","ranges":[{"type":"SEMVER","events":[{"introduced":"0.5.4"},{"fixed":"0.8.20"}]}]},{"source":"osv","ecosystem":"crates.io","package":"rgb","ranges":[{"type":"SEMVER","events":[{"introduced":"0.5.4"},{"fixed":"0.8.20"}]}]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"rust-rgb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.8.11-1"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"rust-rgb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.8.11-1"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"rust-rgb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.8.36-1"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"rust-rgb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.8.50-1"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"rust-rgb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.8.52-1","0.8.53-1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"rust-rgb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.8.50-1","0.8.52-1"]}],"products":[{"vendor":"rgb-rust_project","product":"rgb-rust"}],"references":[{"url":"https://rustsec.org/advisories/RUSTSEC-2020-0029.html","tags":["x_refsource_MISC","x_transferred","Vendor Advisory","advisory","web","report"]},{"url":"https://github.com/kornelski/rust-rgb/issues/35","tags":["x_refsource_MISC","x_transferred","Exploit","Third Party Advisory","evidence","web","report"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-25016","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-g4rw-8m5q-6453"},{"url":"https://security-tracker.debian.org/tracker/CVE-2020-25016","tags":["advisory"]},{"url":"https://github.com/kornelski/rust-rgb","tags":["package"]},{"url":"https://crates.io/crates/rgb","tags":["package"]},{"url":"https://ubuntu.com/security/CVE-2020-25016","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2020-25016","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2020-25016","description":"A safety violation was discovered in the rgb crate before 0.8.20 for Rust, leading to (for example) dereferencing of arbitrary pointers or disclosure of uninitialized memory. This occurs because structs can be treated as bytes for read and write operations.","status":"published","published":"2020-08-29T15:05:00Z","modified":"2024-08-04T15:26:09.035Z","updated_at":"2026-11-02T14:35:48.52216Z"}],"euvd":[{"id":"EUVD-2021-1710","description":"A safety violation was discovered in the rgb crate before 0.8.20 for Rust, leading to (for example) dereferencing of arbitrary pointers or disclosure of uninitialized memory. This occurs because structs can be treated as bytes for read and write operations.","status":"published","published":"2020-08-29T15:05:00Z","modified":"2024-08-04T15:26:09Z","updated_at":"2026-11-03T03:07:18.192905Z"}],"ghsa":[{"id":"GHSA-g4rw-8m5q-6453","title":"Out of bounds access in rgb","description":"Affected versions of rgb crate allow viewing and modifying data of any type T wrapped in RGB\u003cT\u003e as bytes, and do not correctly constrain RGB\u003cT\u003e and other wrapper structures to the types for which it is safe to do so.\n\nSafety violation possible for a type wrapped in RGB\u003cT\u003e and similar wrapper structures:\n\n* If T contains padding, viewing it as bytes may lead to exposure of contents of uninitialized memory.\n* If T contains a pointer, modifying it as bytes may lead to dereferencing of arbitrary pointers.\n* Any safety and/or validity invariants for T may be violated.\n\nThe issue was resolved by requiring all types wrapped in structures provided by RGB crate to implement an unsafe marker trait.","status":"published","published":"2021-08-25T20:45:12Z","modified":"2023-06-13T20:26:15Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical"}],"cwes":["CWE-119","CWE-843"],"updated_at":"2026-11-02T14:36:54.225318Z"}],"nvd":[{"id":"CVE-2020-25016","description":"A safety violation was discovered in the rgb crate before 0.8.20 for Rust, leading to (for example) dereferencing of arbitrary pointers or disclosure of uninitialized memory. This occurs because structs can be treated as bytes for read and write operations.","status":"published","published":"2020-08-29T16:15:09.72Z","modified":"2026-06-17T03:06:14.65Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical","assessor":"primary"},{"version":"2.0","score":6.4,"vector":"AV:N/AC:L/Au:N/C:P/I:P/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-119","CWE-843"],"updated_at":"2026-11-02T14:06:13.600965Z"}],"osv":[{"id":"CVE-2020-25016","description":"A safety violation was discovered in the rgb crate before 0.8.20 for Rust, leading to (for example) dereferencing of arbitrary pointers or disclosure of uninitialized memory. This occurs because structs can be treated as bytes for read and write operations.","status":"published","published":"2020-08-29T16:15:09.72Z","modified":"2026-03-14T10:22:06.8393Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical"}],"updated_at":"2026-11-02T15:44:15.879068Z"},{"id":"DEBIAN-CVE-2020-25016","description":"A safety violation was discovered in the rgb crate before 0.8.20 for Rust, leading to (for example) dereferencing of arbitrary pointers or disclosure of uninitialized memory. This occurs because structs can be treated as bytes for read and write operations.","status":"published","published":"2020-08-29T16:15:09.72Z","modified":"2026-10-26T12:01:47.164793782Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical"}],"updated_at":"2026-11-02T15:45:33.729655Z"},{"id":"GHSA-g4rw-8m5q-6453","title":"Out of bounds access in rgb","description":"Affected versions of rgb crate allow viewing and modifying data of any type T wrapped in RGB\u003cT\u003e as bytes, and do not correctly constrain RGB\u003cT\u003e and other wrapper structures to the types for which it is safe to do so.\n\nSafety violation possible for a type wrapped in RGB\u003cT\u003e and similar wrapper structures:\n\n* If T contains padding, viewing it as bytes may lead to exposure of contents of uninitialized memory.\n* If T contains a pointer, modifying it as bytes may lead to dereferencing of arbitrary pointers.\n* Any safety and/or validity invariants for T may be violated.\n\nThe issue was resolved by requiring all types wrapped in structures provided by RGB crate to implement an unsafe marker trait.","status":"published","published":"2021-08-25T20:45:12Z","modified":"2023-11-08T04:03:09.114958Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical"}],"cwes":["CWE-119","CWE-843"],"updated_at":"2026-11-02T15:46:47.119724Z"},{"id":"RUSTSEC-2020-0029","title":"Allows viewing and modifying arbitrary structs as bytes","description":"Affected versions of rgb crate allow viewing and modifying data of any type `T` wrapped in `RGB\u003cT\u003e` as bytes,\nand do not correctly constrain `RGB\u003cT\u003e` and other wrapper structures to the types for which it is safe to do so.\n\nSafety violation possible for a type wrapped in `RGB\u003cT\u003e` and similar wrapper structures:\n\n * If `T` contains padding, viewing it as bytes may lead to exposure of contents of uninitialized memory.\n * If `T` contains a pointer, modifying it as bytes may lead to dereferencing of arbitrary pointers.\n * Any safety and/or validity invariants for `T` may be violated.\n \nThe issue was resolved by requiring all types wrapped in structures provided by RGB crate to implement an unsafe marker trait.","status":"published","published":"2020-06-14T12:00:00Z","modified":"2023-11-08T04:03:09.114958Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical"}],"updated_at":"2026-11-02T15:53:39.492624Z"},{"id":"UBUNTU-CVE-2020-25016","description":"A safety violation was discovered in the rgb crate before 0.8.20 for Rust, leading to (for example) dereferencing of arbitrary pointers or disclosure of uninitialized memory. This occurs because structs can be treated as bytes for read and write operations.","status":"published","published":"2020-08-29T16:15:00Z","modified":"2026-10-17T12:56:54.095716966Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical"}],"updated_at":"2026-11-02T15:54:23.905183Z"}]}}
