{"id":"CVE-2026-52860","aliases":["ALPINE-CVE-2026-52860","AZL-89769","BELL-CVE-2026-52860","CLSA-2026-1782221662","CLSA-2026-1782221997","CLSA-2026-1782223154","CLSA-2026-1782294876","CLSA-2026-1782299449","CLSA-2026-1782299648","CLSA-2026-1787394930","DEBIAN-CVE-2026-52860","EUVD-2026-36285","MGASA-2026-0240","OESA-2026-2761","OESA-2026-2762","OESA-2026-2763","OESA-2026-2863","RHSA-2026:57614","ROOT-OS-DEBIAN-11-CVE-2026-52860","ROOT-OS-DEBIAN-12-CVE-2026-52860","UBUNTU-CVE-2026-52860"],"status":"published","title":"Vim: Arbitrary Code Execution via Python Omni-Completion","description":"Vim is an open source, command line text editor. Prior to version 9.2.0597, Vim's Python omni-completion executes reconstructed function and class definitions from the current buffer with exec() as part of populating the completion dictionary. Python evaluates function default values, parameter annotations, and class base expressions at definition time, so a hostile buffer can execute attacker-controlled Python expressions during omni-completion. The existing g:pythoncomplete_allow_import mitigation (GHSA-52mc-rq6p-rc7c) does not cover this path, because the attacker-controlled code is not a harvested import/from statement. This issue has been patched in version 9.2.0597.","severity":{"version":"4.0","score":7.5,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/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.00224,"percentile":0.13055,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-94"],"published":"2026-06-11T18:33:45Z","modified":"2026-11-03T06:33:03Z","fixes":[{"ecosystem":"Alpine:v3.23","package":"vim","fixed_in":["9.2.0602-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.24","package":"vim","fixed_in":["9.2.0602-r0"],"sources":["osv"]},{"ecosystem":"Azure Linux:3","package":"vim","fixed_in":["9.2.0620-1"],"sources":["osv"]},{"ecosystem":"Alpaquita:23","package":"vim","fixed_in":["9.2.0602-r0"],"sources":["osv"]},{"ecosystem":"Alpaquita:25","package":"vim","fixed_in":["9.2.0602-r0"],"sources":["osv"]},{"ecosystem":"Alpaquita:stream","package":"vim","fixed_in":["9.2.0602-r0"],"sources":["osv"]},{"ecosystem":"TuxCare:OracleLinux:6","package":"vim-X11","fixed_in":["3:7.4.629-5.2.el6.tuxcare.els56"],"sources":["osv"]},{"ecosystem":"TuxCare:OracleLinux:6","package":"vim-common","fixed_in":["3:7.4.629-5.2.el6.tuxcare.els56"],"sources":["osv"]},{"ecosystem":"TuxCare:OracleLinux:6","package":"vim-enhanced","fixed_in":["3:7.4.629-5.2.el6.tuxcare.els56"],"sources":["osv"]},{"ecosystem":"TuxCare:OracleLinux:6","package":"vim-filesystem","fixed_in":["3:7.4.629-5.2.el6.tuxcare.els56"],"sources":["osv"]},{"ecosystem":"TuxCare:OracleLinux:6","package":"vim-minimal","fixed_in":["3:7.4.629-5.2.el6.tuxcare.els56"],"sources":["osv"]},{"ecosystem":"TuxCare:CentOS:6","package":"vim-X11","fixed_in":["3:7.4.629-5.2.el6.tuxcare.els56"],"sources":["osv"]},{"ecosystem":"TuxCare:CentOS:6","package":"vim-common","fixed_in":["3:7.4.629-5.2.el6.tuxcare.els56"],"sources":["osv"]},{"ecosystem":"TuxCare:CentOS:6","package":"vim-enhanced","fixed_in":["3:7.4.629-5.2.el6.tuxcare.els56"],"sources":["osv"]},{"ecosystem":"TuxCare:CentOS:6","package":"vim-filesystem","fixed_in":["3:7.4.629-5.2.el6.tuxcare.els56"],"sources":["osv"]},{"ecosystem":"TuxCare:CentOS:6","package":"vim-minimal","fixed_in":["3:7.4.629-5.2.el6.tuxcare.els56"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"vim","fixed_in":["2:9.1.1230-2+deb13u1"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"vim","fixed_in":["2:9.2.0782-1"],"sources":["osv"]},{"ecosystem":"Root:Debian:11","package":"vim","fixed_in":["2:8.2.2434-3+deb11u3.aikido.5","2:8.2.2434-3+deb11u3.aikido.6","2:8.2.2434-3+deb11u3.aikido.7","2:8.2.2434-3+deb11u3.root.io.4","2:8.2.2434-3+deb11u3.root.io.3","2:8.2.2434-3+deb11u3.aikido.8"],"sources":["osv"]},{"ecosystem":"Root:Debian:11","package":"rootio-vim","fixed_in":["2:8.2.2434-3+deb11u3.aikido.5","2:8.2.2434-3+deb11u3.aikido.6","2:8.2.2434-3+deb11u3.aikido.7","2:8.2.2434-3+deb11u3.root.io.4","2:8.2.2434-3+deb11u3.root.io.3","2:8.2.2434-3+deb11u3.aikido.8"],"sources":["osv"]},{"ecosystem":"Root:Debian:12","package":"vim","fixed_in":["2:9.0.1378-2+deb12u2.aikido.20","2:9.0.1378-2+deb12u2.root.io.19","2:9.0.1378-2+deb12u2.root.io.18","2:9.0.1378-2+deb12u2.aikido.21"],"sources":["osv"]},{"ecosystem":"Root:Debian:12","package":"rootio-vim","fixed_in":["2:9.0.1378-2+deb12u2.aikido.20","2:9.0.1378-2+deb12u2.root.io.19","2:9.0.1378-2+deb12u2.root.io.18","2:9.0.1378-2+deb12u2.aikido.21"],"sources":["osv"]},{"ecosystem":"Ubuntu:Pro:14.04:LTS","package":"vim","fixed_in":["2:7.4.052-1ubuntu3.1+esm29"],"sources":["osv"]},{"ecosystem":"Ubuntu:Pro:16.04:LTS","package":"vim","fixed_in":["2:7.4.1689-3ubuntu1.5+esm35"],"sources":["osv"]},{"ecosystem":"Ubuntu:Pro:18.04:LTS","package":"vim","fixed_in":["2:8.0.1453-1ubuntu1.13+esm20"],"sources":["osv"]},{"ecosystem":"Ubuntu:Pro:20.04:LTS","package":"vim","fixed_in":["2:8.1.2269-1ubuntu5.32+esm8"],"sources":["osv"]},{"ecosystem":"Ubuntu:22.04:LTS","package":"vim","fixed_in":["2:8.2.3995-1ubuntu2.32"],"sources":["osv"]},{"ecosystem":"Ubuntu:24.04:LTS","package":"vim","fixed_in":["2:9.1.0016-1ubuntu7.16"],"sources":["osv"]},{"ecosystem":"Ubuntu:25.10","package":"vim","fixed_in":["2:9.1.0967-1ubuntu6.7"],"sources":["osv"]},{"ecosystem":"Ubuntu:26.04:LTS","package":"vim","fixed_in":["2:9.1.2141-1ubuntu4.5"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Alpine:v3.23","package":"vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"9.2.0602-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.24","package":"vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"9.2.0602-r0"}]}]},{"source":"osv","ecosystem":"Azure Linux:3","package":"vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"9.2.0620-1"}]}]},{"source":"osv","ecosystem":"Alpaquita:23","package":"vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"9.0.0820-r2"},{"fixed":"9.2.0602-r0"}]}]},{"source":"osv","ecosystem":"Alpaquita:25","package":"vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"9.1.1415-r0"},{"fixed":"9.2.0602-r0"}]}]},{"source":"osv","ecosystem":"Alpaquita:stream","package":"vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"9.0.1395-r0"},{"fixed":"9.2.0602-r0"}]}]},{"source":"osv","ecosystem":"TuxCare:Debian:10","package":"vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:8.1.0875-5+deb10u6+tuxcare.els22"}]}],"bundled":4},{"source":"osv","ecosystem":"TuxCare:Debian:10","package":"vim-athena","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:8.1.0875-5+deb10u6+tuxcare.els22"}]}],"bundled":4},{"source":"osv","ecosystem":"TuxCare:Debian:10","package":"vim-common","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:8.1.0875-5+deb10u6+tuxcare.els22"}]}],"bundled":4},{"source":"osv","ecosystem":"TuxCare:Debian:10","package":"vim-doc","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:8.1.0875-5+deb10u6+tuxcare.els22"}]}],"bundled":4},{"source":"osv","ecosystem":"TuxCare:Debian:10","package":"vim-gtk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:8.1.0875-5+deb10u6+tuxcare.els22"}]}],"bundled":4},{"source":"osv","ecosystem":"TuxCare:Debian:10","package":"vim-gtk3","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:8.1.0875-5+deb10u6+tuxcare.els22"}]}],"bundled":4},{"source":"osv","ecosystem":"TuxCare:Debian:10","package":"vim-gui-common","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:8.1.0875-5+deb10u6+tuxcare.els22"}]}],"bundled":4},{"source":"osv","ecosystem":"TuxCare:Debian:10","package":"vim-nox","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:8.1.0875-5+deb10u6+tuxcare.els22"}]}],"bundled":4},{"source":"osv","ecosystem":"TuxCare:Debian:10","package":"vim-runtime","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:8.1.0875-5+deb10u6+tuxcare.els22"}]}],"bundled":4},{"source":"osv","ecosystem":"TuxCare:Debian:10","package":"vim-tiny","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:8.1.0875-5+deb10u6+tuxcare.els22"}]}],"bundled":4},{"source":"osv","ecosystem":"TuxCare:Debian:10","package":"xxd","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:8.1.0875-5+deb10u6+tuxcare.els22"}]}],"bundled":4},{"source":"osv","ecosystem":"TuxCare:OracleLinux:7","package":"vim-X11","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:7.4.629-8.0.1.el7_9.tuxcare.els21"}]}],"bundled":2},{"source":"osv","ecosystem":"TuxCare:OracleLinux:7","package":"vim-common","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:7.4.629-8.0.1.el7_9.tuxcare.els21"}]}],"bundled":2},{"source":"osv","ecosystem":"TuxCare:OracleLinux:7","package":"vim-enhanced","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:7.4.629-8.0.1.el7_9.tuxcare.els21"}]}],"bundled":2},{"source":"osv","ecosystem":"TuxCare:OracleLinux:7","package":"vim-filesystem","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:7.4.629-8.0.1.el7_9.tuxcare.els21"}]}],"bundled":2},{"source":"osv","ecosystem":"TuxCare:OracleLinux:7","package":"vim-minimal","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:7.4.629-8.0.1.el7_9.tuxcare.els21"}]}],"bundled":2},{"source":"osv","ecosystem":"TuxCare:CentOS:7","package":"vim-X11","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:7.4.629-8.0.1.el7_9.tuxcare.els21"}]}],"bundled":2},{"source":"osv","ecosystem":"TuxCare:CentOS:7","package":"vim-common","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:7.4.629-8.0.1.el7_9.tuxcare.els21"}]}],"bundled":2},{"source":"osv","ecosystem":"TuxCare:CentOS:7","package":"vim-enhanced","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:7.4.629-8.0.1.el7_9.tuxcare.els21"}]}],"bundled":2},{"source":"osv","ecosystem":"TuxCare:CentOS:7","package":"vim-filesystem","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:7.4.629-8.0.1.el7_9.tuxcare.els21"}]}],"bundled":2},{"source":"osv","ecosystem":"TuxCare:CentOS:7","package":"vim-minimal","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:7.4.629-8.0.1.el7_9.tuxcare.els21"}]}],"bundled":2},{"source":"osv","ecosystem":"TuxCare:Ubuntu:16.04","package":"vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3:7.4.1689-3ubuntu1.5+tuxcare.els69"}]}],"bundled":2},{"source":"osv","ecosystem":"TuxCare:Ubuntu:16.04","package":"vim-athena","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3:7.4.1689-3ubuntu1.5+tuxcare.els69"}]}],"bundled":2},{"source":"osv","ecosystem":"TuxCare:Ubuntu:16.04","package":"vim-athena-py2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3:7.4.1689-3ubuntu1.5+tuxcare.els69"}]}],"bundled":2},{"source":"osv","ecosystem":"TuxCare:Ubuntu:16.04","package":"vim-common","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3:7.4.1689-3ubuntu1.5+tuxcare.els69"}]}],"bundled":2},{"source":"osv","ecosystem":"TuxCare:Ubuntu:16.04","package":"vim-doc","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3:7.4.1689-3ubuntu1.5+tuxcare.els69"}]}],"bundled":2},{"source":"osv","ecosystem":"TuxCare:Ubuntu:16.04","package":"vim-gnome","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3:7.4.1689-3ubuntu1.5+tuxcare.els69"}]}],"bundled":2},{"source":"osv","ecosystem":"TuxCare:Ubuntu:16.04","package":"vim-gnome-py2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3:7.4.1689-3ubuntu1.5+tuxcare.els69"}]}],"bundled":2},{"source":"osv","ecosystem":"TuxCare:Ubuntu:16.04","package":"vim-gtk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3:7.4.1689-3ubuntu1.5+tuxcare.els69"}]}],"bundled":2},{"source":"osv","ecosystem":"TuxCare:Ubuntu:16.04","package":"vim-gtk-py2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3:7.4.1689-3ubuntu1.5+tuxcare.els69"}]}],"bundled":2},{"source":"osv","ecosystem":"TuxCare:Ubuntu:16.04","package":"vim-gtk3","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3:7.4.1689-3ubuntu1.5+tuxcare.els69"}]}],"bundled":2},{"source":"osv","ecosystem":"TuxCare:Ubuntu:16.04","package":"vim-gtk3-py2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3:7.4.1689-3ubuntu1.5+tuxcare.els69"}]}],"bundled":2},{"source":"osv","ecosystem":"TuxCare:Ubuntu:16.04","package":"vim-gui-common","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3:7.4.1689-3ubuntu1.5+tuxcare.els69"}]}],"bundled":2},{"source":"osv","ecosystem":"TuxCare:Ubuntu:16.04","package":"vim-nox","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3:7.4.1689-3ubuntu1.5+tuxcare.els69"}]}],"bundled":2},{"source":"osv","ecosystem":"TuxCare:Ubuntu:16.04","package":"vim-nox-py2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3:7.4.1689-3ubuntu1.5+tuxcare.els69"}]}],"bundled":2},{"source":"osv","ecosystem":"TuxCare:Ubuntu:16.04","package":"vim-runtime","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3:7.4.1689-3ubuntu1.5+tuxcare.els69"}]}],"bundled":2},{"source":"osv","ecosystem":"TuxCare:Ubuntu:16.04","package":"vim-tiny","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3:7.4.1689-3ubuntu1.5+tuxcare.els69"}]}],"bundled":2},{"source":"osv","ecosystem":"TuxCare:OracleLinux:6","package":"vim-X11","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3:7.4.629-5.2.el6.tuxcare.els56"}]}]},{"source":"osv","ecosystem":"TuxCare:OracleLinux:6","package":"vim-common","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3:7.4.629-5.2.el6.tuxcare.els56"}]}]},{"source":"osv","ecosystem":"TuxCare:OracleLinux:6","package":"vim-enhanced","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3:7.4.629-5.2.el6.tuxcare.els56"}]}]},{"source":"osv","ecosystem":"TuxCare:OracleLinux:6","package":"vim-filesystem","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3:7.4.629-5.2.el6.tuxcare.els56"}]}]},{"source":"osv","ecosystem":"TuxCare:OracleLinux:6","package":"vim-minimal","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3:7.4.629-5.2.el6.tuxcare.els56"}]}]},{"source":"osv","ecosystem":"TuxCare:CentOS:6","package":"vim-X11","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3:7.4.629-5.2.el6.tuxcare.els56"}]}]},{"source":"osv","ecosystem":"TuxCare:CentOS:6","package":"vim-common","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3:7.4.629-5.2.el6.tuxcare.els56"}]}]},{"source":"osv","ecosystem":"TuxCare:CentOS:6","package":"vim-enhanced","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3:7.4.629-5.2.el6.tuxcare.els56"}]}]},{"source":"osv","ecosystem":"TuxCare:CentOS:6","package":"vim-filesystem","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3:7.4.629-5.2.el6.tuxcare.els56"}]}]},{"source":"osv","ecosystem":"TuxCare:CentOS:6","package":"vim-minimal","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3:7.4.629-5.2.el6.tuxcare.els56"}]}]},{"source":"osv","ecosystem":"TuxCare:Ubuntu:18.04","package":"vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:8.0.1453-1ubuntu1.13+tuxcare.els2"}]}],"bundled":11},{"source":"osv","ecosystem":"TuxCare:Ubuntu:18.04","package":"vim-athena","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:8.0.1453-1ubuntu1.13+tuxcare.els2"}]}],"bundled":11},{"source":"osv","ecosystem":"TuxCare:Ubuntu:18.04","package":"vim-common","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:8.0.1453-1ubuntu1.13+tuxcare.els2"}]}],"bundled":11},{"source":"osv","ecosystem":"TuxCare:Ubuntu:18.04","package":"vim-doc","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:8.0.1453-1ubuntu1.13+tuxcare.els2"}]}],"bundled":11},{"source":"osv","ecosystem":"TuxCare:Ubuntu:18.04","package":"vim-gnome","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:8.0.1453-1ubuntu1.13+tuxcare.els2"}]}],"bundled":11},{"source":"osv","ecosystem":"TuxCare:Ubuntu:18.04","package":"vim-gtk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:8.0.1453-1ubuntu1.13+tuxcare.els2"}]}],"bundled":11},{"source":"osv","ecosystem":"TuxCare:Ubuntu:18.04","package":"vim-gtk3","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:8.0.1453-1ubuntu1.13+tuxcare.els2"}]}],"bundled":11},{"source":"osv","ecosystem":"TuxCare:Ubuntu:18.04","package":"vim-gui-common","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:8.0.1453-1ubuntu1.13+tuxcare.els2"}]}],"bundled":11},{"source":"osv","ecosystem":"TuxCare:Ubuntu:18.04","package":"vim-nox","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:8.0.1453-1ubuntu1.13+tuxcare.els2"}]}],"bundled":11},{"source":"osv","ecosystem":"TuxCare:Ubuntu:18.04","package":"vim-runtime","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:8.0.1453-1ubuntu1.13+tuxcare.els2"}]}],"bundled":11},{"source":"osv","ecosystem":"TuxCare:Ubuntu:18.04","package":"vim-tiny","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:8.0.1453-1ubuntu1.13+tuxcare.els2"}]}],"bundled":11},{"source":"osv","ecosystem":"TuxCare:Ubuntu:18.04","package":"xxd","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:8.0.1453-1ubuntu1.13+tuxcare.els2"}]}],"bundled":11},{"source":"osv","ecosystem":"Debian:12","package":"vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2:9.0.1378-2","2:9.0.1378-2+deb12u1","2:9.0.1378-2+deb12u2","2:9.0.1658-1","2:9.0.1672-1","2:9.0.1894-1","2:9.0.2018-1","2:9.0.2087-1","2:9.0.2103-1","2:9.0.2116-1","2:9.0.2189-1","2:9.1.0-1","2:9.1.0016-1","2:9.1.0199-1","2:9.1.0374-1","2:9.1.0377-1","2:9.1.0496-1","2:9.1.0698-1","2:9.1.0709-1","2:9.1.0709-2","2:9.1.0777-1","2:9.1.0861-1","2:9.1.0967-1","2:9.1.0967-2","2:9.1.1113-1","2:9.1.1230-1","2:9.1.1230-2","2:9.1.1385-1","2:9.1.1766-1","2:9.1.1829-1","2:9.1.1846-1","2:9.1.1882-1","2:9.1.2103-1","2:9.1.2141-1","2:9.2.0119-1","2:9.2.0136-1","2:9.2.0218-1","2:9.2.0315-1","2:9.2.0338-1","2:9.2.0355-1","2:9.2.0428-1","2:9.2.0461-1","2:9.2.0524-1","2:9.2.0782-1","2:9.2.0858-1"]},{"source":"osv","ecosystem":"Debian:13","package":"vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:9.1.1230-2+deb13u1"}]}],"versions":["2:9.1.1230-2"]},{"source":"osv","ecosystem":"Debian:14","package":"vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:9.2.0782-1"}]}],"versions":["2:9.1.1230-2","2:9.1.1385-1","2:9.1.1766-1","2:9.1.1829-1","2:9.1.1846-1","2:9.1.1882-1","2:9.1.2103-1","2:9.1.2141-1","2:9.2.0119-1","2:9.2.0136-1","2:9.2.0218-1","2:9.2.0315-1","2:9.2.0338-1","2:9.2.0355-1","2:9.2.0428-1","2:9.2.0461-1","2:9.2.0524-1"]},{"source":"osv","ecosystem":"Mageia:10","package":"vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"9.2.782-1.mga10"}]}],"bundled":12},{"source":"osv","ecosystem":"Mageia:9","package":"vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"9.2.782-1.mga9"}]}],"bundled":12},{"source":"osv","ecosystem":"openEuler:22.03-LTS-SP4","package":"vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"9.0-50.oe2203sp4"}]}],"bundled":5},{"source":"osv","ecosystem":"openEuler:24.03-LTS-SP1","package":"vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"9.0.2092-36.oe2403sp1"}]}],"bundled":5},{"source":"osv","ecosystem":"openEuler:24.03-LTS-SP3","package":"vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"9.0.2092-36.oe2403sp3"}]}],"bundled":5},{"source":"osv","ecosystem":"openEuler:20.03-LTS-SP4","package":"vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"9.0-50.oe2003sp4"}]}],"bundled":5},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:9.2.967-1.1.hum1"}]}],"bundled":17},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"vim-X11","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:9.2.967-1.1.hum1"}]}],"bundled":17},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"vim-common","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:9.2.967-1.1.hum1"}]}],"bundled":17},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"vim-data","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:9.2.967-1.1.hum1"}]}],"bundled":17},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"vim-default-editor","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:9.2.967-1.1.hum1"}]}],"bundled":17},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"vim-enhanced","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:9.2.967-1.1.hum1"}]}],"bundled":17},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"vim-filesystem","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:9.2.967-1.1.hum1"}]}],"bundled":17},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"vim-minimal","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:9.2.967-1.1.hum1"}]}],"bundled":17},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"xxd","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:9.2.967-1.1.hum1"}]}],"bundled":17},{"source":"osv","ecosystem":"Root:Debian:11","package":"vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:8.2.2434-3+deb11u3.aikido.5"},{"fixed":"2:8.2.2434-3+deb11u3.aikido.6"},{"fixed":"2:8.2.2434-3+deb11u3.aikido.7"},{"fixed":"2:8.2.2434-3+deb11u3.root.io.4"},{"fixed":"2:8.2.2434-3+deb11u3.root.io.3"},{"fixed":"2:8.2.2434-3+deb11u3.aikido.8"}]}]},{"source":"osv","ecosystem":"Root:Debian:11","package":"rootio-vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:8.2.2434-3+deb11u3.aikido.5"},{"fixed":"2:8.2.2434-3+deb11u3.aikido.6"},{"fixed":"2:8.2.2434-3+deb11u3.aikido.7"},{"fixed":"2:8.2.2434-3+deb11u3.root.io.4"},{"fixed":"2:8.2.2434-3+deb11u3.root.io.3"},{"fixed":"2:8.2.2434-3+deb11u3.aikido.8"}]}]},{"source":"osv","ecosystem":"Root:Debian:12","package":"vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:9.0.1378-2+deb12u2.aikido.20"},{"fixed":"2:9.0.1378-2+deb12u2.root.io.19"},{"fixed":"2:9.0.1378-2+deb12u2.root.io.18"},{"fixed":"2:9.0.1378-2+deb12u2.aikido.21"}]}]},{"source":"osv","ecosystem":"Root:Debian:12","package":"rootio-vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:9.0.1378-2+deb12u2.aikido.20"},{"fixed":"2:9.0.1378-2+deb12u2.root.io.19"},{"fixed":"2:9.0.1378-2+deb12u2.root.io.18"},{"fixed":"2:9.0.1378-2+deb12u2.aikido.21"}]}]},{"source":"osv","ecosystem":"Ubuntu:Pro:14.04:LTS","package":"vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:7.4.052-1ubuntu3.1+esm29"}]}],"versions":["2:7.4.000-1ubuntu2","2:7.4.052-1ubuntu1","2:7.4.052-1ubuntu2","2:7.4.052-1ubuntu3","2:7.4.052-1ubuntu3.1","2:7.4.052-1ubuntu3.1+esm1","2:7.4.052-1ubuntu3.1+esm3","2:7.4.052-1ubuntu3.1+esm4","2:7.4.052-1ubuntu3.1+esm5","2:7.4.052-1ubuntu3.1+esm6","2:7.4.052-1ubuntu3.1+esm7","2:7.4.052-1ubuntu3.1+esm8","2:7.4.052-1ubuntu3.1+esm9","2:7.4.052-1ubuntu3.1+esm10","2:7.4.052-1ubuntu3.1+esm11","2:7.4.052-1ubuntu3.1+esm12","2:7.4.052-1ubuntu3.1+esm13","2:7.4.052-1ubuntu3.1+esm14","2:7.4.052-1ubuntu3.1+esm15","2:7.4.052-1ubuntu3.1+esm16","2:7.4.052-1ubuntu3.1+esm17","2:7.4.052-1ubuntu3.1+esm18","2:7.4.052-1ubuntu3.1+esm19","2:7.4.052-1ubuntu3.1+esm20","2:7.4.052-1ubuntu3.1+esm21","2:7.4.052-1ubuntu3.1+esm22","2:7.4.052-1ubuntu3.1+esm23","2:7.4.052-1ubuntu3.1+esm24","2:7.4.052-1ubuntu3.1+esm25","2:7.4.052-1ubuntu3.1+esm26","2:7.4.052-1ubuntu3.1+esm27","2:7.4.052-1ubuntu3.1+esm28"]},{"source":"osv","ecosystem":"Ubuntu:Pro:16.04:LTS","package":"vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:7.4.1689-3ubuntu1.5+esm35"}]}],"versions":["2:7.4.712-2ubuntu4","2:7.4.826-1ubuntu1","2:7.4.826-1ubuntu2","2:7.4.826-1ubuntu3","2:7.4.963-1ubuntu1","2:7.4.963-1ubuntu4","2:7.4.963-1ubuntu5","2:7.4.1689-3ubuntu1","2:7.4.1689-3ubuntu1.1","2:7.4.1689-3ubuntu1.2","2:7.4.1689-3ubuntu1.3","2:7.4.1689-3ubuntu1.4","2:7.4.1689-3ubuntu1.5","2:7.4.1689-3ubuntu1.5+esm2","2:7.4.1689-3ubuntu1.5+esm3","2:7.4.1689-3ubuntu1.5+esm4","2:7.4.1689-3ubuntu1.5+esm5","2:7.4.1689-3ubuntu1.5+esm6","2:7.4.1689-3ubuntu1.5+esm7","2:7.4.1689-3ubuntu1.5+esm8","2:7.4.1689-3ubuntu1.5+esm10","2:7.4.1689-3ubuntu1.5+esm11","2:7.4.1689-3ubuntu1.5+esm12","2:7.4.1689-3ubuntu1.5+esm13","2:7.4.1689-3ubuntu1.5+esm14","2:7.4.1689-3ubuntu1.5+esm15","2:7.4.1689-3ubuntu1.5+esm17","2:7.4.1689-3ubuntu1.5+esm18","2:7.4.1689-3ubuntu1.5+esm19","2:7.4.1689-3ubuntu1.5+esm20","2:7.4.1689-3ubuntu1.5+esm22","2:7.4.1689-3ubuntu1.5+esm23","2:7.4.1689-3ubuntu1.5+esm24","2:7.4.1689-3ubuntu1.5+esm25","2:7.4.1689-3ubuntu1.5+esm26","2:7.4.1689-3ubuntu1.5+esm27","2:7.4.1689-3ubuntu1.5+esm28","2:7.4.1689-3ubuntu1.5+esm29","2:7.4.1689-3ubuntu1.5+esm30","2:7.4.1689-3ubuntu1.5+esm31","2:7.4.1689-3ubuntu1.5+esm32","2:7.4.1689-3ubuntu1.5+esm33","2:7.4.1689-3ubuntu1.5+esm34"]},{"source":"osv","ecosystem":"Ubuntu:Pro:18.04:LTS","package":"vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:8.0.1453-1ubuntu1.13+esm20"}]}],"versions":["2:8.0.0197-4ubuntu5","2:8.0.1144-1ubuntu1","2:8.0.1401-1ubuntu1","2:8.0.1401-1ubuntu2","2:8.0.1401-1ubuntu3","2:8.0.1453-1ubuntu1","2:8.0.1453-1ubuntu1.1","2:8.0.1453-1ubuntu1.3","2:8.0.1453-1ubuntu1.4","2:8.0.1453-1ubuntu1.6","2:8.0.1453-1ubuntu1.7","2:8.0.1453-1ubuntu1.8","2:8.0.1453-1ubuntu1.9","2:8.0.1453-1ubuntu1.10","2:8.0.1453-1ubuntu1.11","2:8.0.1453-1ubuntu1.12","2:8.0.1453-1ubuntu1.13","2:8.0.1453-1ubuntu1.13+esm1","2:8.0.1453-1ubuntu1.13+esm3","2:8.0.1453-1ubuntu1.13+esm4","2:8.0.1453-1ubuntu1.13+esm5","2:8.0.1453-1ubuntu1.13+esm6","2:8.0.1453-1ubuntu1.13+esm7","2:8.0.1453-1ubuntu1.13+esm8","2:8.0.1453-1ubuntu1.13+esm9","2:8.0.1453-1ubuntu1.13+esm10","2:8.0.1453-1ubuntu1.13+esm11","2:8.0.1453-1ubuntu1.13+esm12","2:8.0.1453-1ubuntu1.13+esm13","2:8.0.1453-1ubuntu1.13+esm14","2:8.0.1453-1ubuntu1.13+esm15","2:8.0.1453-1ubuntu1.13+esm16","2:8.0.1453-1ubuntu1.13+esm17","2:8.0.1453-1ubuntu1.13+esm18","2:8.0.1453-1ubuntu1.13+esm19"]},{"source":"osv","ecosystem":"Ubuntu:Pro:20.04:LTS","package":"vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:8.1.2269-1ubuntu5.32+esm8"}]}],"versions":["2:8.1.0875-5ubuntu2","2:8.1.0875-5ubuntu3","2:8.1.0875-5ubuntu4","2:8.1.2269-1ubuntu1","2:8.1.2269-1ubuntu4","2:8.1.2269-1ubuntu5","2:8.1.2269-1ubuntu5.3","2:8.1.2269-1ubuntu5.4","2:8.1.2269-1ubuntu5.6","2:8.1.2269-1ubuntu5.7","2:8.1.2269-1ubuntu5.8","2:8.1.2269-1ubuntu5.9","2:8.1.2269-1ubuntu5.11","2:8.1.2269-1ubuntu5.12","2:8.1.2269-1ubuntu5.13","2:8.1.2269-1ubuntu5.14","2:8.1.2269-1ubuntu5.15","2:8.1.2269-1ubuntu5.16","2:8.1.2269-1ubuntu5.17","2:8.1.2269-1ubuntu5.18","2:8.1.2269-1ubuntu5.20","2:8.1.2269-1ubuntu5.21","2:8.1.2269-1ubuntu5.22","2:8.1.2269-1ubuntu5.23","2:8.1.2269-1ubuntu5.24","2:8.1.2269-1ubuntu5.25","2:8.1.2269-1ubuntu5.26","2:8.1.2269-1ubuntu5.29","2:8.1.2269-1ubuntu5.30","2:8.1.2269-1ubuntu5.31","2:8.1.2269-1ubuntu5.32","2:8.1.2269-1ubuntu5.32+esm2","2:8.1.2269-1ubuntu5.32+esm3","2:8.1.2269-1ubuntu5.32+esm4","2:8.1.2269-1ubuntu5.32+esm5","2:8.1.2269-1ubuntu5.32+esm6","2:8.1.2269-1ubuntu5.32+esm7"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:8.2.3995-1ubuntu2.32"}]}],"versions":["2:8.2.2434-3ubuntu3","2:8.2.2434-3ubuntu4","2:8.2.3565-1ubuntu1","2:8.2.3565-1ubuntu2","2:8.2.3565-1ubuntu3","2:8.2.3565-1ubuntu5","2:8.2.3995-1ubuntu1","2:8.2.3995-1ubuntu2","2:8.2.3995-1ubuntu2.1","2:8.2.3995-1ubuntu2.3","2:8.2.3995-1ubuntu2.4","2:8.2.3995-1ubuntu2.5","2:8.2.3995-1ubuntu2.7","2:8.2.3995-1ubuntu2.8","2:8.2.3995-1ubuntu2.9","2:8.2.3995-1ubuntu2.10","2:8.2.3995-1ubuntu2.11","2:8.2.3995-1ubuntu2.12","2:8.2.3995-1ubuntu2.13","2:8.2.3995-1ubuntu2.15","2:8.2.3995-1ubuntu2.16","2:8.2.3995-1ubuntu2.17","2:8.2.3995-1ubuntu2.18","2:8.2.3995-1ubuntu2.19","2:8.2.3995-1ubuntu2.20","2:8.2.3995-1ubuntu2.21","2:8.2.3995-1ubuntu2.22","2:8.2.3995-1ubuntu2.23","2:8.2.3995-1ubuntu2.24","2:8.2.3995-1ubuntu2.26","2:8.2.3995-1ubuntu2.27","2:8.2.3995-1ubuntu2.28","2:8.2.3995-1ubuntu2.29","2:8.2.3995-1ubuntu2.30","2:8.2.3995-1ubuntu2.31"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:9.1.0016-1ubuntu7.16"}]}],"versions":["2:9.0.1672-1ubuntu2","2:9.0.2087-1ubuntu1","2:9.0.2116-1ubuntu1","2:9.0.2116-1ubuntu2","2:9.0.2184-0ubuntu1","2:9.0.2189-1ubuntu1","2:9.1.0-1ubuntu1","2:9.1.0016-1ubuntu2","2:9.1.0016-1ubuntu6","2:9.1.0016-1ubuntu7","2:9.1.0016-1ubuntu7.1","2:9.1.0016-1ubuntu7.2","2:9.1.0016-1ubuntu7.3","2:9.1.0016-1ubuntu7.4","2:9.1.0016-1ubuntu7.5","2:9.1.0016-1ubuntu7.6","2:9.1.0016-1ubuntu7.7","2:9.1.0016-1ubuntu7.8","2:9.1.0016-1ubuntu7.9","2:9.1.0016-1ubuntu7.10","2:9.1.0016-1ubuntu7.11","2:9.1.0016-1ubuntu7.12","2:9.1.0016-1ubuntu7.13","2:9.1.0016-1ubuntu7.14","2:9.1.0016-1ubuntu7.15"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:9.1.0967-1ubuntu6.7"}]}],"versions":["2:9.1.0967-1ubuntu4","2:9.1.0967-1ubuntu5","2:9.1.0967-1ubuntu6","2:9.1.0967-1ubuntu6.1","2:9.1.0967-1ubuntu6.2","2:9.1.0967-1ubuntu6.3","2:9.1.0967-1ubuntu6.4","2:9.1.0967-1ubuntu6.5","2:9.1.0967-1ubuntu6.6"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"vim","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2:9.1.2141-1ubuntu4.5"}]}],"versions":["2:9.1.0967-1ubuntu6","2:9.1.1882-1ubuntu1","2:9.1.1882-1ubuntu2","2:9.1.2141-1ubuntu1","2:9.1.2141-1ubuntu2","2:9.1.2141-1ubuntu4","2:9.1.2141-1ubuntu4.1","2:9.1.2141-1ubuntu4.2","2:9.1.2141-1ubuntu4.3"]}],"products":[{"vendor":"red hat","product":"red hat enterprise linux 10"},{"vendor":"red hat","product":"red hat enterprise linux 6"},{"vendor":"red hat","product":"red hat enterprise linux 7"},{"vendor":"red hat","product":"red hat enterprise linux 8"},{"vendor":"red hat","product":"red hat enterprise linux 9"},{"vendor":"red hat","product":"red hat openshift container platform 4"},{"vendor":"vim","product":"vim"}],"references":[{"url":"https://github.com/vim/vim/security/advisories/GHSA-65p9-mwwx-7468","tags":["x_refsource_CONFIRM","Vendor Advisory","advisory","article","report"]},{"url":"https://github.com/vim/vim/security/advisories/GHSA-52mc-rq6p-rc7c","tags":["x_refsource_MISC","Mitigation","Vendor Advisory","advisory","article","report"]},{"url":"https://github.com/vim/vim/commit/c8c63673bc4253212820626aeeb75999d9a539d2","tags":["x_refsource_MISC","Patch","fix","article","report"]},{"url":"https://github.com/vim/vim/releases/tag/v9.2.0597","tags":["x_refsource_MISC","Product","web","article","report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-52860","tags":["vdb-entry","x_refsource_REDHAT","advisory","report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2487987","tags":["issue-tracking","x_refsource_REDHAT","report"]},{"url":"https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-52860.json","tags":["x_sadp-csaf-vex","web"]},{"url":"https://security.alpinelinux.org/vuln/CVE-2026-52860","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-52860","tags":["web","advisory"]},{"url":"https://docs.bell-sw.com/security/cves/CVE-2026-52860","tags":["advisory"]},{"url":"https://errata.tuxcare.com/els_os/debian10els/CLSA-2026-1782221662.html","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-47162","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-52858","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-52859","tags":["advisory"]},{"url":"https://errata.tuxcare.com/els_os/oraclelinux7els/CLSA-2026-1782221997.html","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2023-2610","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2023-4750","tags":["advisory"]},{"url":"https://errata.tuxcare.com/els_os/centos7els/CLSA-2026-1782223154.html","tags":["advisory"]},{"url":"https://errata.tuxcare.com/els_os/ubuntu16.04els/CLSA-2026-1782294876.html","tags":["advisory"]},{"url":"https://errata.tuxcare.com/els_os/oraclelinux6els/CLSA-2026-1782299449.html","tags":["advisory"]},{"url":"https://errata.tuxcare.com/els_os/centos6els/CLSA-2026-1782299648.html","tags":["advisory"]},{"url":"https://errata.tuxcare.com/els_os/ubuntu18.04els/CLSA-2026-1787394930.html","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-46483","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-55693","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-55895","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-57455","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-57456","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-59858","tags":["advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/52xxx/CVE-2026-52860.json","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-52860","tags":["advisory"]},{"url":"https://advisories.mageia.org/MGASA-2026-0240.html","tags":["advisory"]},{"url":"https://bugs.mageia.org/show_bug.cgi?id=35580","tags":["report"]},{"url":"https://www.openwall.com/lists/oss-security/2026/05/22/13","tags":["web"]},{"url":"https://github.com/vim/vim/security/advisories/GHSA-3h95-3962-mmvf","tags":["advisory"]},{"url":"https://www.openwall.com/lists/oss-security/2026/05/29/5","tags":["web"]},{"url":"https://www.openwall.com/lists/oss-security/2026/05/30/4","tags":["web"]},{"url":"https://github.com/vim/vim/security/advisories/GHSA-47gw-8gc3-mgcm","tags":["advisory","article"]},{"url":"https://www.openwall.com/lists/oss-security/2026/06/04/14","tags":["web"]},{"url":"https://www.openwall.com/lists/oss-security/2026/06/15/8","tags":["web"]},{"url":"https://github.com/vim/vim/security/advisories/GHSA-wgh4-64f7-q3jq","tags":["advisory"]},{"url":"https://www.openwall.com/lists/oss-security/2026/06/16/12","tags":["web"]},{"url":"https://github.com/vim/vim/security/advisories/GHSA-qm9w-fmpj-879h","tags":["advisory"]},{"url":"https://www.openwall.com/lists/oss-security/2026/06/16/13","tags":["web"]},{"url":"https://github.com/vim/vim/security/advisories/GHSA-vhh8-v6wx-hjjh","tags":["advisory"]},{"url":"https://www.openwall.com/lists/oss-security/2026/06/17/10","tags":["web"]},{"url":"https://github.com/vim/vim/security/advisories/GHSA-f36c-2qcp-7gpw","tags":["advisory","article"]},{"url":"https://www.openwall.com/lists/oss-security/2026/06/18/7","tags":["web"]},{"url":"https://github.com/vim/vim/security/advisories/GHSA-c4j9-wr9j-4486","tags":["advisory"]},{"url":"https://www.openwall.com/lists/oss-security/2026/06/20/2","tags":["web"]},{"url":"https://github.com/vim/vim/security/advisories/GHSA-x5fg-h5w9-9frf","tags":["advisory","article"]},{"url":"https://www.openwall.com/lists/oss-security/2026/06/20/3","tags":["web"]},{"url":"https://github.com/vim/vim/security/advisories/GHSA-ww8h-47xp-hp4w","tags":["advisory","article"]},{"url":"https://www.openwall.com/lists/oss-security/2026/06/21/1","tags":["web"]},{"url":"https://github.com/vim/vim/security/advisories/GHSA-q8mh-6qm3-25g4","tags":["advisory"]},{"url":"https://www.openwall.com/lists/oss-security/2026/06/21/2","tags":["web"]},{"url":"https://github.com/vim/vim/security/advisories/GHSA-ppj8-wqjf-6fp3","tags":["advisory"]},{"url":"https://www.openwall.com/lists/oss-security/2026/06/24/9","tags":["web"]},{"url":"https://github.com/vim/vim/security/advisories/GHSA-m3hf-xcm3-xhm2","tags":["advisory"]},{"url":"https://www.openwall.com/lists/oss-security/2026/06/27/6","tags":["web"]},{"url":"https://github.com/vim/vim/security/advisories/GHSA-mf92-v4xw-j45x","tags":["advisory"]},{"url":"https://www.openwall.com/lists/oss-security/2026/06/28/1","tags":["web"]},{"url":"https://github.com/vim/vim/security/advisories/GHSA-fh26-8f79-wj97","tags":["advisory"]},{"url":"https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-2761","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-47167","tags":["advisory"]},{"url":"https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-2762","tags":["advisory"]},{"url":"https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-2763","tags":["advisory"]},{"url":"https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-2863","tags":["advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:57614","tags":["advisory"]},{"url":"https://images.redhat.com/","tags":["article"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-73073","tags":["report"]},{"url":"https://access.redhat.com/security/updates/classification/","tags":["article"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-57451","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-57453","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-57454","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-52858","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-52859","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-47167","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-47162","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-46483","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-45130","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-44656","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-43961","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-41411","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-35177","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-34982","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-39881","tags":["report"]},{"url":"https://security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_57614.json","tags":["advisory"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2455400","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-34982","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-34982","tags":["advisory"]},{"url":"http://www.openwall.com/lists/oss-security/2026/04/01/1","tags":["article"]},{"url":"https://github.com/vim/vim/commit/75661a66a1db1e1f3f1245c615","tags":["article"]},{"url":"https://github.com/vim/vim/releases/tag/v9.2.0276","tags":["article"]},{"url":"https://github.com/vim/vim/security/advisories/GHSA-8h6p-m6gr-mpw9","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2455542","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-35177","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-35177","tags":["advisory"]},{"url":"https://github.com/vim/vim/security/advisories/GHSA-jc86-w7vm-8p24","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2456722","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-39881","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-39881","tags":["advisory"]},{"url":"https://github.com/vim/vim/commit/7ab76a86048ed492374ac6b19","tags":["article"]},{"url":"https://github.com/vim/vim/releases/tag/v9.2.0316","tags":["article"]},{"url":"https://github.com/vim/vim/security/advisories/GHSA-mr87-rhgv-7pw6","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2461614","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-41411","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-41411","tags":["advisory"]},{"url":"https://github.com/vim/vim/commit/c78194e41d5a0b05b0ddf383b6679b1503f977fb","tags":["article"]},{"url":"https://github.com/vim/vim/releases/tag/v9.2.0357","tags":["article"]},{"url":"https://github.com/vim/vim/security/advisories/GHSA-cwgx-gcj7-6qh8","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2460434","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-43961","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-43961","tags":["advisory"]},{"url":"https://github.com/vim/vim/security/advisories/GHSA-66hr-7p6x-x5j3","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2468420","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-44656","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-44656","tags":["advisory"]},{"url":"https://github.com/vim/vim/commit/190cb3c2b9c769a3972bcfd991a7b5b6cb771ef0","tags":["article"]},{"url":"https://github.com/vim/vim/releases/tag/v9.2.0435","tags":["article"]},{"url":"https://github.com/vim/vim/security/advisories/GHSA-hwg5-3cxw-wvvg","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2468422","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-45130","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-45130","tags":["advisory"]},{"url":"https://github.com/vim/vim/commit/92993329178cb1f72d700fff45ca86e1c2d369f8","tags":["article"]},{"url":"https://github.com/vim/vim/releases/tag/v9.2.0450","tags":["article"]},{"url":"https://github.com/vim/vim/security/advisories/GHSA-q4jv-r9gj-6cwv","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2477915","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-46483","tags":["advisory"]},{"url":"https://github.com/vim/vim/commit/3fb5e58fbc63d86a3e65f1a141b0d67af2aa38a1","tags":["article"]},{"url":"https://github.com/vim/vim/releases/tag/v9.2.0479","tags":["article"]},{"url":"https://github.com/vim/vim/security/advisories/GHSA-2fpv-9ff7-xg5w","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2487964","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-47162","tags":["advisory"]},{"url":"https://github.com/vim/vim/commit/f08ab2f4d7d2947c8dd6c179ae08ee6146a2694b","tags":["article"]},{"url":"https://github.com/vim/vim/releases/tag/v9.2.0495","tags":["article"]},{"url":"https://github.com/vim/vim/security/advisories/GHSA-crm5-rh6j-2c7c","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2487996","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-47167","tags":["advisory"]},{"url":"https://github.com/vim/vim/commit/a65a52d684bc58535ad28a4ae824d22e76399934","tags":["article"]},{"url":"https://github.com/vim/vim/releases/tag/v9.2.0496","tags":["article"]},{"url":"https://github.com/vim/vim/security/advisories/GHSA-4473-94jm-w5x9","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2487981","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-52858","tags":["advisory"]},{"url":"https://github.com/vim/vim/commit/4b850457e12e1a678dd209f2868154f7553cbf8d","tags":["article"]},{"url":"https://github.com/vim/vim/releases/tag/v9.2.0561","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2487989","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-52859","tags":["advisory"]},{"url":"https://github.com/vim/vim/commit/63680c6d3d52477817b49cd1a66e7aabe8a7aa19","tags":["article"]},{"url":"https://github.com/vim/vim/releases/tag/v9.2.0565","tags":["article"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-52860","tags":["advisory","report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2492978","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-57451","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-57451","tags":["advisory"]},{"url":"https://github.com/vim/vim/commit/b2338ca90643e2f01ecb6547c1172716aaec4f79","tags":["article"]},{"url":"https://github.com/vim/vim/releases/tag/v9.2.0670","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2492967","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-57453","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-57453","tags":["advisory"]},{"url":"https://github.com/vim/vim/commit/b2cc9be119d51212bf0d3f2a99","tags":["article"]},{"url":"https://github.com/vim/vim/releases/tag/v9.2.0678","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2492977","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-57454","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-57454","tags":["advisory"]},{"url":"https://github.com/vim/vim/commit/b3faeecc976d3031d7c0675623516ec60c30f949","tags":["article"]},{"url":"https://github.com/vim/vim/releases/tag/v9.2.0679","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2517950","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-73073","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-73073","tags":["advisory"]},{"url":"https://github.com/vim/vim/commit/2f628d8104958fa7421664f792ca6d4f7a39a10f","tags":["article"]},{"url":"https://github.com/vim/vim/releases/tag/v9.2.0845","tags":["article"]},{"url":"https://github.com/vim/vim/security/advisories/GHSA-cx73-phcg-3j5g","tags":["article"]},{"url":"https://ubuntu.com/security/CVE-2026-52860","tags":["report"]},{"url":"https://ubuntu.com/security/notices/USN-8451-1","tags":["advisory"]}],"sources":{"cve":[{"id":"CVE-2026-52860","title":"Vim: Arbitrary Code Execution via Python Omni-Completion","description":"Vim is an open source, command line text editor. Prior to version 9.2.0597, Vim's Python omni-completion executes reconstructed function and class definitions from the current buffer with exec() as part of populating the completion dictionary. Python evaluates function default values, parameter annotations, and class base expressions at definition time, so a hostile buffer can execute attacker-controlled Python expressions during omni-completion. The existing g:pythoncomplete_allow_import mitigation (GHSA-52mc-rq6p-rc7c) does not cover this path, because the attacker-controlled code is not a harvested import/from statement. This issue has been patched in version 9.2.0597.","status":"published","published":"2026-06-11T18:33:45.838Z","modified":"2026-09-17T12:04:37.716Z","cvss":[{"version":"4.0","score":7.5,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high","assessor":"cna"},{"version":"3.1","score":8,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H","level":"high","assessor":"adp"}],"cwes":["CWE-94","CWE-94"],"updated_at":"2026-11-02T13:40:57.334596Z"}],"euvd":[{"id":"EUVD-2026-36285","description":"Vim is an open source, command line text editor. Prior to version 9.2.0597, Vim's Python omni-completion executes reconstructed function and class definitions from the current buffer with exec() as part of populating the completion dictionary. Python evaluates function default values, parameter annotations, and class base expressions at definition time, so a hostile buffer can execute attacker-controlled Python expressions during omni-completion. The existing g:pythoncomplete_allow_import mitigation (GHSA-52mc-rq6p-rc7c) does not cover this path, because the attacker-controlled code is not a harvested import/from statement. This issue has been patched in version 9.2.0597.","status":"published","published":"2026-06-11T18:33:45Z","modified":"2026-09-17T12:04:37Z","cvss":[{"version":"4.0","score":7.5,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high"}],"updated_at":"2026-11-02T17:28:13.536818Z"}],"nvd":[{"id":"CVE-2026-52860","description":"Vim is an open source, command line text editor. Prior to version 9.2.0597, Vim's Python omni-completion executes reconstructed function and class definitions from the current buffer with exec() as part of populating the completion dictionary. Python evaluates function default values, parameter annotations, and class base expressions at definition time, so a hostile buffer can execute attacker-controlled Python expressions during omni-completion. The existing g:pythoncomplete_allow_import mitigation (GHSA-52mc-rq6p-rc7c) does not cover this path, because the attacker-controlled code is not a harvested import/from statement. This issue has been patched in version 9.2.0597.","status":"published","published":"2026-06-11T19:16:47.773Z","modified":"2026-09-17T12:18:23.923Z","cvss":[{"version":"4.0","score":7.5,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/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":"primary"},{"version":"3.1","score":8,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H","level":"high","assessor":"secondary"}],"cwes":["CWE-94"],"updated_at":"2026-11-02T14:12:23.485267Z"}],"osv":[{"id":"ALPINE-CVE-2026-52860","description":"Vim is an open source, command line text editor. Prior to version 9.2.0597, Vim's Python omni-completion executes reconstructed function and class definitions from the current buffer with exec() as part of populating the completion dictionary. Python evaluates function default values, parameter annotations, and class base expressions at definition time, so a hostile buffer can execute attacker-controlled Python expressions during omni-completion. The existing g:pythoncomplete_allow_import mitigation (GHSA-52mc-rq6p-rc7c) does not cover this path, because the attacker-controlled code is not a harvested import/from statement. This issue has been patched in version 9.2.0597.","status":"published","published":"2026-06-11T19:16:47.773Z","modified":"2026-11-03T06:33:03.364801402Z","cvss":[{"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"}],"updated_at":"2026-11-03T07:15:37.282377Z"},{"id":"BELL-CVE-2026-52860","status":"published","published":"2026-06-15T10:56:53.351786Z","modified":"2026-06-17T07:15:12.764380613Z","cvss":[{"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"}],"updated_at":"2026-11-02T15:28:24.391068Z"},{"id":"CVE-2026-52860","title":"Vim: Arbitrary Code Execution via Python Omni-Completion","description":"Vim is an open source, command line text editor. Prior to version 9.2.0597, Vim's Python omni-completion executes reconstructed function and class definitions from the current buffer with exec() as part of populating the completion dictionary. Python evaluates function default values, parameter annotations, and class base expressions at definition time, so a hostile buffer can execute attacker-controlled Python expressions during omni-completion. The existing g:pythoncomplete_allow_import mitigation (GHSA-52mc-rq6p-rc7c) does not cover this path, because the attacker-controlled code is not a harvested import/from statement. This issue has been patched in version 9.2.0597.","status":"published","published":"2026-06-11T18:33:45.838Z","modified":"2026-10-28T11:16:53.997773847Z","cvss":[{"version":"4.0","score":7.5,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-94"],"updated_at":"2026-11-02T15:45:07.431113Z"},{"id":"DEBIAN-CVE-2026-52860","description":"Vim is an open source, command line text editor. Prior to version 9.2.0597, Vim's Python omni-completion executes reconstructed function and class definitions from the current buffer with exec() as part of populating the completion dictionary. Python evaluates function default values, parameter annotations, and class base expressions at definition time, so a hostile buffer can execute attacker-controlled Python expressions during omni-completion. The existing g:pythoncomplete_allow_import mitigation (GHSA-52mc-rq6p-rc7c) does not cover this path, because the attacker-controlled code is not a harvested import/from statement. This issue has been patched in version 9.2.0597.","status":"published","published":"2026-06-11T19:16:47.773Z","modified":"2026-11-01T19:00:42.29471671Z","cvss":[{"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"}],"updated_at":"2026-11-02T15:45:56.877408Z"},{"id":"OESA-2026-2761","title":"vim security update","description":"Vim is an advanced text editor that seeks to provide the power of the de-facto Unix editor \u0026amp;apos;Vi\u0026amp;apos;, with a more complete feature set. Vim is a highly configurable text editor built to enable efficient text editing. It is an improved version of the vi editor distributed with most UNIX systems.\r\n\r\nSecurity Fix(es):\n\nVim is an open source, command line text editor. Prior to version 9.2.0495, a Vimscript code injection vulnerability exists in s:NetrwBookHistSave() in the netrw plugin (runtime/pack/dist/opt/netrw/autoload/netrw.vim) when serializing browsed directory paths to the history file ~/.vim/.netrwhist. A directory name derived from the filesystem is interpolated into a single-quoted Vimscript string literal without escaping embedded single quotes, allowing a crafted directory name to break out of the string context and execute arbitrary Vimscript, including shell commands via system() and :!, the next time the history file is sourced. This issue has been patched in version 9.2.0495.(CVE-2026-47162)\n\nVim is an open source, command line text editor. Prior to version 9.2.0496, a code injection vulnerability exists in s:stepmatch() in the cucumber filetype plugin (runtime/ftplugin/cucumber.vim) on Vim builds with +ruby support. Step-definition patterns read from .rb files under the repository\u0026apos;s features/*/ or stories/*/ directories are embedded into a Ruby Kernel.eval argument without sufficient escaping, allowing a crafted pattern in an attacker-controlled repository to execute arbitrary Ruby (and through it arbitrary shell commands) when the user invokes a step-jump mapping ([d, ]d). This issue has been patched in version 9.2.0496.(CVE-2026-47167)\n\nVim is an open source, command line text editor. Prior to version 9.2.0561, the Python omni-completion script in python3complete.vim for Vim with the +python3 interpreter enabled (and the legacy pythoncomplete.vim for builds with the +python interpreter) executes the import and from statements found in the current buffer through Python\u0026apos;s import machinery. Because the buffer\u0026apos;s working directory is on sys.path, opening a hostile .py file with a sibling Python package and invoking omni-completion runs that package\u0026apos;s top-level code as the editing user. This issue has been patched in version 9.2.0561.(CVE-2026-52858)\n\nVim is an open source, command line text editor. Prior to version 9.2.0565, the update_snapshot() function in src/terminal.c copies the visible terminal screen into the scrollback buffer when a snapshot is taken. For each screen cell it walks the cell\u0026apos;s chars[] array with no upper bound, stopping only when it encounters a NUL terminator. When a cell legitimately fills all VTERM_MAX_CHARS_PER_CELL (6) slots — a base character plus five combining marks — the bundled libvterm returns the array without a terminating NUL, so the loop reads past the fixed six-element array and appends the out-of-bounds values to a buffer reserved for only six characters. A program whose output is rendered inside a :terminal window can trigger this with a short byte sequence and no Vim scripting, leading to a crash. This issue has been patched in version 9.2.0565.(CVE-2026-52859)\n\nVim is an open source, command line text editor. Prior to version 9.2.0597, Vim\u0026apos;s Python omni-completion executes reconstructed function and class definitions from the current buffer with exec() as part of populating the completion dictionary. Python evaluates function default values, parameter annotations, and class base expressions at definition time, so a hostile buffer can execute attacker-controlled Python expressions during omni-completion. The existing g:pythoncomplete_allow_import mitigation (GHSA-52mc-rq6p-rc7c) does not cover this path, because the attacker-controlled code is not a harvested import/from statement. This issue has been patched in version 9.2.0597.(CVE-2026-52860)","status":"published","published":"2026-06-24T11:11:41Z","modified":"2026-08-18T01:21:11.298652321Z","cvss":[{"version":"4.0","score":7.5,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high"}],"updated_at":"2026-11-02T15:52:46.449097Z"},{"id":"OESA-2026-2762","title":"vim security update","description":"Vim is an advanced text editor that seeks to provide the power of the de-facto Unix editor \u0026amp;apos;Vi\u0026amp;apos;, with a more complete feature set. Vim is a highly configurable text editor built to enable efficient text editing. It is an improved version of the vi editor distributed with most UNIX systems.\r\n\r\nSecurity Fix(es):\n\nVim is an open source, command line text editor. Prior to version 9.2.0495, a Vimscript code injection vulnerability exists in s:NetrwBookHistSave() in the netrw plugin (runtime/pack/dist/opt/netrw/autoload/netrw.vim) when serializing browsed directory paths to the history file ~/.vim/.netrwhist. A directory name derived from the filesystem is interpolated into a single-quoted Vimscript string literal without escaping embedded single quotes, allowing a crafted directory name to break out of the string context and execute arbitrary Vimscript, including shell commands via system() and :!, the next time the history file is sourced. This issue has been patched in version 9.2.0495.(CVE-2026-47162)\n\nVim is an open source, command line text editor. Prior to version 9.2.0496, a code injection vulnerability exists in s:stepmatch() in the cucumber filetype plugin (runtime/ftplugin/cucumber.vim) on Vim builds with +ruby support. Step-definition patterns read from .rb files under the repository\u0026apos;s features/*/ or stories/*/ directories are embedded into a Ruby Kernel.eval argument without sufficient escaping, allowing a crafted pattern in an attacker-controlled repository to execute arbitrary Ruby (and through it arbitrary shell commands) when the user invokes a step-jump mapping ([d, ]d). This issue has been patched in version 9.2.0496.(CVE-2026-47167)\n\nVim is an open source, command line text editor. Prior to version 9.2.0561, the Python omni-completion script in python3complete.vim for Vim with the +python3 interpreter enabled (and the legacy pythoncomplete.vim for builds with the +python interpreter) executes the import and from statements found in the current buffer through Python\u0026apos;s import machinery. Because the buffer\u0026apos;s working directory is on sys.path, opening a hostile .py file with a sibling Python package and invoking omni-completion runs that package\u0026apos;s top-level code as the editing user. This issue has been patched in version 9.2.0561.(CVE-2026-52858)\n\nVim is an open source, command line text editor. Prior to version 9.2.0565, the update_snapshot() function in src/terminal.c copies the visible terminal screen into the scrollback buffer when a snapshot is taken. For each screen cell it walks the cell\u0026apos;s chars[] array with no upper bound, stopping only when it encounters a NUL terminator. When a cell legitimately fills all VTERM_MAX_CHARS_PER_CELL (6) slots — a base character plus five combining marks — the bundled libvterm returns the array without a terminating NUL, so the loop reads past the fixed six-element array and appends the out-of-bounds values to a buffer reserved for only six characters. A program whose output is rendered inside a :terminal window can trigger this with a short byte sequence and no Vim scripting, leading to a crash. This issue has been patched in version 9.2.0565.(CVE-2026-52859)\n\nVim is an open source, command line text editor. Prior to version 9.2.0597, Vim\u0026apos;s Python omni-completion executes reconstructed function and class definitions from the current buffer with exec() as part of populating the completion dictionary. Python evaluates function default values, parameter annotations, and class base expressions at definition time, so a hostile buffer can execute attacker-controlled Python expressions during omni-completion. The existing g:pythoncomplete_allow_import mitigation (GHSA-52mc-rq6p-rc7c) does not cover this path, because the attacker-controlled code is not a harvested import/from statement. This issue has been patched in version 9.2.0597.(CVE-2026-52860)","status":"published","published":"2026-06-24T11:11:41Z","modified":"2026-08-18T01:21:11.112856094Z","cvss":[{"version":"4.0","score":7.5,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high"}],"updated_at":"2026-11-02T15:52:46.449097Z"},{"id":"OESA-2026-2763","title":"vim security update","description":"Vim is an advanced text editor that seeks to provide the power of the de-facto Unix editor \u0026amp;apos;Vi\u0026amp;apos;, with a more complete feature set. Vim is a highly configurable text editor built to enable efficient text editing. It is an improved version of the vi editor distributed with most UNIX systems.\r\n\r\nSecurity Fix(es):\n\nVim is an open source, command line text editor. Prior to version 9.2.0495, a Vimscript code injection vulnerability exists in s:NetrwBookHistSave() in the netrw plugin (runtime/pack/dist/opt/netrw/autoload/netrw.vim) when serializing browsed directory paths to the history file ~/.vim/.netrwhist. A directory name derived from the filesystem is interpolated into a single-quoted Vimscript string literal without escaping embedded single quotes, allowing a crafted directory name to break out of the string context and execute arbitrary Vimscript, including shell commands via system() and :!, the next time the history file is sourced. This issue has been patched in version 9.2.0495.(CVE-2026-47162)\n\nVim is an open source, command line text editor. Prior to version 9.2.0496, a code injection vulnerability exists in s:stepmatch() in the cucumber filetype plugin (runtime/ftplugin/cucumber.vim) on Vim builds with +ruby support. Step-definition patterns read from .rb files under the repository\u0026apos;s features/*/ or stories/*/ directories are embedded into a Ruby Kernel.eval argument without sufficient escaping, allowing a crafted pattern in an attacker-controlled repository to execute arbitrary Ruby (and through it arbitrary shell commands) when the user invokes a step-jump mapping ([d, ]d). This issue has been patched in version 9.2.0496.(CVE-2026-47167)\n\nVim is an open source, command line text editor. Prior to version 9.2.0561, the Python omni-completion script in python3complete.vim for Vim with the +python3 interpreter enabled (and the legacy pythoncomplete.vim for builds with the +python interpreter) executes the import and from statements found in the current buffer through Python\u0026apos;s import machinery. Because the buffer\u0026apos;s working directory is on sys.path, opening a hostile .py file with a sibling Python package and invoking omni-completion runs that package\u0026apos;s top-level code as the editing user. This issue has been patched in version 9.2.0561.(CVE-2026-52858)\n\nVim is an open source, command line text editor. Prior to version 9.2.0565, the update_snapshot() function in src/terminal.c copies the visible terminal screen into the scrollback buffer when a snapshot is taken. For each screen cell it walks the cell\u0026apos;s chars[] array with no upper bound, stopping only when it encounters a NUL terminator. When a cell legitimately fills all VTERM_MAX_CHARS_PER_CELL (6) slots — a base character plus five combining marks — the bundled libvterm returns the array without a terminating NUL, so the loop reads past the fixed six-element array and appends the out-of-bounds values to a buffer reserved for only six characters. A program whose output is rendered inside a :terminal window can trigger this with a short byte sequence and no Vim scripting, leading to a crash. This issue has been patched in version 9.2.0565.(CVE-2026-52859)\n\nVim is an open source, command line text editor. Prior to version 9.2.0597, Vim\u0026apos;s Python omni-completion executes reconstructed function and class definitions from the current buffer with exec() as part of populating the completion dictionary. Python evaluates function default values, parameter annotations, and class base expressions at definition time, so a hostile buffer can execute attacker-controlled Python expressions during omni-completion. The existing g:pythoncomplete_allow_import mitigation (GHSA-52mc-rq6p-rc7c) does not cover this path, because the attacker-controlled code is not a harvested import/from statement. This issue has been patched in version 9.2.0597.(CVE-2026-52860)","status":"published","published":"2026-06-24T11:11:41Z","modified":"2026-08-18T01:21:08.882525694Z","cvss":[{"version":"4.0","score":7.5,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high"}],"updated_at":"2026-11-02T15:52:46.449097Z"},{"id":"OESA-2026-2863","title":"vim security update","description":"Vim is an advanced text editor that seeks to provide the power of the de-facto Unix editor \u0026amp;apos;Vi\u0026amp;apos;, with a more complete feature set. Vim is a highly configurable text editor built to enable efficient text editing. It is an improved version of the vi editor distributed with most UNIX systems.\r\n\r\nSecurity Fix(es):\n\nVim is an open source, command line text editor. Prior to version 9.2.0495, a Vimscript code injection vulnerability exists in s:NetrwBookHistSave() in the netrw plugin (runtime/pack/dist/opt/netrw/autoload/netrw.vim) when serializing browsed directory paths to the history file ~/.vim/.netrwhist. A directory name derived from the filesystem is interpolated into a single-quoted Vimscript string literal without escaping embedded single quotes, allowing a crafted directory name to break out of the string context and execute arbitrary Vimscript, including shell commands via system() and :!, the next time the history file is sourced. This issue has been patched in version 9.2.0495.(CVE-2026-47162)\n\nVim is an open source, command line text editor. Prior to version 9.2.0496, a code injection vulnerability exists in s:stepmatch() in the cucumber filetype plugin (runtime/ftplugin/cucumber.vim) on Vim builds with +ruby support. Step-definition patterns read from .rb files under the repository\u0026apos;s features/*/ or stories/*/ directories are embedded into a Ruby Kernel.eval argument without sufficient escaping, allowing a crafted pattern in an attacker-controlled repository to execute arbitrary Ruby (and through it arbitrary shell commands) when the user invokes a step-jump mapping ([d, ]d). This issue has been patched in version 9.2.0496.(CVE-2026-47167)\n\nVim is an open source, command line text editor. Prior to version 9.2.0561, the Python omni-completion script in python3complete.vim for Vim with the +python3 interpreter enabled (and the legacy pythoncomplete.vim for builds with the +python interpreter) executes the import and from statements found in the current buffer through Python\u0026apos;s import machinery. Because the buffer\u0026apos;s working directory is on sys.path, opening a hostile .py file with a sibling Python package and invoking omni-completion runs that package\u0026apos;s top-level code as the editing user. This issue has been patched in version 9.2.0561.(CVE-2026-52858)\n\nVim is an open source, command line text editor. Prior to version 9.2.0565, the update_snapshot() function in src/terminal.c copies the visible terminal screen into the scrollback buffer when a snapshot is taken. For each screen cell it walks the cell\u0026apos;s chars[] array with no upper bound, stopping only when it encounters a NUL terminator. When a cell legitimately fills all VTERM_MAX_CHARS_PER_CELL (6) slots — a base character plus five combining marks — the bundled libvterm returns the array without a terminating NUL, so the loop reads past the fixed six-element array and appends the out-of-bounds values to a buffer reserved for only six characters. A program whose output is rendered inside a :terminal window can trigger this with a short byte sequence and no Vim scripting, leading to a crash. This issue has been patched in version 9.2.0565.(CVE-2026-52859)\n\nVim is an open source, command line text editor. Prior to version 9.2.0597, Vim\u0026apos;s Python omni-completion executes reconstructed function and class definitions from the current buffer with exec() as part of populating the completion dictionary. Python evaluates function default values, parameter annotations, and class base expressions at definition time, so a hostile buffer can execute attacker-controlled Python expressions during omni-completion. The existing g:pythoncomplete_allow_import mitigation (GHSA-52mc-rq6p-rc7c) does not cover this path, because the attacker-controlled code is not a harvested import/from statement. This issue has been patched in version 9.2.0597.(CVE-2026-52860)","status":"published","published":"2026-07-06T11:11:46Z","modified":"2026-08-18T01:21:14.297899094Z","cvss":[{"version":"4.0","score":7.5,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high"}],"updated_at":"2026-11-02T15:52:46.823443Z"},{"id":"RHSA-2026:57614","title":"Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update","status":"published","published":"2026-09-12T10:09:11Z","modified":"2026-10-17T10:16:12Z","cvss":[{"version":"3.1","score":8.2,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N","level":"high"}],"updated_at":"2026-11-02T15:53:21.457353Z"},{"id":"UBUNTU-CVE-2026-52860","description":"Vim is an open source, command line text editor. Prior to version 9.2.0597, Vim's Python omni-completion executes reconstructed function and class definitions from the current buffer with exec() as part of populating the completion dictionary. Python evaluates function default values, parameter annotations, and class base expressions at definition time, so a hostile buffer can execute attacker-controlled Python expressions during omni-completion. The existing g:pythoncomplete_allow_import mitigation (GHSA-52mc-rq6p-rc7c) does not cover this path, because the attacker-controlled code is not a harvested import/from statement. This issue has been patched in version 9.2.0597.","status":"published","published":"2026-06-11T19:16:00Z","modified":"2026-06-30T18:15:58.423723871Z","cvss":[{"version":"4.0","score":7.5,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high"},{"version":"3.1","score":8,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H","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"}],"updated_at":"2026-11-02T16:56:33.391918Z"},{"id":"AZL-89769","title":"CVE-2026-52860 affecting package vim for versions less than 9.2.0620-1","description":"Vim is an open source, command line text editor. Prior to version 9.2.0597, Vim's Python omni-completion executes reconstructed function and class definitions from the current buffer with exec() as part of populating the completion dictionary. Python evaluates function default values, parameter annotations, and class base expressions at definition time, so a hostile buffer can execute attacker-controlled Python expressions during omni-completion. The existing g:pythoncomplete_allow_import mitigation (GHSA-52mc-rq6p-rc7c) does not cover this path, because the attacker-controlled code is not a harvested import/from statement. This issue has been patched in version 9.2.0597.","status":"published","published":"2026-06-11T19:16:47Z","modified":"2026-08-28T17:56:36.672121Z","updated_at":"2026-11-02T15:28:11.397546Z"},{"id":"CLSA-2026-1782221662","title":"Fix CVE(s): CVE-2026-47162, CVE-2026-52858, CVE-2026-52859, CVE-2026-52860","description":"   * SECURITY UPDATE: Code execution via Python omni-completion executing import and from statements harvested from the current buffer through exec() (gate buffer-derived import execution behind the new g:pythoncomplete_allow_import option, disabled by default)\n     - debian/patches/CVE-2026-52858.patch: disable execution of import and from statements found in the buffer during python3complete and pythoncomplete omni-completion unless g:pythoncomplete_allow_import is set\n     - CVE-2026-52858\n   * SECURITY UPDATE: Out-of-bounds read in update_snapshot() in src/terminal.c when a terminal cell fills all VTERM_MAX_CHARS_PER_CELL slots and the bundled libvterm returns the chars array without a NUL terminator\n     - debian/patches/CVE-2026-52859.patch: bound the cell.chars[] copy loop in update_snapshot() with i \u003c VTERM_MAX_CHARS_PER_CELL to prevent reading past the fixed six-element array\n     - CVE-2026-52859\n   * SECURITY UPDATE: Code execution via Python omni-completion evaluating function default values, parameter annotations, and class base expressions reconstructed from the current buffer and run through exec()\n     - debian/patches/CVE-2026-52860.patch: strip default expressions and annotations from generated function parameters and whitelist dotted class base expressions in python3complete and pythoncomplete get_code() so attacker-controlled expressions are not executed\n     - CVE-2026-52860","status":"published","published":"2026-06-23T13:34:43Z","modified":"2026-10-26T09:31:52.272839801Z","updated_at":"2026-11-02T15:43:45.794021Z"},{"id":"CLSA-2026-1782221997","title":"vim: Fix of 4 CVEs","description":"- CVE-2026-52858: disable execution of import/from statements harvested from\n  the buffer during python omni-completion (pythoncomplete/python3complete),\n  gated behind the opt-in g:pythoncomplete_allow_import (upstream 9.2.0561 and\n  9.2.0568)\n- CVE-2026-52860: strip parameter default values and annotations and whitelist\n  class base expressions before exec() of reconstructed function/class source\n  in python omni-completion (upstream 9.2.0597)","status":"published","published":"2026-06-25T08:55:23Z","modified":"2026-10-26T09:31:55.309563464Z","updated_at":"2026-11-02T15:43:45.794021Z"},{"id":"CLSA-2026-1782223154","title":"vim: Fix of 2 CVEs","description":"- CVE-2026-52858: disable execution of import/from statements harvested from\n  the buffer during python omni-completion (pythoncomplete/python3complete),\n  gated behind the opt-in g:pythoncomplete_allow_import (upstream 9.2.0561 and\n  9.2.0568)\n- CVE-2026-52860: strip parameter default values and annotations and whitelist\n  class base expressions before exec() of reconstructed function/class source\n  in python omni-completion (upstream 9.2.0597)","status":"published","published":"2026-06-23T13:59:32Z","modified":"2026-10-26T09:31:41.910261158Z","updated_at":"2026-11-02T15:43:45.794021Z"},{"id":"CLSA-2026-1782294876","title":"Fix CVE(s): CVE-2026-52858, CVE-2026-52860","description":"   * SECURITY UPDATE: arbitrary code execution in the python and python3\n     omni-completion plugins: Completer.evalsource() executed import and\n     from statements harvested from the current buffer through Python's\n     import machinery, and because the buffer's directory is on sys.path,\n     opening a hostile .py file alongside a sibling package ran attacker\n     controlled code on omni-completion.\n     - debian/patches/CVE-2026-52858.patch: skip execution of buffer\n       level import/from statements unless the user opts in by setting\n       g:pythoncomplete_allow_import, and re-import the vim module inside\n       evalsource() so the opt-in is honoured, in\n       runtime/autoload/python3complete.vim and\n       runtime/autoload/pythoncomplete.vim; matches upstream patches\n       9.2.0561 and 9.2.0568.\n     - CVE-2026-52858\n   * SECURITY UPDATE: arbitrary code execution in the python and python3\n     omni-completion plugins: the completion code reconstructed function\n     and class definitions from the current buffer and ran them through\n     exec(), and because Python evaluates parameter default values,\n     parameter annotations and class base expressions at definition time,\n     a hostile buffer could execute attacker controlled expressions via\n     crafted def/class headers; the g:pythoncomplete_allow_import\n     mitigation did not cover this path.\n     - debian/patches/CVE-2026-52860.patch: strip default values and\n       annotations from reconstructed function parameter lists and\n       whitelist class base lists to dotted names before the generated\n       source reaches exec(), in runtime/autoload/python3complete.vim and\n       runtime/autoload/pythoncomplete.vim; matches upstream patch\n       9.2.0597.\n     - CVE-2026-52860","status":"published","published":"2026-06-24T09:54:56Z","modified":"2026-10-26T09:32:01.712542713Z","updated_at":"2026-11-02T15:43:45.794021Z"},{"id":"CLSA-2026-1782299449","title":"vim: Fix of CVE-2026-52860","description":"- CVE-2026-52860: fix possible code execution in python3complete/pythoncomplete\n  by stripping default expressions and annotations from function parameter lists\n  and whitelisting class bases to dotted names before exec() (upstream patch\n  9.2.0597)","status":"published","published":"2026-06-24T11:11:04Z","modified":"2026-10-26T09:31:45.619146211Z","updated_at":"2026-11-02T15:43:45.794021Z"},{"id":"CLSA-2026-1782299648","title":"vim: Fix of CVE-2026-52860","description":"- CVE-2026-52860: fix possible code execution in python3complete/pythoncomplete\n  by stripping default expressions and annotations from function parameter lists\n  and whitelisting class bases to dotted names before exec() (upstream patch\n  9.2.0597)","status":"published","published":"2026-07-07T13:58:24Z","modified":"2026-10-26T09:31:39.159672071Z","updated_at":"2026-11-02T15:43:45.794021Z"},{"id":"CLSA-2026-1787394930","title":"Fix of 10 CVEs","description":"   * SECURITY UPDATE: command injection in the tar plugin: tar#Vimuntar()\n     escaped the tarball name with shellescape() without the special\n     argument before running gunzip/gzip through :!, so characters that Vim\n     expands in a :! command line (such as % and #) survived in the name\n     and let a crafted archive name run arbitrary shell commands.\n     - debian/patches/CVE-2026-46483.patch: use the shellescape(name, 1)\n       form for both :! invocations in runtime/autoload/tar.vim; matches\n       upstream patch 9.2.0479.\n     - CVE-2026-46483\n   * SECURITY UPDATE: code injection via netrw directory history:\n     s:NetrwBookHistSave() serialised each history entry into\n     ~/.vim/.netrwhist by wrapping the value in single quotes with string\n     concatenation, so a directory name containing a single quote closed\n     the literal and injected Vimscript that ran when the history file was\n     sourced on the next netrw start.\n     - debian/patches/CVE-2026-47162.patch: encode the value with string()\n       in runtime/autoload/netrw.vim; matches upstream patch 9.2.0495.\n     - CVE-2026-47162\n   * SECURITY UPDATE: code execution through Python omni-completion:\n     pythoncomplete and python3complete rebuilt the buffer's Python code\n     and passed it to exec(), including the import and from statements\n     harvested from the buffer, so invoking omni-completion in a hostile\n     Python file executed arbitrary module-level code.\n     - debian/patches/CVE-2026-52858.patch: skip import/from statements\n       unless g:pythoncomplete_allow_import is set, in both\n       runtime/autoload/pythoncomplete.vim and python3complete.vim;\n       matches upstream patches 9.2.0561 and 9.2.0568, the latter being\n       required for the opt-in to take effect at all.\n     - CVE-2026-52858\n   * SECURITY UPDATE: out-of-bounds access when a terminal buffer is\n     snapshotted: the per-cell loop in move_terminal_to_buffer() walked\n     cell.chars[] with no upper bound, and libvterm leaves that array\n     unterminated when a cell uses all VTERM_MAX_CHARS_PER_CELL slots (a\n     base character plus five combining marks), so it read past the array\n     and appended the out-of-bounds values to a buffer sized for far fewer\n     bytes.\n     - debian/patches/CVE-2026-52859.patch: bound the loop with\n       i \u003c VTERM_MAX_CHARS_PER_CELL and size the buffer for six 6-byte\n       characters, in src/terminal.c; matches upstream patch 9.2.0565\n       together with its prerequisite 8.1.0611, without which the bounded\n       loop would still overrun the MB_MAXBYTES-sized buffer.\n     - CVE-2026-52859\n   * SECURITY UPDATE: code execution through Python omni-completion\n     definition headers: Scope.get_code() reproduced def and class headers\n     verbatim in the source handed to exec(), and Python evaluates\n     parameter default values, annotations and base-class expressions at\n     definition time, so crafted headers ran arbitrary code during\n     completion even with imports disabled.\n     - debian/patches/CVE-2026-52860.patch: strip default values and\n       annotations from parameters and accept only dotted names as base\n       classes, in both runtime/autoload/pythoncomplete.vim and\n       python3complete.vim; matches upstream patch 9.2.0597.\n     - CVE-2026-52860\n   * SECURITY UPDATE: out-of-bounds write reading a crafted spell file:\n     tree_count_words() and sug_filltree() descended the word trie without\n     bounding the depth, so a deeply nested trie wrote past the ends of\n     their MAXWLEN-sized arridx[], curi[] and wordcount[] arrays.\n     - debian/patches/CVE-2026-55693.patch: only descend while\n       depth \u003c MAXWLEN - 1 in both trie walkers, in src/spellfile.c;\n       matches upstream patch 9.2.0653.\n     - CVE-2026-55693\n   * SECURITY UPDATE: code injection when netrw opens a remote file:\n     s:NetrwBrowse() passed bufname() unescaped into an :execute'd \"b\"\n     command, so a buffer name containing the Ex command separator ran\n     arbitrary Ex commands.\n     - debian/patches/CVE-2026-55895.patch: escape the name with\n       fnameescape() in runtime/autoload/netrw.vim; matches the applicable\n       hunk of upstream patch 9.2.0663.\n     - CVE-2026-55895\n   * SECURITY UPDATE: out-of-bounds write in SOFO soundfolding:\n     spell_soundfold_sofo() walked the input word without checking the\n     index into its MAXWLEN-sized result buffer, so a crafted spell file\n     with a long SOFO translation wrote past the end of it.\n     - debian/patches/CVE-2026-57455.patch: add the ri \u003c MAXWLEN - 1 abort\n       condition to the translation loop, in src/spell.c; matches upstream\n       patch 9.2.0698.\n     - CVE-2026-57455\n   * SECURITY UPDATE: code execution via doc strings in Python\n     omni-completion: get_code() wrapped the doc string harvested from the\n     buffer in triple quotes, so a doc string containing a triple quote\n     closed the literal and the remainder was executed as code during\n     completion.\n     - debian/patches/CVE-2026-57456.patch: quote doc strings with repr()\n       at all three generation sites in both\n       runtime/autoload/pythoncomplete.vim and python3complete.vim;\n       matches upstream patch 9.2.0699.\n     - CVE-2026-57456\n   * SECURITY UPDATE: arbitrary Ex command execution during C\n     omni-completion: s:StructMembers() interpolated the typeref field of a\n     tags entry into a :vimgrep pattern run through :execute, so a crafted\n     tags file could close the pattern and append an Ex command that ran\n     when C omni-completion was invoked on a hostile source file.\n     - debian/patches/CVE-2026-59858.patch: escape the type field with\n       escape(typename, '/\\') before building the pattern, in\n       runtime/autoload/ccomplete.vim; matches upstream patch 9.2.0735.\n     - CVE-2026-59858\n   * SECURITY UPDATE: the escaping above is not sufficient on its own: an\n     unclosed bracket in the typeref makes :vimgrep's pattern skipping\n     fail, after which a bar in the tag value is again treated as a command\n     separator and executed.\n     - debian/patches/CVE-2026-73073.patch: match the field literally with\n       \\V ... \\m instead of relying on escaping alone, in\n       runtime/autoload/ccomplete.vim; matches upstream patch 9.2.0845.\n     - CVE-2026-73073","status":"published","published":"2026-08-22T10:35:47Z","modified":"2026-10-26T09:31:47.404553765Z","updated_at":"2026-11-02T15:43:47.20725Z"},{"id":"MGASA-2026-0240","title":"Updated vim packages fix security vulnerabilities","description":"The updated packages fix security vulnerabilities:\nArbitrary Code Execution via Python Omni-Completion in Vim \u003c 9.2.0561.\n(CVE-2026-52858)\nOut-of-bounds Read in Terminal Screen Snapshot in Vim \u003c 9.2.0565.\n(CVE-2026-52859)\nArbitrary Code Execution via Python Omni-Completion in Vim \u003c 9.2.0597.\n(CVE-2026-52860)\nOut-of-bounds Write in Spell File Word Count in Vim \u003c 9.2.0653.\n(CVE-2026-55693)\nOut-of-bounds Write in Spell File Prefix Dump in Vim \u003c 9.2.0662.\n(CVE-2026-55892)\nVimscript Code Injection in netrw NetrwLocalRmFile() via crafted\nfilename affects Vim \u003c 9.2.0663. (CVE-2026-55895)\nOut-of-bounds Read in Text Property Count in Vim \u003c 9.2.0670.\n(CVE-2026-57451)\nOut-of-bounds Read with libsodium-encrypted Files in Vim \u003c 9.2.0671.\n(CVE-2026-57452)\nPowerShell Command Injection in zip.vim via Crafted Archive Entry Names\nin Vim \u003e 9.1.1783 \u0026\u0026 Vim \u003c 9.2.0678. (CVE-2026-57453)\nOut-of-bounds Read with Text Properties in Vim \u003e= 9.2.0320 \u0026\u0026 Vim \u003c\n9.2.0679. (CVE-2026-57454)\nOut-of-bounds Write in SOFO Soundfolding in Vim \u003c 9.2.0698.\n(CVE-2026-57455)\nArbitrary Code Execution via Python Omni-Completion Docstrings in Vim \u003c\n9.2.0699. (CVE-2026-57456)\n","status":"published","published":"2026-07-10T15:41:14Z","modified":"2026-07-10T15:45:04.007440114Z","updated_at":"2026-11-02T15:49:43.795591Z"},{"id":"ROOT-OS-DEBIAN-11-CVE-2026-52860","title":"CVE-2026-52860 in vim - Patched by Root","description":"Root has patched CVE-2026-52860 in the vim package for Root:Debian:11. Multiple fixed versions available.","status":"published","published":"2026-08-31T08:18:29Z","modified":"2026-08-31T09:15:04.933333847Z","updated_at":"2026-11-02T15:53:30.179841Z"},{"id":"ROOT-OS-DEBIAN-12-CVE-2026-52860","title":"CVE-2026-52860 in vim - Patched by Root","description":"Root has patched CVE-2026-52860 in the vim package for Root:Debian:12. Multiple fixed versions available.","status":"published","published":"2026-08-26T07:45:37Z","modified":"2026-08-26T09:00:12.169812598Z","updated_at":"2026-11-02T15:53:32.298225Z"}]}}
