Ko te whakaraerae i roto i te Vim e arahi ana ki te mahi waehere ka whakatuwherahia he konae kino

I roto i nga kaiwhakatika kupu VIM и neovim kitea whakaraeraetanga (CVE-2019-12735) ka taea te mahi i te waehere karekau i te whakatuwheratanga o te konae i hangaia. Ka puta te raruraru i te wa e kaha ana te aratau tauira taunoa (":set modeline"), ka taea e koe te tautuhi i nga whiringa whakatika i roto i te konae kua tukatukahia. Ko te whakaraerae kua whakaritea i roto i nga tukunga
Vim 8.1.1365 и Neovim 0.3.6.

He iti noa nga whiringa ka taea te whakarite ma te tauira. Mēnā ka tohua he kīanga hei uara kōwhiringa, ka mahia i roto i te aratau pouaka kirikiri, ka taea anake te whakamahi i nga mahi haumaru ngawari. I te wa ano, ko te whakahau ": puna" kei roto i nga mea whaimana, ka taea e koe te whakamahi i te "!" whakarereke. ki te whakahaere i nga tono noa mai i te konae kua tohua. No reira, ki te mahi i te waehere, he nui ki te tautuhi i te hanga penei "whakaturia foldexpr=execute('\:source! some_file'):" i roto i te raina tauira. Karekau a Neovim e whakaae ki te kawe waea, engari ka taea e koe te whakamahi assert_fails.

Hei tauira, ki te whakahaere i te whakahau "uname -a", whakatuwhera noa i tetahi konae ki Vim, Neovim ranei e kii ana te rarangi tuatahi, whakamutunga ranei:

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

Ko te "puna! %" ka panui i nga whakahau mai i te konae onāianei ka mahia ":!uname -a" i runga i tera. Ka taea e te taputapu ngeru te whakamahi i nga raupapa mawhiti hei huna i tetahi aho mai i te putanga. Hei tauira, i roto i tenei whakamahi tauira i te wa e whakatuwhera ana i te konae ki te vim, ka hangaia he hononga whatunga me te uru anga ki te punaha o te patunga, engari e kore tenei konae e whakaoho i te whakapae ka puta ki te tauranga me te taputapu ngeru.

Ka taea e koe te tirotiro mena kei te kaha te aratau tauira me te whakahau ": set modeline?". Hei whakakore, ka taea e koe te taapiri i te raina "tautuhi nomodeline" ki te vimrc. I roto i nga tohatoha, ka whakatauhia te raru ki roto RHEL, SUSE/openSUSE, Fedora, FreeBSD, Ubuntu, Arch Linux и ALT. Ko te whakaraeraetanga kare tonu i te papaki Debian (i roto i te Debian, kua monoa te tauira ma te taunoa, no reira karekau te whakaraeraetanga e kitea i roto i te ahua taunoa).

Source: opennet.ru

Tāpiri i te kōrero