{"id":"CVE-2017-20230","aliases":["DEBIAN-CVE-2017-20230","EUVD-2017-18967","GHSA-6r7m-2wh8-438w","RHSA-2026:7578","SUSE-SU-2026:1567-1","UBUNTU-CVE-2017-20230"],"status":"published","title":"Storable versions before 3.05 for Perl has a stack overflow","description":"Storable versions before 3.05 for Perl has a stack overflow.\n\nThe retrieve_hook function stored the length of the class name into a signed integer but in read operations treated the length as unsigned. This allowed an attacker to craft data that could trigger the overflow.","severity":{"version":"3.1","score":10,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H","level":"critical","assessor":"adp","from":"cve"},"epss":{"day":"2026-11-09","score":0.00641,"percentile":0.51008,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-121"],"published":"2026-04-21T15:26:18Z","modified":"2026-10-20T10:48:17Z","fixes":[{"ecosystem":"Debian:12","package":"perl","fixed_in":["5.28.0-3"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"perl","fixed_in":["5.28.0-3"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"perl","fixed_in":["5.28.0-3"],"sources":["osv"]},{"ecosystem":"Red Hat:hummingbird:1","package":"perl-Storable","fixed_in":["0:3.37-522.1.hum1"],"sources":["osv"]},{"ecosystem":"Red Hat:hummingbird:1","package":"perl-Storable-tests","fixed_in":["0:3.37-522.1.hum1"],"sources":["osv"]},{"ecosystem":"SUSE:Linux Enterprise Server 12 SP5-LTSS","package":"perl","fixed_in":["5.18.2-12.32.1"],"sources":["osv"]},{"ecosystem":"SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5","package":"perl","fixed_in":["5.18.2-12.32.1"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Debian:12","package":"perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.28.0-3"}]}]},{"source":"osv","ecosystem":"Debian:13","package":"perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.28.0-3"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.28.0-3"}]}]},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"perl-Storable","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:3.37-522.1.hum1"}]}]},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"perl-Storable-tests","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:3.37-522.1.hum1"}]}]},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server 12 SP5-LTSS","package":"perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.18.2-12.32.1"}]}]},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5","package":"perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.18.2-12.32.1"}]}]},{"source":"osv","ecosystem":"Ubuntu:Pro:14.04:LTS","package":"perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["5.14.2-21build1","5.18.1-4","5.18.1-4build1","5.18.1-5","5.18.2-2","5.18.2-2ubuntu1","5.18.2-2ubuntu1.1","5.18.2-2ubuntu1.3","5.18.2-2ubuntu1.4","5.18.2-2ubuntu1.6","5.18.2-2ubuntu1.7","5.18.2-2ubuntu1.7+esm3","5.18.2-2ubuntu1.7+esm4","5.18.2-2ubuntu1.7+esm5","5.18.2-2ubuntu1.7+esm7","5.18.2-2ubuntu1.7+esm8","5.18.2-2ubuntu1.7+esm9"]},{"source":"osv","ecosystem":"Ubuntu:Pro:16.04:LTS","package":"perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["5.20.2-6","5.22.1-3","5.22.1-4","5.22.1-5","5.22.1-7","5.22.1-8","5.22.1-9","5.22.1-9ubuntu0.2","5.22.1-9ubuntu0.3","5.22.1-9ubuntu0.5","5.22.1-9ubuntu0.6","5.22.1-9ubuntu0.9","5.22.1-9ubuntu0.9+esm1","5.22.1-9ubuntu0.9+esm2","5.22.1-9ubuntu0.9+esm3","5.22.1-9ubuntu0.9+esm4"]},{"source":"osv","ecosystem":"Ubuntu:Pro:18.04:LTS","package":"perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["5.26.0-8ubuntu1","5.26.1-2ubuntu1","5.26.1-3","5.26.1-4","5.26.1-4build1","5.26.1-5","5.26.1-6","5.26.1-6ubuntu0.1","5.26.1-6ubuntu0.2","5.26.1-6ubuntu0.3","5.26.1-6ubuntu0.5","5.26.1-6ubuntu0.6","5.26.1-6ubuntu0.7","5.26.1-6ubuntu0.7+esm2","5.26.1-6ubuntu0.7+esm3","5.26.1-6ubuntu0.7+esm4"]},{"source":"osv","ecosystem":"Ubuntu:Pro:20.04:LTS","package":"perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["5.28.1-6build1","5.30.0-7","5.30.0-9","5.30.0-9build1","5.30.0-9ubuntu0.2","5.30.0-9ubuntu0.3","5.30.0-9ubuntu0.4","5.30.0-9ubuntu0.5","5.30.0-9ubuntu0.5+esm2","5.30.0-9ubuntu0.5+esm3","5.30.0-9ubuntu0.5+esm4"]}],"products":[{"vendor":"nwclark","product":"storable"}],"references":[{"url":"https://github.com/Perl/perl5/issues/15831","tags":["issue-tracking","Issue Tracking","report","article"]},{"url":"https://github.com/Perl/perl5/commit/a258c17c6937f79529c8319a829310e09cdbd216.patch","tags":["patch","Patch","fix","article"]},{"url":"https://metacpan.org/release/RURBAN/Storable-3.05/changes","tags":["release-notes","Release Notes","advisory","article"]},{"url":"https://www.nntp.perl.org/group/perl.perl5.porters/2017/01/msg242533.html","tags":["mailing-list","Third Party Advisory","advisory","article"]},{"url":"https://www.nntp.perl.org/group/perl.perl5.porters/2017/01/msg242703.html","tags":["mailing-list","Third Party Advisory","advisory","article"]},{"url":"http://www.openwall.com/lists/oss-security/2026/04/21/5","tags":["Mailing List","article"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2017-20230","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-6r7m-2wh8-438w"},{"url":"https://security-tracker.debian.org/tracker/CVE-2017-20230","tags":["advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:7578","tags":["advisory"]},{"url":"https://images.redhat.com/","tags":["article"]},{"url":"https://access.redhat.com/security/cve/CVE-2017-20230","tags":["report"]},{"url":"https://access.redhat.com/security/updates/classification/","tags":["article"]},{"url":"https://security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_7578.json","tags":["advisory"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2460147","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2017-20230","tags":["advisory","report"]},{"url":"https://www.suse.com/support/update/announcement/2026/suse-su-20261567-1/","tags":["advisory"]},{"url":"https://bugzilla.suse.com/1262486","tags":["report"]},{"url":"https://www.suse.com/security/cve/CVE-2017-20230","tags":["web"]},{"url":"https://ubuntu.com/security/CVE-2017-20230","tags":["report"]},{"url":"https://lists.security.metacpan.org/cve-announce/msg/39144694/","tags":["report"]},{"url":"https://github.com/Perl/perl5/commit/a258c17c6937f79529c8319a829310e09cdbd216","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2017-20230","title":"Storable versions before 3.05 for Perl has a stack overflow","description":"Storable versions before 3.05 for Perl has a stack overflow.\n\nThe retrieve_hook function stored the length of the class name into a signed integer but in read operations treated the length as unsigned. This allowed an attacker to craft data that could trigger the overflow.","status":"published","published":"2026-04-21T15:26:18.216Z","modified":"2026-04-21T18:22:25.354Z","cvss":[{"version":"3.1","score":10,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H","level":"critical","assessor":"adp"}],"cwes":["CWE-121"],"updated_at":"2026-11-02T14:33:11.928814Z"}],"euvd":[{"id":"EUVD-2017-18967","description":"Storable versions before 3.05 for Perl has a stack overflow.\n\nThe retrieve_hook function stored the length of the class name into a signed integer but in read operations treated the length as unsigned. This allowed an attacker to craft data that could trigger the overflow.","status":"published","published":"2026-04-21T15:26:18Z","modified":"2026-04-21T18:22:25Z","cvss":[{"version":"3.1","score":10,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T19:24:21.512647Z"}],"ghsa":[{"id":"GHSA-6r7m-2wh8-438w","title":"Storable versions before 3.05 for Perl has a stack overflow.\n\nThe retrieve_hook function stored...","description":"Storable versions before 3.05 for Perl has a stack overflow.\n\nThe retrieve_hook function stored the length of the class name into a signed integer but in read operations treated the length as unsigned. This allowed an attacker to craft data that could trigger the overflow.","status":"published","published":"2026-04-21T18:31:57Z","modified":"2026-04-21T21:31:23Z","cvss":[{"version":"3.1","score":10,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-121"],"updated_at":"2026-11-02T15:07:33.597532Z"}],"nvd":[{"id":"CVE-2017-20230","description":"Storable versions before 3.05 for Perl has a stack overflow.\n\nThe retrieve_hook function stored the length of the class name into a signed integer but in read operations treated the length as unsigned. This allowed an attacker to craft data that could trigger the overflow.","status":"published","published":"2026-04-21T16:16:18.077Z","modified":"2026-06-17T01:15:27.847Z","cvss":[{"version":"3.1","score":10,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H","level":"critical","assessor":"secondary"}],"cwes":["CWE-121"],"updated_at":"2026-11-02T14:04:21.76411Z"}],"osv":[{"id":"CVE-2017-20230","description":"Storable versions before 3.05 for Perl has a stack overflow.\n\nThe retrieve_hook function stored the length of the class name into a signed integer but in read operations treated the length as unsigned. This allowed an attacker to craft data that could trigger the overflow.","status":"published","published":"2026-04-21T16:16:18.077Z","modified":"2026-10-20T10:48:17.762780457Z","cvss":[{"version":"3.1","score":10,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:44:05.486486Z"},{"id":"DEBIAN-CVE-2017-20230","description":"Storable versions before 3.05 for Perl has a stack overflow.  The retrieve_hook function stored the length of the class name into a signed integer but in read operations treated the length as unsigned. This allowed an attacker to craft data that could trigger the overflow.","status":"published","published":"2026-04-21T16:16:18.077Z","modified":"2026-09-01T20:03:47.27395232Z","cvss":[{"version":"3.1","score":10,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:45:29.100767Z"},{"id":"RHSA-2026:7578","title":"Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update","status":"published","published":"2026-04-24T10:11:37Z","modified":"2026-10-10T10:21:42Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-02T15:53:22.928316Z"},{"id":"UBUNTU-CVE-2017-20230","description":"Storable versions before 3.05 for Perl has a stack overflow. The retrieve_hook function stored the length of the class name into a signed integer but in read operations treated the length as unsigned. This allowed an attacker to craft data that could trigger the overflow.","status":"published","published":"2026-04-21T16:16:00Z","modified":"2026-09-08T19:45:06.027206332Z","cvss":[{"version":"3.1","score":10,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:54:14.977781Z"},{"id":"SUSE-SU-2026:1567-1","title":"Security update for perl","description":"This update for perl fixes the following issue:\n\n- CVE-2017-20230: Storable versions before 3.05 for Perl has a stack overflow (bsc#1262486).\n","status":"published","published":"2026-04-23T12:10:55Z","modified":"2026-04-24T08:15:27.167013Z","updated_at":"2026-11-02T15:54:01.610851Z"}]}}
