{"id":"GHSA-66m8-c62j-h6v5","aliases":[],"status":"published","title":"jxl-oxide: `FrameBuffer::new` creates out-of-bounds slices on overflow","description":"### Summary\n`jxl-oxide` exposes a public safe API that can construct an undersized `FrameBuffer` due to unchecked `usize` multiplication, which immediately trigger panic while initializing the buffer in normal decoding path.\n\nAdditionally, calling the safe grouped buffer accessors afterward can create invalid oversized slices from a much smaller allocation, causing undefined behavior; however normal decoding path never reaches UB, because these methods are never used within `jxl-oxide`.\n\n### Impact\nOn 32-bit platforms this can cause panic by accessing out-of-range indices, making it a DoS vulnerability.","severity":{"version":"3.1","score":6.2,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium","from":"ghsa"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-131","CWE-190"],"published":"2026-07-02T20:45:10Z","modified":"2026-07-02T21:00:16Z","fixes":[{"ecosystem":"crates.io","package":"jxl-oxide","fixed_in":["0.12.6"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"crates.io","package":"jxl-oxide","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"0.12.5"},{"fixed":"0.12.6"}]}]},{"source":"osv","ecosystem":"crates.io","package":"jxl-oxide","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.12.6"}]}]}],"references":[{"url":"https://github.com/tirr-c/jxl-oxide/security/advisories/GHSA-66m8-c62j-h6v5","tags":["web"]},{"url":"https://github.com/advisories/GHSA-66m8-c62j-h6v5"},{"url":"https://github.com/tirr-c/jxl-oxide","tags":["package"]}],"sources":{"ghsa":[{"id":"GHSA-66m8-c62j-h6v5","title":"jxl-oxide: `FrameBuffer::new` creates out-of-bounds slices on overflow","description":"### Summary\n`jxl-oxide` exposes a public safe API that can construct an undersized `FrameBuffer` due to unchecked `usize` multiplication, which immediately trigger panic while initializing the buffer in normal decoding path.\n\nAdditionally, calling the safe grouped buffer accessors afterward can create invalid oversized slices from a much smaller allocation, causing undefined behavior; however normal decoding path never reaches UB, because these methods are never used within `jxl-oxide`.\n\n### Impact\nOn 32-bit platforms this can cause panic by accessing out-of-range indices, making it a DoS vulnerability.","status":"published","published":"2026-07-02T20:45:10Z","modified":"2026-07-02T20:45:11Z","cvss":[{"version":"3.1","score":6.2,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"cwes":["CWE-131","CWE-190"],"updated_at":"2026-11-02T14:40:38.48196Z"}],"osv":[{"id":"GHSA-66m8-c62j-h6v5","title":"jxl-oxide: `FrameBuffer::new` creates out-of-bounds slices on overflow","description":"### Summary\n`jxl-oxide` exposes a public safe API that can construct an undersized `FrameBuffer` due to unchecked `usize` multiplication, which immediately trigger panic while initializing the buffer in normal decoding path.\n\nAdditionally, calling the safe grouped buffer accessors afterward can create invalid oversized slices from a much smaller allocation, causing undefined behavior; however normal decoding path never reaches UB, because these methods are never used within `jxl-oxide`.\n\n### Impact\nOn 32-bit platforms this can cause panic by accessing out-of-range indices, making it a DoS vulnerability.","status":"published","published":"2026-07-02T20:45:10Z","modified":"2026-07-02T21:00:16.924670013Z","cvss":[{"version":"3.1","score":6.2,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"cwes":["CWE-131","CWE-190"],"updated_at":"2026-11-02T15:46:39.266402Z"}]}}
