უკან დაბრუნება
LuaRocks.org-ის საიტზე RCE შეტევა: ბაზა და ყველა ავტორიზაციის მონაცემი გამჟღავნდა
SiTech AI Team2 წთ. საკითხავი

LuaRocks.org-ის საიტზე RCE შეტევა: ბაზა და ყველა ავტორიზაციის მონაცემი გამჟღავნდა

LuaRocks.org-ის განცხადებით, საიტზე აღმოჩენილი RCE ხარვეზი 2026 წლის 9 ივლისიდან 20 აგვისტომდე რამდენჯერმე გამოიყენეს. საიტი ახალ სერვერზე გადაიტანეს, ყველა API გასაღები, სესია და 2FA-ს საიდუმლო კი გააუქმეს.

Lua პროგრამირების ენის პაკეტების მთავარი რეპოზიტორია LuaRocks.org-მა განაცხადა, რომ საიტზე არსებული დისტანციური კოდის შესრულების (RCE) ხარვეზი 2026 წლის 9 ივლისიდან 20 აგვისტომდე რამდენჯერმე გამოიყენეს. ცნობა პროექტმა 25 სექტემბერს მიიღო CISA-ს კოორდინაციით, ხარვეზი კი 26 სექტემბერს გამოსწორდა.

რადგან თავდამსხმელს სერვერზე კოდის გაშვება შეეძლო, ყველაფერი, რაზეც ამ სერვერს წვდომა ჰქონდა, გამჟღავნებულად მიიჩნევა. საიტი ახალ სერვერზე გადაიტანეს, ძველი სერვერის ყველა ავტორიზაციის მონაცემი კი გააუქმეს და შეცვალეს. პაკეტების შეცვლის კვალი არ დაფიქსირებულა.

რა უნდა გააკეთონ მომხმარებლებმა

ყველა API გასაღები და სესია გაუქმებულია, ამიტომ პაკეტების ასატვირთად ახალი გასაღები სჭირდება და სისტემაში ხელახლა შესვლაა საჭირო. პაროლები bcrypt-ის ჰეშების სახით ინახება: მათი გატეხვა ნელია, მაგრამ ჰეშები გამჟღავნებულად უნდა ჩაითვალოს, ამიტომ პაროლი უნდა შეიცვალოს ყველგან, სადაც იგივე პაროლი გამოიყენებოდა. 2FA-ს საიდუმლოებიც გამჟღავნდა, ამიტომ წაიშალა და ორფაქტორიანი ავთენტიფიკაცია ხელახლა უნდა ჩაირთოს.

შემქმნელები LuaRocks-ის 3.12 ან უფრო ახალ ვერსიაზე გადასვლას გირჩევენ, განსაკუთრებით LuaJIT-ისა და Lua 5.1-ის შემთხვევაში: ძველი ვერსიები წინასწარ კომპილირებულ ბაიტკოდს გაუშვებენ, თუ სერვერი მას rockspec-ის ან manifest-ის ნაცვლად გამოგზავნის. პაკეტები bcrcewon, 7e0b94029db0 და 7e0b9402f9c8 თავდამსხმელმა 7 აგვისტოს ატვირთა და უკვე წაშლილია; ვინც ისინი დააყენა, მან ის მანქანა კომპრომეტირებულად უნდა მიიჩნიოს.

როგორ მუშაობდა ხარვეზი

Rockspec-ები Lua ფაილებია და LuaRocks.org მათ შეზღუდულ გარემოში ასრულებს, რომ პაკეტის სახელი და ვერსია წაიკითხოს. ჩამტვირთავი ფუნქცია წინასწარ კომპილირებულ LuaJIT ბაიტკოდსაც იღებდა, არა მხოლოდ Lua-ს წყაროს. LuaJIT ბაიტკოდს არ ამოწმებს, ამიტომ სპეციალურად შექმნილ ფაილს შეზღუდული გარემოს გარეთ მეხსიერების წაკითხვა და ჩაწერა და ვებსერვერში თვითნებური კოდის გაშვება შეეძლო. ხარვეზის გამოწვევა ნებისმიერ დარეგისტრირებულ მომხმარებელს შეეძლო rockspec-ის ატვირთვით; გამოსწორებული ვერსია rockspec-ებს მხოლოდ ტექსტად ტვირთავს და ბაიტკოდს უარყოფს.

რა მოხდა

პროექტმა ამ მიზნით შექმნილი სამი ანგარიში აღმოაჩინა. პირველად, 9 ივლისს, სერვერზე ბრძანებები მავნე ატვირთვებით გაეშვა; 7 აგვისტოს ეს გაიმეორეს და სამი მავნე პაკეტი გამოქვეყნდა. 16 და 20 აგვისტოს ატვირთვის API-ით ასეულობით ავტომატური შეტევა მოხდა, უკვე გამოქვეყნებული მავნე კოდის ხელახალი გამოყენებით. ვებსერვერის ანგარიშს სერვერზე სრული ადმინისტრატორული წვდომა ჰქონდა, ამიტომ ჯგუფი მიიჩნევს, რომ თავდამსხმელს მთელი ბაზის წაკითხვა შეეძლო.

გამჟღავნებულ მონაცემებშია მომხმარებლების სახელები, ელფოსტები და bcrypt-ის პაროლის ჰეშები, API გასაღებები, 2FA-ს საიდუმლოები, სესიების ჩანაწერები IP მისამართებითა და ბრაუზერის მონაცემებით, ასევე GitHub-ის ანგარიშების დაკავშირების ტოკენები, რომლებიც მხოლოდ პროფილზე და ელფოსტაზე წვდომას იძლეოდა. LuaRocks.org პაკეტების ყოველდღიურ git სარკეს ინახავს: 8 ივლისის ასლთან და ბაზასთან შედარებამ აჩვენა, რომ ყველა სხვაობა ჩვეულებრივი ატვირთვით, კოპირებით ან წაშლით აიხსნება, ბაიტკოდი კი მხოლოდ თავდამსხმელის rockspec-ებში იყო. პროექტმა ხარვეზი გამოასწორა, თავდამსხმელის პაკეტები საიტიდან და ყველა სარკიდან ამოიღო და ყველა ავტორიზაციის მონაცემი გააუქმა. ერთი შეზღუდვა რჩება: თავდამსხმელის წაშლილი პაკეტი მფლობელის წაშლილისგან არ განსხვავდება.

SSiTech

SiTech — AI-გაძლიერებული ვებ დეველოპმენტი

ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.