Leochaileacht in Vim as a dtagann forghníomhú cód nuair a osclaítear comhad mailíseach

I eagarthóirí téacs vim и Neoim fuarthas leochaileacht (CVE-2019-12735), a cheadaíonn cód treallach a fhorghníomhú nuair a bhíonn comhad saindeartha á oscailt. Tarlaíonn an fhadhb nuair a bhíonn an modh samhaltaithe réamhshocraithe (“: set modeline”) gníomhach, rud a ligeann duit roghanna eagarthóireachta a shainiú sa chomhad próiseáilte. Leochaileacht socraithe i eisiúintí
Vim 8.1.1365 и Neoim 0.3.6.

Ní féidir ach líon teoranta roghanna a shuiteáil trí mhúnla. Má shonraítear slonn mar luach rogha, déantar é a fhorghníomhú i mód bosca gainimh, rud a cheadaíonn ach na hoibríochtaí sábháilte is simplí. Sa chás seo, cuimsíonn an t-ordú bailí an t-ordú “: foinse”, inar féidir leat an modhnóir “!” a úsáid. chun orduithe treallach a rith ón gcomhad sonraithe. Mar sin, chun an cód a rith, is leor tógáil ar nós "set foldexpr=execute('\:source! some_file') a chur in iúl sa tsamhaillíne):". In Neovim, tá cosc ​​ar ghlaoch ar fhorghníomhú, ach is féidir assert_fails a úsáid ina ionad sin.

Mar shampla, chun an t-ordú “uname -a” a rith, níl le déanamh ach comhad a oscailt in Vim nó Neovim a deir a chéad nó a líne dheireanach:

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

Cuideachta “foinse! Léifidh %" na horduithe ón gcomhad reatha agus dá réir sin ":!uname -a". Is féidir seichimh éalaithe a úsáid chun líne tugtha a cheilt ón aschur ag áirgiúlacht an chait. Mar shampla, sa leas a bhaint as fréamhshamhail nuair a osclaítear comhad in vim, cruthaítear nasc líonra le rochtain blaosc ar chóras an íospartaigh, ach ní bheidh an comhad seo ina chúis le amhras agus é á aschur chuig an teirminéal ag baint úsáide as an bhfóntas cat.

Is féidir leat gníomhaíocht an mhód eiseamláireach a sheiceáil leis an ordú “: set modeline?”. Chun é a dhíchumasú, is féidir leat an líne “set nomodeline” a chur le vimrc. I dáiltí socraítear an fhadhb i RHEL, SUSE/openSUSE, Fedora, FreeBSD, ubuntu, Arch Linux и ALT. Tá an leochaileacht fós unpatched i Debian (i samhaillíne Debian díchumasaithe de réir réamhshocraithe, mar sin ní bhíonn an leochaileacht le feiceáil sa staid réamhshocraithe).

Foinse: oscailtenet.ru

Add a comment