අනිෂ්ට ගොනුවක් විවෘත කිරීමේදී කේත ක්‍රියාත්මක කිරීමට හේතු වන Vim හි ඇති අවදානම

පෙළ සංස්කාරක වල විම් и නියොවිම් සොයාගත්තා අවදානම (CVE-2019-12735), විශේෂයෙන් නිර්මාණය කරන ලද ගොනුවක් විවෘත කිරීමේදී අත්තනෝමතික කේතය ක්‍රියාත්මක කිරීමට ඉඩ සලසයි. සැකසූ ගොනුවේ සංස්කරණ විකල්පයන් නිර්වචනය කිරීමට ඔබට ඉඩ සලසන පෙරනිමි ආකෘති මාදිලිය (": set modeline") සක්‍රිය වූ විට ගැටළුව ඇතිවේ. නිකුතු වල අවදානම ස්ථාවර කර ඇත
Vim 8.1.1365 и Neovim 0.3.6.

මාදිලිය හරහා ස්ථාපනය කළ හැක්කේ සීමිත විකල්ප ගණනක් පමණි. ප්‍රකාශනයක් විකල්ප අගයක් ලෙස දක්වා තිබේ නම්, එය සරලම ආරක්‍ෂිත මෙහෙයුම් සඳහා පමණක් ඉඩ දෙන වැලිපිල්ල ප්‍රකාරයේදී ක්‍රියාත්මක වේ. මෙම අවස්ථාවෙහිදී, වලංගු විධානයට ": source" විධානය ඇතුළත් වේ, ඔබට "!" modifier භාවිතා කළ හැක. නිශ්චිත ගොනුවෙන් අත්තනෝමතික විධාන ක්රියාත්මක කිරීමට. මේ අනුව, කේතය ක්‍රියාත්මක කිරීමට, ආකෘති රේඛාවේ “set foldexpr=execute('\:source! some_file'):" වැනි ඉදිකිරීමක් සඳහන් කිරීම ප්‍රමාණවත් වේ. Neovim හි, execute ඇමතීම තහනම්, නමුත් ඒ වෙනුවට assert_fails භාවිතා කළ හැක.

උදාහරණයක් ලෙස, “uname -a” විධානය ක්‍රියාත්මක කිරීමට, Vim හෝ Neovim හි පළමු හෝ අවසාන පේළිය පවසන ගොනුවක් විවෘත කරන්න:

:!uname -a||» vi:fen:fdm=expr:fde=assert_fails(“මූලාශ්‍රය\!\ \%”):fdl=0:fdt=”

සමාගම "මූලාශ්රය! %" වත්මන් ගොනුවෙන් විධාන කියවා ඒ අනුව ":!uname -a" ක්‍රියාත්මක කරයි. Cat utility මඟින් ලබා දී ඇති රේඛාවක් ප්‍රතිදානයෙන් සැඟවීමට Escape අනුපිළිවෙල භාවිතා කළ හැක. උදාහරණයක් ලෙස, මේ තුළ සූරාකෑමේ මූලාකෘතිය Vim හි ගොනුවක් විවෘත කරන විට, ගොදුරේ පද්ධතියට ෂෙල් ප්‍රවේශය සමඟ ජාල සම්බන්ධතාවයක් නිර්මාණය වේ, නමුත් මෙම ගොනුව cat utility භාවිතයෙන් ටර්මිනලයට ප්‍රතිදානය කරන විට සැකයක් ඇති නොකරයි.

":set modeline?" විධානය සමඟ ඔබට ආකෘති මාදිලියේ ක්රියාකාරිත්වය පරීක්ෂා කළ හැකිය. එය අක්‍රිය කිරීමට, ඔබට vimrc වෙත “නෝමෝඩලීන් සකසන්න” යන පේළිය එක් කළ හැක. බෙදා හැරීමේදී ගැටළුව විසඳා ඇත රාල්, SUSE/openSUSE, Fedora, FreeBSD, උබුන්ටු, ආෆ්ට් ලිනක්ස් и ALT. අවදානම නොගැලපෙන ලෙස පවතී ඩේබියන් (Debian ආකෘතියේ පෙරනිමියෙන් අබල කර ඇත, එබැවින් අවදානම පෙරනිමි තත්වයේ නොපෙන්වයි).

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න