{"id":"CVE-2026-120452","aliases":["AZL-112523","DEBIAN-CVE-2026-120452","EUVD-2026-115212","GHSA-4cvw-qwj9-xjc2","UBUNTU-CVE-2026-120452","USN-9017-1"],"status":"published","title":"libgphoto2 through 2.5.34 Heap Out-of-Bounds Read/Write via jl2005c Thumbnail Conversion","description":"libgphoto2 through 2.5.34 contains a heap out-of-bounds read and write vulnerability in jl2005bcd_decompress() that allows malicious USB cameras to corrupt heap memory via oversized thumbnail processing. Attackers can supply small allocation-table values and a thumbnail header byte so in-place byte-swapping exceeds the buffer by about 30 KB, leaking heap contents in preview images.","severity":{"version":"4.0","score":5.2,"vector":"CVSS:4.0/AV:P/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:H/SC:N/SI:N/SA:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.00185,"percentile":0.08171,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-787"],"published":"2026-11-02T14:29:10Z","modified":"2026-11-11T09:44:40Z","fixes":[{"ecosystem":"Ubuntu:Pro:14.04:LTS","package":"libgphoto2","fixed_in":["2.5.3.1-1ubuntu2.2+esm1"],"sources":["osv"]},{"ecosystem":"Ubuntu:Pro:16.04:LTS","package":"libgphoto2","fixed_in":["2.5.9-3ubuntu0.1~esm1"],"sources":["osv"]},{"ecosystem":"Ubuntu:Pro:18.04:LTS","package":"libgphoto2","fixed_in":["2.5.16-2ubuntu0.1~esm1"],"sources":["osv"]},{"ecosystem":"Ubuntu:Pro:20.04:LTS","package":"libgphoto2","fixed_in":["2.5.25-0ubuntu0.1+esm1"],"sources":["osv"]},{"ecosystem":"Ubuntu:22.04:LTS","package":"libgphoto2","fixed_in":["2.5.27-1ubuntu0.2"],"sources":["osv"]},{"ecosystem":"Ubuntu:24.04:LTS","package":"libgphoto2","fixed_in":["2.5.31-2.1ubuntu1.2"],"sources":["osv"]},{"ecosystem":"Ubuntu:26.10","package":"libgphoto2","fixed_in":["2.5.33-1ubuntu2.1"],"sources":["osv"]},{"ecosystem":"Ubuntu:26.04:LTS","package":"libgphoto2","fixed_in":["2.5.33-1ubuntu1.2"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Azure Linux:3","package":"libgphoto2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"2.5.31-1"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"libgphoto2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.5.30-1","2.5.31-1","2.5.31-2","2.5.31-2.1","2.5.31-2.1~exp1","2.5.31-3","2.5.31-4","2.5.32-1","2.5.33-1","2.5.34-1","2.5.34-2"]},{"source":"osv","ecosystem":"Debian:13","package":"libgphoto2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.5.31-4","2.5.32-1","2.5.33-1","2.5.34-1","2.5.34-2"]},{"source":"osv","ecosystem":"Debian:14","package":"libgphoto2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.5.31-4","2.5.32-1","2.5.33-1","2.5.34-1","2.5.34-2"]},{"source":"osv","ecosystem":"Ubuntu:Pro:14.04:LTS","package":"libgphoto2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.5.3.1-1ubuntu2.2+esm1"}]}],"versions":["2.5.2-0ubuntu5","2.5.2-0ubuntu6","2.5.3.1-0ubuntu1","2.5.3.1-1ubuntu2","2.5.3.1-1ubuntu2.2"]},{"source":"osv","ecosystem":"Ubuntu:Pro:16.04:LTS","package":"libgphoto2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.5.9-3ubuntu0.1~esm1"}]}],"versions":["2.5.8-1","2.5.8-2","2.5.8-3","2.5.9-2","2.5.9-3"]},{"source":"osv","ecosystem":"Ubuntu:Pro:18.04:LTS","package":"libgphoto2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.5.16-2ubuntu0.1~esm1"}]}],"versions":["2.5.14-1","2.5.16-2"]},{"source":"osv","ecosystem":"Ubuntu:Pro:20.04:LTS","package":"libgphoto2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.5.25-0ubuntu0.1+esm1"}]}],"versions":["2.5.23-2","2.5.24-1","2.5.25-0ubuntu0.1"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"libgphoto2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.5.27-1ubuntu0.2"}]}],"versions":["2.5.27-1","2.5.27-1build1","2.5.27-1build2","2.5.27-1ubuntu0.1"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"libgphoto2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.5.31-2.1ubuntu1.2"}]}],"versions":["2.5.30-1","2.5.31-1","2.5.31-2","2.5.31-2.1build1","2.5.31-2.1build2","2.5.31-2.1ubuntu1","2.5.31-2.1ubuntu1.1"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"libgphoto2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.5.33-1ubuntu2.1"}]}],"versions":["2.5.33-1ubuntu1","2.5.33-1ubuntu2"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"libgphoto2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.5.33-1ubuntu1.2"}]}],"versions":["2.5.31-4build1","2.5.32-1","2.5.33-1","2.5.33-1ubuntu1","2.5.33-1ubuntu1.1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:14.04:LTS","package":"libgphoto2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.5.3.1-1ubuntu2.2+esm1"}]}],"versions":["2.5.2-0ubuntu5","2.5.2-0ubuntu6","2.5.3.1-0ubuntu1","2.5.3.1-1ubuntu2","2.5.3.1-1ubuntu2.2"],"bundled":2},{"source":"osv","ecosystem":"Ubuntu:Pro:16.04:LTS","package":"libgphoto2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.5.9-3ubuntu0.1~esm1"}]}],"versions":["2.5.8-1","2.5.8-2","2.5.8-3","2.5.9-2","2.5.9-3"],"bundled":2},{"source":"osv","ecosystem":"Ubuntu:Pro:18.04:LTS","package":"libgphoto2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.5.16-2ubuntu0.1~esm1"}]}],"versions":["2.5.14-1","2.5.16-2"],"bundled":2},{"source":"osv","ecosystem":"Ubuntu:Pro:20.04:LTS","package":"libgphoto2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.5.25-0ubuntu0.1+esm1"}]}],"versions":["2.5.23-2","2.5.24-1","2.5.25-0ubuntu0.1"],"bundled":2},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"libgphoto2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.5.27-1ubuntu0.2"}]}],"versions":["2.5.27-1","2.5.27-1build1","2.5.27-1build2","2.5.27-1ubuntu0.1"],"bundled":2},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"libgphoto2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.5.31-2.1ubuntu1.2"}]}],"versions":["2.5.30-1","2.5.31-1","2.5.31-2","2.5.31-2.1build1","2.5.31-2.1build2","2.5.31-2.1ubuntu1","2.5.31-2.1ubuntu1.1"],"bundled":2},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"libgphoto2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.5.33-1ubuntu2.1"}]}],"versions":["2.5.33-1ubuntu1","2.5.33-1ubuntu2"],"bundled":2},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"libgphoto2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.5.33-1ubuntu1.2"}]}],"versions":["2.5.31-4build1","2.5.32-1","2.5.33-1","2.5.33-1ubuntu1","2.5.33-1ubuntu1.1"],"bundled":2}],"products":[{"vendor":"gphoto","product":"libgphoto2"}],"references":[{"url":"https://github.com/gphoto/libgphoto2/issues/1326","tags":["issue-tracking","report"]},{"url":"https://github.com/gphoto/libgphoto2/commit/af3b8e9c542cda863fb5f2f3cfeb261bd78e4442","tags":["patch","fix","report"]},{"url":"https://github.com/gphoto/libgphoto2/commit/30bf7ace6d47cfe1232ea73bde2aceb95aba4bfb","tags":["patch","fix","report"]},{"url":"https://github.com/gphoto/libgphoto2/blob/v2.5.34/camlibs/jl2005c/jl2005bcd_decompress.c#L127-L130","tags":["technical-description","article","report"]},{"url":"https://hackmd.io/@haindpwn/libgphoto2-jl2005c-init-alloc-table-buffer-overflow","tags":["technical-description","article","report"]},{"url":"https://www.vulncheck.com/advisories/libgphoto2-through-2.5.34-heap-out-of-bounds-read-write-via-jl2005c-thumbnail-conversion","tags":["third-party-advisory","advisory","report"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-120452","tags":["web","advisory"]},{"url":"https://github.com/advisories/GHSA-4cvw-qwj9-xjc2"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/120xxx/CVE-2026-120452.json","tags":["advisory"]},{"url":"https://github.com/gphoto/libgphoto2","tags":["package"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-120452","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2026-120452","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-120452","tags":["report"]},{"url":"https://ubuntu.com/security/notices/USN-9017-1","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2026-120451","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2026-120452","title":"libgphoto2 through 2.5.34 Heap Out-of-Bounds Read/Write via jl2005c Thumbnail Conversion","description":"libgphoto2 through 2.5.34 contains a heap out-of-bounds read and write vulnerability in jl2005bcd_decompress() that allows malicious USB cameras to corrupt heap memory via oversized thumbnail processing. Attackers can supply small allocation-table values and a thumbnail header byte so in-place byte-swapping exceeds the buffer by about 30 KB, leaking heap contents in preview images.","status":"published","published":"2026-11-02T14:29:10.22Z","modified":"2026-11-02T17:32:13.589Z","cvss":[{"version":"4.0","score":5.2,"vector":"CVSS:4.0/AV:P/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:H/SC:N/SI:N/SA:N","level":"medium","assessor":"cna"},{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:P/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:H","level":"medium","assessor":"cna"}],"cwes":["CWE-787"],"updated_at":"2026-11-02T19:02:29.283836Z"}],"euvd":[{"id":"EUVD-2026-115212","description":"libgphoto2 through 2.5.34 contains a heap out-of-bounds read and write vulnerability in jl2005bcd_decompress() that allows malicious USB cameras to corrupt heap memory via oversized thumbnail processing. Attackers can supply small allocation-table values and a thumbnail header byte so in-place byte-swapping exceeds the buffer by about 30 KB, leaking heap contents in preview images.","status":"published","published":"2026-11-02T14:29:10Z","modified":"2026-11-02T17:32:13Z","cvss":[{"version":"4.0","score":5.2,"vector":"CVSS:4.0/AV:P/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:H/SC:N/SI:N/SA:N","level":"medium"}],"updated_at":"2026-11-03T05:08:39.764975Z"}],"ghsa":[{"id":"GHSA-4cvw-qwj9-xjc2","title":"libgphoto2 through 2.5.34 contains a heap out-of-bounds read and write vulnerability in...","description":"libgphoto2 through 2.5.34 contains a heap out-of-bounds read and write vulnerability in jl2005bcd_decompress() that allows malicious USB cameras to corrupt heap memory via oversized thumbnail processing. Attackers can supply small allocation-table values and a thumbnail header byte so in-place byte-swapping exceeds the buffer by about 30 KB, leaking heap contents in preview images.","status":"published","published":"2026-11-02T15:31:43Z","modified":"2026-11-02T15:31:44Z","cvss":[{"version":"4.0","score":5.2,"vector":"CVSS:4.0/AV:P/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"medium"},{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:P/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:H","level":"medium"}],"cwes":["CWE-787"],"updated_at":"2026-11-02T18:00:16.184668Z"}],"nvd":[{"id":"CVE-2026-120452","description":"libgphoto2 through 2.5.34 contains a heap out-of-bounds read and write vulnerability in jl2005bcd_decompress() that allows malicious USB cameras to corrupt heap memory via oversized thumbnail processing. Attackers can supply small allocation-table values and a thumbnail header byte so in-place byte-swapping exceeds the buffer by about 30 KB, leaking heap contents in preview images.","status":"published","published":"2026-11-02T15:17:28.553Z","modified":"2026-11-02T19:34:23.993Z","cvss":[{"version":"4.0","score":5.2,"vector":"CVSS:4.0/AV:P/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"medium","assessor":"secondary"},{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:P/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:H","level":"medium","assessor":"secondary"}],"cwes":["CWE-787"],"updated_at":"2026-11-03T00:02:42.67885Z"}],"osv":[{"id":"CVE-2026-120452","title":"libgphoto2 through 2.5.34 Heap Out-of-Bounds Read/Write via jl2005c Thumbnail Conversion","description":"libgphoto2 through 2.5.34 contains a heap out-of-bounds read and write vulnerability in jl2005bcd_decompress() that allows malicious USB cameras to corrupt heap memory via oversized thumbnail processing. Attackers can supply small allocation-table values and a thumbnail header byte so in-place byte-swapping exceeds the buffer by about 30 KB, leaking heap contents in preview images.","status":"published","published":"2026-11-02T14:29:10.22Z","modified":"2026-11-04T07:08:08.38570603Z","cvss":[{"version":"4.0","score":5.2,"vector":"CVSS:4.0/AV:P/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:H/SC:N/SI:N/SA:N","level":"medium"}],"cwes":["CWE-787"],"updated_at":"2026-11-04T07:32:23.735279Z"},{"id":"DEBIAN-CVE-2026-120452","description":"libgphoto2 through 2.5.34 contains a heap out-of-bounds read and write vulnerability in jl2005bcd_decompress() that allows malicious USB cameras to corrupt heap memory via oversized thumbnail processing. Attackers can supply small allocation-table values and a thumbnail header byte so in-place byte-swapping exceeds the buffer by about 30 KB, leaking heap contents in preview images.","status":"published","published":"2026-11-02T15:17:28.553Z","modified":"2026-11-04T13:02:12.611796056Z","cvss":[{"version":"4.0","score":5.2,"vector":"CVSS:4.0/AV:P/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"medium"}],"updated_at":"2026-11-04T13:09:34.718982Z"},{"id":"UBUNTU-CVE-2026-120452","description":"libgphoto2 through 2.5.34 contains a heap out-of-bounds read and write vulnerability in jl2005bcd_decompress() that allows malicious USB cameras to corrupt heap memory via oversized thumbnail processing. Attackers can supply small allocation-table values and a thumbnail header byte so in-place byte-swapping exceeds the buffer by about 30 KB, leaking heap contents in preview images.","status":"published","published":"2026-11-02T15:17:00Z","modified":"2026-11-11T09:39:21.464272004Z","cvss":[{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:P/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:H","level":"medium"},{"version":"4.0","score":5.2,"vector":"CVSS:4.0/AV:P/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:H/SC:N/SI:N/SA:N","level":"medium"}],"updated_at":"2026-11-11T10:01:18.620522Z"},{"id":"AZL-112523","title":"CVE-2026-120452 affecting package libgphoto2 2.5.31-1","description":"libgphoto2 through 2.5.34 contains a heap out-of-bounds read and write vulnerability in jl2005bcd_decompress() that allows malicious USB cameras to corrupt heap memory via oversized thumbnail processing. Attackers can supply small allocation-table values and a thumbnail header byte so in-place byte-swapping exceeds the buffer by about 30 KB, leaking heap contents in preview images.","status":"published","published":"2026-11-02T15:17:28Z","modified":"2026-11-05T05:36:30Z","updated_at":"2026-11-05T16:41:19.001909Z"},{"id":"USN-9017-1","title":"libgphoto2 vulnerabilities","description":"It was discovered that libgphoto2 did not properly manage memory when\ninitializing certain cameras. If a user were tricked into connecting a\nmalicious USB device, an attacker could possibly use this issue to cause\nlibgphoto2 to crash, resulting in a denial of service, or possibly execute\narbitrary code. (CVE-2026-120451)\n\nIt was discovered that libgphoto2 did not properly manage memory when\nprocessing certain thumbnails. If a user were tricked into connecting a\nmalicious USB device, an attacker could possibly use this issue to cause\nlibgphoto2 to crash, resulting in a denial of service, or expose sensitive\ninformation. (CVE-2026-120452)","status":"published","published":"2026-11-10T06:01:57Z","modified":"2026-11-11T09:44:40.035134977Z","updated_at":"2026-11-12T18:08:43.376257Z"}]}}
