Zelalbûna di Vim-ê de dema ku pelek xirab tê vekirin dibe sedema darvekirina kodê

Di edîtorên nivîsê de Vim и neovim dîtin lawazbûn (CVE-2019-12735), ku destûrê dide ku kodek keyfî dema vekirina pelek taybetî hatî sêwirandin were darve kirin. Pirsgirêk dema ku moda modelînê ya xwerû (":set modeline") çalak e, çêdibe, ku destûrê dide te ku hûn vebijarkên guherandinê di pelê pêvajoyî de destnîşan bikin. Di belavokan de qelsî hate rast kirin
Vim 8.1.1365 и Neovim 0.3.6.

Tenê hejmarek vebijarkek sînorkirî dikare bi riya modeline were saz kirin. Ger biwêjek wekî nirxek vebijarkê were destnîşan kirin, ew di moda sandboxê de tête darve kirin, ku tenê karûbarên ewledar ên herî hêsan dihêle. Di vê rewşê de, fermana derbasdar fermana ": source" dihewîne, ku tê de hûn dikarin guhertoya "!" bikar bînin. ku emrên keyfî ji pelê diyarkirî bimeşîne. Bi vî rengî, ji bo pêkanîna kodê, bes e ku meriv di rêza modelînê de avahiyek mîna "set foldexpr=execute('\: source! some_file'):" nîşan bide. Li Neovim, bangkirina darvekirinê qedexe ye, lê assert_fails dikare li şûna wê were bikar anîn.

Mînakî, ji bo ku emrê "uname -a" bimeşîne, tenê pelek li Vim an Neovim veke ku rêza yekem an ya paşîn dibêje:

:!uname -a||» vi:fen:fdm=expr:fde=assert_fails("çavkanî\!\ \%"):fdl=0:fdt="

Pargîdaniya "çavkanî! %" dê fermanên pelê heyî bixwîne û li gorî vê yekê ":!uname -a" bike. Rêzên revê dikarin werin bikar anîn da ku xêzek diyarkirî ji hilberanê ji hêla kargêriya pisîkê veşêrin. Ji bo nimûne, di vê prototîpa îstîsmarê dema vekirina pelek di vim-ê de, pêwendiyek torê bi gihîştina şêlê ji pergala mexdûr re tê afirandin, lê ev pel dê gumanê çênebe dema ku bi karanîna pisîkê re derkeve termînalê.

Hûn dikarin çalakiya moda modelînê bi fermana ":set modeline?" kontrol bikin. Ji bo neçalakkirina wê, hûn dikarin rêzika "set nomodeline" li vimrc zêde bikin. Di belavkirinan de pirsgirêk tê çareser kirin RHEL, SUSE / openSUSE, Fedora, FreeBSD, Ubuntu, Arch Linux и ALT. Zelalbûn di hundurê de bêserûber dimîne Debian (di Debian de modelîn ji hêla xwerû ve neçalak e, ji ber vê yekê qelsî di rewşa xwerû de xuya nake).

Source: opennet.ru

Add a comment