{"id":"CVE-2020-14001","aliases":["ALPINE-CVE-2020-14001","DEBIAN-CVE-2020-14001","DLA-2316-1","DSA-4743-1","EUVD-2020-0635","GHSA-mqm2-cgpr-p4m6","OESA-2021-1280","SUSE-SU-2022:3259-1","UBUNTU-CVE-2020-14001","USN-4562-1","USN-9060-1","openSUSE-SU-2024:11336-1","openSUSE-SU-2024:12038-1","openSUSE-SU-2024:13161-1","openSUSE-SU-2024:14170-1","openSUSE-SU-2025:15119-1","openSUSE-SU-2026:10352-1"],"status":"published","title":"Unintended read access in kramdown gem","description":"The kramdown gem before 2.3.0 for Ruby processes the template option inside Kramdown documents by default, which allows unintended read access (such as template=\"/etc/passwd\") or unintended embedded Ruby code execution (such as a string that begins with template=\"string://\u003c%= `). NOTE: kramdown is used in Jekyll, GitLab Pages, GitHub Pages, and Thredded Forum.","severity":{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-12","score":0.0456,"percentile":0.91724,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-862"],"published":"2020-07-17T15:27:54Z","modified":"2026-11-12T17:29:28Z","fixes":[{"ecosystem":"RubyGems","package":"kramdown","fixed_in":["2.3.0"],"sources":["ghsa","osv"]},{"ecosystem":"Alpine:v3.12","package":"icinga2","fixed_in":["2.11.3-r1"],"sources":["osv"]},{"ecosystem":"Alpine:v3.13","package":"icinga2","fixed_in":["2.11.3-r1"],"sources":["osv"]},{"ecosystem":"Alpine:v3.14","package":"icinga2","fixed_in":["2.11.3-r1"],"sources":["osv"]},{"ecosystem":"Alpine:v3.15","package":"icinga2","fixed_in":["2.11.3-r1"],"sources":["osv"]},{"ecosystem":"Alpine:v3.16","package":"icinga2","fixed_in":["2.11.3-r1"],"sources":["osv"]},{"ecosystem":"Alpine:v3.17","package":"icinga2","fixed_in":["2.11.3-r1"],"sources":["osv"]},{"ecosystem":"Alpine:v3.18","package":"icinga2","fixed_in":["2.11.3-r1"],"sources":["osv"]},{"ecosystem":"Alpine:v3.19","package":"icinga2","fixed_in":["2.11.3-r1"],"sources":["osv"]},{"ecosystem":"Alpine:v3.20","package":"icinga2","fixed_in":["2.11.3-r1"],"sources":["osv"]},{"ecosystem":"Alpine:v3.21","package":"icinga2","fixed_in":["2.11.3-r1"],"sources":["osv"]},{"ecosystem":"Alpine:v3.22","package":"icinga2","fixed_in":["2.11.3-r1"],"sources":["osv"]},{"ecosystem":"Alpine:v3.23","package":"icinga2","fixed_in":["2.11.3-r1"],"sources":["osv"]},{"ecosystem":"Alpine:v3.24","package":"icinga2","fixed_in":["2.11.3-r1"],"sources":["osv"]},{"ecosystem":"Debian:12","package":"ruby-kramdown","fixed_in":["2.3.0-3"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"ruby-kramdown","fixed_in":["2.3.0-3"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"ruby-kramdown","fixed_in":["2.3.0-3"],"sources":["osv"]},{"ecosystem":"Debian:9","package":"ruby-kramdown","fixed_in":["1.12.0-1+deb9u1"],"sources":["osv"]},{"ecosystem":"Debian:10","package":"ruby-kramdown","fixed_in":["1.17.0-1+deb10u1"],"sources":["osv"]},{"ecosystem":"openEuler:20.03-LTS-SP1","package":"rubygem-kramdown","fixed_in":["2.1.0-3.oe1"],"sources":["osv"]},{"ecosystem":"openEuler:20.03-LTS-SP2","package":"rubygem-kramdown","fixed_in":["2.1.0-3.oe1"],"sources":["osv"]},{"ecosystem":"SUSE:Linux Enterprise High Availability Extension 15","package":"rubygem-kramdown","fixed_in":["1.15.0-150000.3.3.1"],"sources":["osv"]},{"ecosystem":"SUSE:Linux Enterprise High Availability Extension 15 SP1","package":"rubygem-kramdown","fixed_in":["1.15.0-150000.3.3.1"],"sources":["osv"]},{"ecosystem":"SUSE:Linux Enterprise High Availability Extension 15 SP2","package":"rubygem-kramdown","fixed_in":["1.15.0-150000.3.3.1"],"sources":["osv"]},{"ecosystem":"SUSE:Linux Enterprise High Availability Extension 15 SP3","package":"rubygem-kramdown","fixed_in":["1.15.0-150000.3.3.1"],"sources":["osv"]},{"ecosystem":"SUSE:Linux Enterprise High Availability Extension 15 SP4","package":"rubygem-kramdown","fixed_in":["1.15.0-150000.3.3.1"],"sources":["osv"]},{"ecosystem":"openSUSE:Leap 15.3","package":"rubygem-kramdown","fixed_in":["1.15.0-150000.3.3.1"],"sources":["osv"]},{"ecosystem":"openSUSE:Leap 15.4","package":"rubygem-kramdown","fixed_in":["1.15.0-150000.3.3.1"],"sources":["osv"]},{"ecosystem":"Ubuntu:Pro:16.04:LTS","package":"ruby-kramdown","fixed_in":["1.10.0-1ubuntu0.1~esm1"],"sources":["osv"]},{"ecosystem":"Ubuntu:Pro:18.04:LTS","package":"ruby-kramdown","fixed_in":["1.15.0-1ubuntu0.1~esm1"],"sources":["osv"]},{"ecosystem":"Ubuntu:20.04:LTS","package":"ruby-kramdown","fixed_in":["1.17.0-4ubuntu0.1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"RubyGems","package":"kramdown","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.3.0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.12","package":"icinga2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.11.3-r1"}]}]},{"source":"osv","ecosystem":"Alpine:v3.13","package":"icinga2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.11.3-r1"}]}]},{"source":"osv","ecosystem":"Alpine:v3.14","package":"icinga2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.11.3-r1"}]}]},{"source":"osv","ecosystem":"Alpine:v3.15","package":"icinga2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.11.3-r1"}]}]},{"source":"osv","ecosystem":"Alpine:v3.16","package":"icinga2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.11.3-r1"}]}]},{"source":"osv","ecosystem":"Alpine:v3.17","package":"icinga2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.11.3-r1"}]}]},{"source":"osv","ecosystem":"Alpine:v3.18","package":"icinga2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.11.3-r1"}]}]},{"source":"osv","ecosystem":"Alpine:v3.19","package":"icinga2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.11.3-r1"}]}]},{"source":"osv","ecosystem":"Alpine:v3.20","package":"icinga2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.11.3-r1"}]}]},{"source":"osv","ecosystem":"Alpine:v3.21","package":"icinga2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.11.3-r1"}]}]},{"source":"osv","ecosystem":"Alpine:v3.22","package":"icinga2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.11.3-r1"}]}]},{"source":"osv","ecosystem":"Alpine:v3.23","package":"icinga2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.11.3-r1"}]}]},{"source":"osv","ecosystem":"Alpine:v3.24","package":"icinga2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.11.3-r1"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"ruby-kramdown","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.3.0-3"}]}]},{"source":"osv","ecosystem":"Debian:13","package":"ruby-kramdown","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.3.0-3"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"ruby-kramdown","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.3.0-3"}]}]},{"source":"osv","ecosystem":"Debian:9","package":"ruby-kramdown","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.12.0-1+deb9u1"}]}],"versions":["1.12.0-1"]},{"source":"osv","ecosystem":"Debian:10","package":"ruby-kramdown","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.17.0-1+deb10u1"}]}],"versions":["1.17.0-1"]},{"source":"osv","ecosystem":"RubyGems","package":"kramdown","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.3.0"}]}],"versions":["0.1.0","0.10.0","0.11.0","0.12.0","0.13.1","0.13.2","0.13.3","0.13.4","0.13.5","0.13.6","0.13.7","0.13.8","0.14.0","0.14.1","0.14.2","0.2.0","0.3.0","0.4.0","0.5.0","0.6.0","0.7.0","0.8.0","0.9.0","1.0.0","1.0.1","1.0.2","1.1.0","1.10.0","1.11.0","1.11.1","1.12.0","1.13.0","1.13.1","1.13.2","1.14.0","1.15.0","1.16.0","1.16.1","1.16.2","1.17.0","1.2.0","1.3.0","1.3.1","1.3.2","1.3.3","1.4.0","1.4.1","1.4.2","1.5.0","1.6.0","1.7.0","1.8.0","1.9.0","2.0.0","2.0.0.beta1","2.0.0.beta2","2.1.0","2.2.0","2.2.1"]},{"source":"osv","ecosystem":"openEuler:20.03-LTS-SP1","package":"rubygem-kramdown","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.0-3.oe1"}]}]},{"source":"osv","ecosystem":"openEuler:20.03-LTS-SP2","package":"rubygem-kramdown","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.0-3.oe1"}]}]},{"source":"osv","ecosystem":"SUSE:Linux Enterprise High Availability Extension 15","package":"rubygem-kramdown","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.15.0-150000.3.3.1"}]}]},{"source":"osv","ecosystem":"SUSE:Linux Enterprise High Availability Extension 15 SP1","package":"rubygem-kramdown","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.15.0-150000.3.3.1"}]}]},{"source":"osv","ecosystem":"SUSE:Linux Enterprise High Availability Extension 15 SP2","package":"rubygem-kramdown","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.15.0-150000.3.3.1"}]}]},{"source":"osv","ecosystem":"SUSE:Linux Enterprise High Availability Extension 15 SP3","package":"rubygem-kramdown","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.15.0-150000.3.3.1"}]}]},{"source":"osv","ecosystem":"SUSE:Linux Enterprise High Availability Extension 15 SP4","package":"rubygem-kramdown","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.15.0-150000.3.3.1"}]}]},{"source":"osv","ecosystem":"openSUSE:Leap 15.3","package":"rubygem-kramdown","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.15.0-150000.3.3.1"}]}]},{"source":"osv","ecosystem":"openSUSE:Leap 15.4","package":"rubygem-kramdown","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.15.0-150000.3.3.1"}]}]},{"source":"osv","ecosystem":"Ubuntu:Pro:16.04:LTS","package":"ruby-kramdown","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.10.0-1ubuntu0.1~esm1"}]}],"versions":["1.8.0-1","1.10.0-1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:18.04:LTS","package":"ruby-kramdown","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.15.0-1ubuntu0.1~esm1"}]}],"versions":["1.14.0-1","1.15.0-1"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"ruby-kramdown","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.17.0-4ubuntu0.1"}]}],"versions":["1.17.0-1","1.17.0-2","1.17.0-4"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"ruby-kramdown","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.17.0-4ubuntu0.1"}]}],"versions":["1.17.0-1","1.17.0-2","1.17.0-4"]},{"source":"osv","ecosystem":"Ubuntu:Pro:16.04:LTS","package":"ruby-kramdown","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.10.0-1ubuntu0.1~esm1"}]}],"versions":["1.8.0-1","1.10.0-1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:18.04:LTS","package":"ruby-kramdown","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.15.0-1ubuntu0.1~esm1"}]}],"versions":["1.14.0-1","1.15.0-1"]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"rubygem-kramdown","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.4.0-1.1"}]}],"bundled":2},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"ruby3.2-rubygem-kramdown","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.4.0-1.8"}]}],"bundled":2},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"rubygem-kramdown","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.4.0-1.12"}]}],"bundled":2},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"rubygem-kramdown","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.4.0-1.15"}]}],"bundled":2},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"rubygem-kramdown","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.4.0-1.17"}]}],"bundled":2}],"products":[{"vendor":"canonical","product":"ubuntu_linux"},{"vendor":"debian","product":"debian_linux"},{"vendor":"fedoraproject","product":"fedora"},{"vendor":"kramdown_project","product":"kramdown"}],"references":[{"url":"https://github.com/gettalong/kramdown","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","advisory","package","report"]},{"url":"https://kramdown.gettalong.org","tags":["x_refsource_MISC","x_transferred","Vendor Advisory","advisory","web","report"]},{"url":"https://rubygems.org/gems/kramdown","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","advisory","web","report"]},{"url":"https://kramdown.gettalong.org/news.html","tags":["x_refsource_CONFIRM","x_transferred","Release Notes","Vendor Advisory","advisory","web","report"]},{"url":"https://github.com/gettalong/kramdown/commit/1b8fd33c3120bfc6e5164b449e2c2fc9c9306fde","tags":["x_refsource_CONFIRM","x_transferred","Patch","Third Party Advisory","fix","web","report"]},{"url":"https://github.com/gettalong/kramdown/compare/REL_2_2_1...REL_2_3_0","tags":["x_refsource_CONFIRM","x_transferred","Patch","Third Party Advisory","fix","web","report"]},{"url":"https://security.netapp.com/advisory/ntap-20200731-0004/","tags":["x_refsource_CONFIRM","x_transferred","Third Party Advisory","advisory"]},{"url":"https://lists.apache.org/thread.html/r96df7899fbb456fe2705882f710a0c8e8614b573fbffd8d12e3f54d2%40%3Cnotifications.fluo.apache.org%3E","tags":["mailing-list","x_refsource_MLIST","x_transferred","web"]},{"url":"https://lists.debian.org/debian-lts-announce/2020/08/msg00014.html","tags":["mailing-list","x_refsource_MLIST","x_transferred","Mailing List","Third Party Advisory","advisory","web"]},{"url":"https://www.debian.org/security/2020/dsa-4743","tags":["vendor-advisory","x_refsource_DEBIAN","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/KBLTGBYU7NKOUOHDKVCU4GFZMGA6BP4L/","tags":["vendor-advisory","x_refsource_FEDORA","x_transferred","web"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/ENMMGKHRQIZ3QKGOMBBBGB6B4LB5I7NQ/","tags":["vendor-advisory","x_refsource_FEDORA","x_transferred","web"]},{"url":"https://usn.ubuntu.com/4562-1/","tags":["vendor-advisory","x_refsource_UBUNTU","x_transferred","Third Party Advisory","advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-14001","tags":["advisory"]},{"url":"https://lists.apache.org/thread.html/r96df7899fbb456fe2705882f710a0c8e8614b573fbffd8d12e3f54d2@%3Cnotifications.fluo.apache.org%3E","tags":["web"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/ENMMGKHRQIZ3QKGOMBBBGB6B4LB5I7NQ/"},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/KBLTGBYU7NKOUOHDKVCU4GFZMGA6BP4L/"},{"url":"https://github.com/advisories/GHSA-mqm2-cgpr-p4m6","tags":["advisory"]},{"url":"https://github.com/rubysec/ruby-advisory-db/blob/master/gems/kramdown/CVE-2020-14001.yml","tags":["web"]},{"url":"https://security.alpinelinux.org/vuln/CVE-2020-14001","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2020-14001","tags":["advisory"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/ENMMGKHRQIZ3QKGOMBBBGB6B4LB5I7NQ","tags":["web"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/KBLTGBYU7NKOUOHDKVCU4GFZMGA6BP4L","tags":["web"]},{"url":"https://security.netapp.com/advisory/ntap-20200731-0004","tags":["web"]},{"url":"https://usn.ubuntu.com/4562-1","tags":["web"]},{"url":"https://openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2021-1280","tags":["advisory"]},{"url":"https://www.suse.com/support/update/announcement/2022/suse-su-20223259-1/","tags":["advisory"]},{"url":"https://bugzilla.suse.com/1174297","tags":["report"]},{"url":"https://www.suse.com/security/cve/CVE-2020-14001","tags":["web"]},{"url":"https://ubuntu.com/security/CVE-2020-14001","tags":["report"]},{"url":"https://ubuntu.com/security/notices/USN-4562-1","tags":["advisory"]},{"url":"https://ubuntu.com/security/notices/USN-4562-2","tags":["advisory"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2020-14001","tags":["report"]},{"url":"https://ubuntu.com/security/notices/USN-9060-1","tags":["advisory"]},{"url":"","tags":["advisory"]},{"url":"https://www.suse.com/security/cve/CVE-2021-28834","tags":["web"]},{"url":"https://lists.opensuse.org/archives/list/security-announce@lists.opensuse.org/thread/FZZEL5EJD5QLTIY6EGGTCXQMVMERPE6X/","tags":["advisory"]}],"sources":{"cve":[{"id":"CVE-2020-14001","description":"The kramdown gem before 2.3.0 for Ruby processes the template option inside Kramdown documents by default, which allows unintended read access (such as template=\"/etc/passwd\") or unintended embedded Ruby code execution (such as a string that begins with template=\"string://\u003c%= `). NOTE: kramdown is used in Jekyll, GitLab Pages, GitHub Pages, and Thredded Forum.","status":"published","published":"2020-07-17T15:27:54Z","modified":"2024-08-04T12:32:14.657Z","updated_at":"2026-11-02T14:35:46.873079Z"}],"euvd":[{"id":"EUVD-2020-0635","description":"The kramdown gem before 2.3.0 for Ruby processes the template option inside Kramdown documents by default, which allows unintended read access (such as template=\"/etc/passwd\") or unintended embedded Ruby code execution (such as a string that begins with template=\"string://\u003c%= `). NOTE: kramdown is used in Jekyll, GitLab Pages, GitHub Pages, and Thredded Forum.","status":"published","published":"2020-07-17T15:27:54Z","modified":"2024-08-04T12:32:14Z","updated_at":"2026-11-03T03:07:36.182524Z"}],"ghsa":[{"id":"GHSA-mqm2-cgpr-p4m6","title":"Unintended read access in kramdown gem","description":"The kramdown gem before 2.3.0 for Ruby processes the template option inside Kramdown documents by default, which allows unintended read access (such as template=\"/etc/passwd\") or unintended embedded Ruby code execution (such as a string that begins with template=\"string://\u003c%= `). NOTE: kramdown is used in Jekyll, GitLab Pages, GitHub Pages, and Thredded Forum.","status":"published","published":"2020-08-07T22:27:41Z","modified":"2023-08-28T14:01:32Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-862"],"updated_at":"2026-11-02T14:37:01.345964Z"}],"nvd":[{"id":"CVE-2020-14001","description":"The kramdown gem before 2.3.0 for Ruby processes the template option inside Kramdown documents by default, which allows unintended read access (such as template=\"/etc/passwd\") or unintended embedded Ruby code execution (such as a string that begins with template=\"string://\u003c%= `). NOTE: kramdown is used in Jekyll, GitLab Pages, GitHub Pages, and Thredded Forum.","status":"published","published":"2020-07-17T16:15:11.23Z","modified":"2026-06-17T02:54:04.953Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary"},{"version":"2.0","score":7.5,"vector":"AV:N/AC:L/Au:N/C:P/I:P/A:P","level":"high","assessor":"primary"}],"cwes":["CWE-862"],"updated_at":"2026-11-02T14:06:10.086163Z"}],"osv":[{"id":"ALPINE-CVE-2020-14001","description":"The kramdown gem before 2.3.0 for Ruby processes the template option inside Kramdown documents by default, which allows unintended read access (such as template=\"/etc/passwd\") or unintended embedded Ruby code execution (such as a string that begins with template=\"string://\u003c%= `). NOTE: kramdown is used in Jekyll, GitLab Pages, GitHub Pages, and Thredded Forum.","status":"published","published":"2020-07-17T16:15:11.23Z","modified":"2026-11-03T06:32:23.642280359Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-03T07:17:57.723967Z"},{"id":"CVE-2020-14001","description":"The kramdown gem before 2.3.0 for Ruby processes the template option inside Kramdown documents by default, which allows unintended read access (such as template=\"/etc/passwd\") or unintended embedded Ruby code execution (such as a string that begins with template=\"string://\u003c%= `). NOTE: kramdown is used in Jekyll, GitLab Pages, GitHub Pages, and Thredded Forum.","status":"published","published":"2020-07-17T16:15:11.23Z","modified":"2026-10-20T10:51:49.47076898Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:44:14.418339Z"},{"id":"DEBIAN-CVE-2020-14001","description":"The kramdown gem before 2.3.0 for Ruby processes the template option inside Kramdown documents by default, which allows unintended read access (such as template=\"/etc/passwd\") or unintended embedded Ruby code execution (such as a string that begins with template=\"string://\u003c%= `). NOTE: kramdown is used in Jekyll, GitLab Pages, GitHub Pages, and Thredded Forum.","status":"published","published":"2020-07-17T16:15:11.23Z","modified":"2026-10-26T12:00:22.183379267Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:45:32.862554Z"},{"id":"GHSA-mqm2-cgpr-p4m6","title":"Unintended read access in kramdown gem","description":"The kramdown gem before 2.3.0 for Ruby processes the template option inside Kramdown documents by default, which allows unintended read access (such as template=\"/etc/passwd\") or unintended embedded Ruby code execution (such as a string that begins with template=\"string://\u003c%= `). NOTE: kramdown is used in Jekyll, GitLab Pages, GitHub Pages, and Thredded Forum.","status":"published","published":"2020-08-07T22:27:41Z","modified":"2024-02-18T05:27:22.932897Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-862"],"updated_at":"2026-11-02T15:46:52.170928Z"},{"id":"OESA-2021-1280","title":"rubygem-kramdown security update","description":"kramdown is yet-another-markdown-parser but fast, pure Ruby, using a strict syntax definition and supporting several common extensions.\r\n\r\nSecurity Fix(es):\r\n\r\nThe kramdown gem before 2.3.0 for Ruby processes the template option inside Kramdown documents by default, which allows unintended read access (such as template=\u0026quot;/etc/passwd\u0026quot;) or unintended embedded Ruby code execution (such as a string that begins with template=\u0026quot;string://\u0026lt;%= `). NOTE: kramdown is used in Jekyll, GitLab Pages, GitHub Pages, and Thredded Forum.(CVE-2020-14001)","status":"published","published":"2021-07-27T11:04:31Z","modified":"2026-08-18T01:15:49.295921354Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:52:38.987987Z"},{"id":"UBUNTU-CVE-2020-14001","description":"The kramdown gem before 2.3.0 for Ruby processes the template option inside Kramdown documents by default, which allows unintended read access (such as template=\"/etc/passwd\") or unintended embedded Ruby code execution (such as a string that begins with template=\"string://\u003c%= `). NOTE: kramdown is used in Jekyll, GitLab Pages, GitHub Pages, and Thredded Forum.","status":"published","published":"2020-07-17T16:15:00Z","modified":"2026-11-12T17:28:31.199094532Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-12T18:02:27.840523Z"},{"id":"DLA-2316-1","title":"ruby-kramdown - security update","status":"published","published":"2020-08-08T00:00:00Z","modified":"2026-03-09T01:19:33.448549Z","updated_at":"2026-11-02T15:46:10.227108Z"},{"id":"DSA-4743-1","title":"ruby-kramdown - security update","status":"published","published":"2020-08-10T00:00:00Z","modified":"2026-03-09T02:08:38.332788Z","updated_at":"2026-11-02T15:46:17.19998Z"},{"id":"openSUSE-SU-2024:11336-1","title":"ruby2.7-rubygem-kramdown-2.3.1-1.3 on GA media","description":"These are all security issues fixed in the ruby2.7-rubygem-kramdown-2.3.1-1.3 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2024-06-15T00:00:00Z","modified":"2026-02-04T03:35:14.485929Z","updated_at":"2026-11-02T16:58:35.195147Z"},{"id":"openSUSE-SU-2024:12038-1","title":"ruby3.1-rubygem-kramdown-2.4.0-1.1 on GA media","description":"These are all security issues fixed in the ruby3.1-rubygem-kramdown-2.4.0-1.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2024-06-15T00:00:00Z","modified":"2026-02-04T02:27:27.842617Z","updated_at":"2026-11-02T16:58:35.485255Z"},{"id":"openSUSE-SU-2024:13161-1","title":"ruby3.2-rubygem-kramdown-2.4.0-1.8 on GA media","description":"These are all security issues fixed in the ruby3.2-rubygem-kramdown-2.4.0-1.8 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2024-06-15T00:00:00Z","modified":"2026-02-04T03:54:14.570644Z","updated_at":"2026-11-02T16:58:36.025801Z"},{"id":"openSUSE-SU-2024:14170-1","title":"ruby3.3-rubygem-kramdown-2.4.0-1.12 on GA media","description":"These are all security issues fixed in the ruby3.3-rubygem-kramdown-2.4.0-1.12 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2024-07-12T00:00:00Z","modified":"2026-02-04T04:33:41.772393Z","updated_at":"2026-11-02T16:58:36.662953Z"},{"id":"openSUSE-SU-2025:15119-1","title":"ruby3.4-rubygem-kramdown-2.4.0-1.15 on GA media","description":"These are all security issues fixed in the ruby3.4-rubygem-kramdown-2.4.0-1.15 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2025-05-17T00:00:00Z","modified":"2026-02-04T03:30:48.588249Z","updated_at":"2026-11-02T16:58:37.399567Z"},{"id":"openSUSE-SU-2026:10352-1","title":"ruby4.0-rubygem-kramdown-2.4.0-1.17 on GA media","description":"These are all security issues fixed in the ruby4.0-rubygem-kramdown-2.4.0-1.17 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2026-03-13T00:00:00Z","modified":"2026-03-14T08:44:10.560171Z","updated_at":"2026-11-02T16:58:38.415593Z"},{"id":"SUSE-SU-2022:3259-1","title":"Security update for rubygem-kramdown","description":"This update for rubygem-kramdown fixes the following issues:\n\n- CVE-2020-14001: Fixed processing template options inside documents allowing unintended read access or embedded Ruby code execution (bsc#1174297).\n","status":"published","published":"2022-09-12T10:51:09Z","modified":"2026-02-04T03:32:40.729644Z","updated_at":"2026-11-02T15:53:51.440565Z"},{"id":"USN-4562-1","title":"ruby-kramdown vulnerability","description":"It was discovered that kramdown insecurely handled certain crafted input.\nAn attacker could use this vulnerability to read restricted files or\nexecute arbitrary code.\n","status":"published","published":"2020-09-30T21:41:19Z","modified":"2026-04-27T15:44:07.989953Z","updated_at":"2026-11-02T16:58:15.159055Z"},{"id":"USN-9060-1","title":"ruby-kramdown vulnerability","description":"It was discovered that kramdown processed the template option in documents\nby default. An attacker could possibly use this issue to read arbitrary\nfiles or execute arbitrary code.","status":"published","published":"2026-11-11T18:33:31Z","modified":"2026-11-12T17:29:28.204610033Z","updated_at":"2026-11-12T18:08:46.665847Z"}]}}
