{"id":"CVE-2017-20286","aliases":["DEBIAN-CVE-2017-20286","EUVD-2017-19019","GHSA-5rw7-933r-f38v","UBUNTU-CVE-2017-20286"],"status":"published","title":"DevIL through 1.8.0 Heap Buffer Overflow via GIF iGetPalette","description":"DevIL through 1.8.0 contains a heap-based buffer overflow in iGetPalette() in il_gif.cpp that allows attackers to write beyond a 768-byte palette buffer when loading GIF images. Attackers can supply a crafted two-frame GIF whose second frame uses disposal method 1 with a local colour table, writing up to 384 controlled bytes past the heap allocation and possibly executing code.","severity":{"version":"4.0","score":8.5,"vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-09","score":0.00199,"percentile":0.09727,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-787"],"published":"2026-10-14T14:16:27Z","modified":"2026-10-28T17:08:11Z","affected":[{"source":"osv","ecosystem":"Debian:12","package":"devil","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.7.8-10","1.7.8-11","1.7.8-12","1.8.0.40.g6f3d5e9b+dfsg-1","1.8.0.40.g6f3d5e9b+dfsg-2","1.8.0.40.g6f3d5e9b+dfsg-3","1.8.0.40.g6f3d5e9b+dfsg-3.1","1.8.0.40.g6f3d5e9b+dfsg-3~exp1","1.8.0.40.g6f3d5e9b+dfsg-3~exp2","1.8.0.40.g6f3d5e9b+dfsg-4","1.8.0.40.g6f3d5e9b+dfsg-5"]},{"source":"osv","ecosystem":"Debian:13","package":"devil","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.7.8-12","1.8.0.40.g6f3d5e9b+dfsg-1","1.8.0.40.g6f3d5e9b+dfsg-2","1.8.0.40.g6f3d5e9b+dfsg-3","1.8.0.40.g6f3d5e9b+dfsg-3.1","1.8.0.40.g6f3d5e9b+dfsg-3~exp1","1.8.0.40.g6f3d5e9b+dfsg-3~exp2","1.8.0.40.g6f3d5e9b+dfsg-4","1.8.0.40.g6f3d5e9b+dfsg-5"]},{"source":"osv","ecosystem":"Debian:14","package":"devil","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.7.8-12","1.8.0.40.g6f3d5e9b+dfsg-1","1.8.0.40.g6f3d5e9b+dfsg-2","1.8.0.40.g6f3d5e9b+dfsg-3","1.8.0.40.g6f3d5e9b+dfsg-3.1","1.8.0.40.g6f3d5e9b+dfsg-3~exp1","1.8.0.40.g6f3d5e9b+dfsg-3~exp2","1.8.0.40.g6f3d5e9b+dfsg-4","1.8.0.40.g6f3d5e9b+dfsg-5"]},{"source":"osv","ecosystem":"Ubuntu:16.04:LTS","package":"devil","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.7.8-10"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"devil","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.7.8-10build1"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"devil","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.7.8-10build1","1.7.8-10build2"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"devil","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.7.8-10build2"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"devil","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.7.8-10build3","1.7.8-10build4","1.7.8-10build5","1.7.8-10build6"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"devil","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.7.8-12","1.8.0.40.g6f3d5e9b+dfsg-5ubuntu1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"devil","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.7.8-12"]}],"products":[{"vendor":"dentonw","product":"devil"}],"references":[{"url":"https://github.com/DentonW/DevIL/issues/67","tags":["issue-tracking","report"]},{"url":"https://hackmd.io/@haind-pwn/devil-gif-palette-reuse-heap-overflow","tags":["third-party-advisory","web"]},{"url":"https://github.com/DentonW/DevIL/blob/a2d9193fed0c7f93519c0c4c28b3348e0cb5759b/DevIL/src-IL/src/il_gif.cpp#L189-L226","tags":["technical-description","web"]},{"url":"https://github.com/DentonW/DevIL/blob/a2d9193fed0c7f93519c0c4c28b3348e0cb5759b/DevIL/src-IL/src/il_gif.cpp#L314-L324","tags":["technical-description","web"]},{"url":"https://www.vulncheck.com/advisories/devil-through-1.8.0-heap-buffer-overflow-via-gif-igetpalette","tags":["third-party-advisory","advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2017-20286"},{"url":"https://github.com/advisories/GHSA-5rw7-933r-f38v"},{"url":"https://security-tracker.debian.org/tracker/CVE-2017-20286","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2017-20286","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2017-20286","tags":["report"]},{"url":"github.com/dentonw/devil","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2017-20286","title":"DevIL through 1.8.0 Heap Buffer Overflow via GIF iGetPalette","description":"DevIL through 1.8.0 contains a heap-based buffer overflow in iGetPalette() in il_gif.cpp that allows attackers to write beyond a 768-byte palette buffer when loading GIF images. Attackers can supply a crafted two-frame GIF whose second frame uses disposal method 1 with a local colour table, writing up to 384 controlled bytes past the heap allocation and possibly executing code.","status":"published","published":"2026-10-14T14:16:27.547Z","modified":"2026-10-14T15:55:35.957Z","cvss":[{"version":"4.0","score":8.5,"vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high","assessor":"cna"},{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high","assessor":"cna"}],"cwes":["CWE-787"],"updated_at":"2026-11-02T14:33:11.59359Z"}],"euvd":[{"id":"EUVD-2017-19019","description":"DevIL through 1.8.0 contains a heap-based buffer overflow in iGetPalette() in il_gif.cpp that allows attackers to write beyond a 768-byte palette buffer when loading GIF images. Attackers can supply a crafted two-frame GIF whose second frame uses disposal method 1 with a local colour table, writing up to 384 controlled bytes past the heap allocation and possibly executing code.","status":"published","published":"2026-10-14T14:16:27Z","modified":"2026-10-14T15:55:35Z","cvss":[{"version":"4.0","score":8.5,"vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high"}],"updated_at":"2026-11-02T17:27:14.734034Z"}],"ghsa":[{"id":"GHSA-5rw7-933r-f38v","title":"DevIL through 1.8.0 contains a heap-based buffer overflow in iGetPalette() in il_gif.cpp that...","description":"DevIL through 1.8.0 contains a heap-based buffer overflow in iGetPalette() in il_gif.cpp that allows attackers to write beyond a 768-byte palette buffer when loading GIF images. Attackers can supply a crafted two-frame GIF whose second frame uses disposal method 1 with a local colour table, writing up to 384 controlled bytes past the heap allocation and possibly executing code.","status":"published","published":"2026-10-14T15:32:21Z","modified":"2026-10-14T15:32:27Z","cvss":[{"version":"4.0","score":8.5,"vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/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":"high"},{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-787"],"updated_at":"2026-11-02T15:13:26.117603Z"}],"nvd":[{"id":"CVE-2017-20286","description":"DevIL through 1.8.0 contains a heap-based buffer overflow in iGetPalette() in il_gif.cpp that allows attackers to write beyond a 768-byte palette buffer when loading GIF images. Attackers can supply a crafted two-frame GIF whose second frame uses disposal method 1 with a local colour table, writing up to 384 controlled bytes past the heap allocation and possibly executing code.","status":"published","published":"2026-10-14T15:16:59.163Z","modified":"2026-10-16T19:18:44.867Z","cvss":[{"version":"4.0","score":8.5,"vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/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":"high","assessor":"secondary"},{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high","assessor":"secondary"}],"cwes":["CWE-787"],"updated_at":"2026-11-02T14:04:21.76411Z"}],"osv":[{"id":"CVE-2017-20286","description":"DevIL through 1.8.0 contains a heap-based buffer overflow in iGetPalette() in il_gif.cpp that allows attackers to write beyond a 768-byte palette buffer when loading GIF images. Attackers can supply a crafted two-frame GIF whose second frame uses disposal method 1 with a local colour table, writing up to 384 controlled bytes past the heap allocation and possibly executing code.","status":"published","published":"2026-10-14T15:16:59.163Z","modified":"2026-10-24T02:30:41.010243003Z","cvss":[{"version":"4.0","score":8.5,"vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/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":"high"}],"updated_at":"2026-11-02T15:44:05.486486Z"},{"id":"DEBIAN-CVE-2017-20286","description":"DevIL through 1.8.0 contains a heap-based buffer overflow in iGetPalette() in il_gif.cpp that allows attackers to write beyond a 768-byte palette buffer when loading GIF images. Attackers can supply a crafted two-frame GIF whose second frame uses disposal method 1 with a local colour table, writing up to 384 controlled bytes past the heap allocation and possibly executing code.","status":"published","published":"2026-10-14T15:16:59.163Z","modified":"2026-10-21T10:47:38.077161097Z","cvss":[{"version":"4.0","score":8.5,"vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/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":"high"}],"updated_at":"2026-11-02T15:45:29.100767Z"},{"id":"UBUNTU-CVE-2017-20286","description":"DevIL through 1.8.0 contains a heap-based buffer overflow in iGetPalette() in il_gif.cpp that allows attackers to write beyond a 768-byte palette buffer when loading GIF images. Attackers can supply a crafted two-frame GIF whose second frame uses disposal method 1 with a local colour table, writing up to 384 controlled bytes past the heap allocation and possibly executing code.","status":"published","published":"2026-10-14T15:16:00Z","modified":"2026-10-28T17:08:11Z","cvss":[{"version":"4.0","score":8.5,"vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high"},{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high"},{"version":"4.0","score":8.5,"vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high"}],"updated_at":"2026-11-02T15:54:14.977781Z"}]}}
