පද්ධතියේ ගොනු නැවත ලිවීමට තුඩු දෙන NPM හි අවදානම

GitHub විසින් තාර සහ @npmcli/arborist පැකේජවල ඇති දුර්වලතා හතක් පිළිබඳ විස්තර හෙළිදරව් කර ඇත, එය තාර ලේඛනාගාර සමඟ වැඩ කිරීම සහ Node.js හි පරායත්ත වෘක්ෂය ගණනය කිරීම සඳහා කාර්යයන් සපයයි. විෙශේෂෙයන් නිර්මාණය කරන ලද සංරක්ෂිතයක් අසුරන විට, වත්මන් ප්‍රවේශ අයිතිවාසිකම්වලට ඉඩ දී ඇති පරිදි, අසුරන ලද මූල නාමාවලියෙන් පිටත ගොනු නැවත ලිවීමට අවදානම් ඉඩ ලබා දේ. ගැටළු නිසා පද්ධතියේ අත්තනෝමතික කේතය ක්‍රියාත්මක කිරීම සංවිධානය කිරීමට හැකි වේ, උදාහරණයක් ලෙස, වරප්‍රසාද ලත් පරිශීලකයෙකු විසින් මෙහෙයුමක් සිදු කරන විට ~/.bashrc හෝ ~/.profile වෙත විධාන එකතු කිරීමෙන් හෝ ලෙස ක්‍රියාත්මක වන විට පද්ධති ගොනු ප්‍රතිස්ථාපනය කිරීමෙන්. මූල.

npm පැකේජ සමඟ මෙහෙයුම් සිදු කරන විට npm පැකේජ කළමණාකරු තුළ ගැටළු සහගත කේතය භාවිතා කරන බැවින්, විශේෂයෙන් නිර්මාණය කරන ලද npm පැකේජයක් ගබඩාවේ තැබීමෙන් පරිශීලකයින්ට ප්‍රහාරයක් සංවිධානය කිරීමට හැකි වන පරිදි අවදානම් වල අන්තරාය උග්‍ර වේ. එයින් පද්ධතිය මත ප්‍රහාරකයාගේ කේතය ක්‍රියාත්මක කරනු ඇත. "-ignore-scripts" මාදිලියේ පැකේජ ස්ථාපනය කරන විට පවා ප්‍රහාරය සිදුවිය හැකි අතර, එය බිල්ට් ස්ක්‍රිප්ට් ක්‍රියාත්මක කිරීම අක්‍රීය කරයි. සමස්තයක් වශයෙන්, npm අවදානම් හතෙන් හතරකට (CVE-2021-32804, CVE-2021-37713, CVE-2021-39134 සහ CVE-2021-39135) බලපායි. පළමු ගැටළු දෙක තාර පැකේජයට අදාළ වන අතර ඉතිරි දෙක @npmcli/arborist පැකේජයට අදාළ වේ.

වඩාත්ම භයානක අවදානම, CVE-2021-32804, තාර ලේඛනාගාරයේ දක්වා ඇති නිරපේක්ෂ මාර්ග ඉවත් කිරීමේදී, නැවත නැවතත් "/" අක්ෂර වැරදි ලෙස සකසනු ලැබේ - පළමු අක්ෂරය පමණක් ඉවත් කර ඇති අතර ඉතිරිය ඉතිරි වේ. උදාහරණයක් ලෙස, "/home/user/.bashrc" යන මාර්ගය "home/user/.bashrc" ලෙසත්, "//home/user/.bashrc" මාර්ගය "/home/user/.bashrc" ලෙසත් පරිවර්තනය වේ. දෙවන අවදානම, CVE-2021-37713, වින්ඩෝස් වේදිකාවේ පමණක් දිස්වන අතර සීමා නොකළ ධාවක අක්ෂරයක් (“C:some\path”) සහ පෙර නාමාවලිය වෙත ආපසු යාමේ අනුපිළිවෙලක් ඇතුළත් සාපේක්ෂ මාර්ග වැරදි ලෙස පිරිසිදු කිරීම හා සම්බන්ධ වේ ( "C:../foo") .

අවදානම් CVE-2021-39134 සහ CVE-2021-39135 @npmcli/arborist මොඩියුලයට විශේෂිත වේ. පළමු ගැටළුව දිස්වන්නේ ගොනු පද්ධතියේ (macOS සහ Windows) අක්ෂර වෙන්කර හඳුනා නොගන්නා පද්ධතිවල පමණක් වන අතර පරායත්තතා අතර "foo" මොඩියුල දෙකක් සඳහන් කිරීමෙන් ගොනු පද්ධතියේ අත්තනෝමතික කොටසකට ගොනු ලිවීමට ඔබට ඉඩ සලසයි. : "file:/some/path"' සහ ' FOO: "file:foo.tgz"', එය සැකසීම /some/path නාමාවලියෙහි අන්තර්ගතය මකා දැමීමට සහ foo.tgz හි අන්තර්ගතය ලිවීමට හේතු වේ. දෙවන ගැටළුව සංකේතාත්මක සබැඳි හැසිරවීම හරහා ගොනු නැවත ලිවීමට ඉඩ සලසයි.

දුර්වලතා Node.js නිකුතු 12.22.6 සහ 14.17.6, npm CLI 6.14.15 සහ 7.21.0 සහ තනි තාර පැකේජ නිකුත් කිරීම් 4.4.19, 5.0.11, සහ 6.1.10 වලදී විසඳා ඇත. "දෝෂ දීමනා" මුලපිරීමේ කොටසක් ලෙස ගැටලුව පිළිබඳ තොරතුරු ලැබීමෙන් පසු, GitHub පර්යේෂකයන්ට ඩොලර් 14500 ක් ගෙවා ගබඩාවේ අන්තර්ගතය පරිලෝකනය කළ අතර එමඟින් අවදානම් ගසාකෑමේ උත්සාහයන් අනාවරණය නොවීය. මෙම ගැටළු වලින් ආරක්ෂා වීමට, GitHub විසින් සංකේතාත්මක සබැඳි, දෘඪ සබැඳි සහ නිධිය වෙත නිරපේක්ෂ මාර්ග ඇතුළත් NPM පැකේජ ප්‍රකාශනය කිරීම ද තහනම් කර ඇත.

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

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