უკან დაბრუნება
SiTech
Omarchy-ის ხარვეზი: ნებისმიერ პროცესს root-ის უფლებების მიღება პაროლის გარეშე შეეძლო
SiTech AI Team2 წთ. საკითხავი

Omarchy-ის ხარვეზი: ნებისმიერ პროცესს root-ის უფლებების მიღება პაროლის გარეშე შეეძლო

Omarchy-ის ნაგულისხმევი კონფიგურაცია მომხმარებელს docker ჯგუფში ამატებდა, რის გამოც სესიის თითქმის ყველა პროცესს root-ის დონის წვდომა ჰქონდა. პრობლემა 4.0.1 ვერსიაში გამოსწორდა.

Arch-ზე დაფუძნებული Linux-დისტრიბუტივი Omarchy, რომელიც დეველოპერებისთვისაა განკუთვნილი, ნაგულისხმევ კონფიგურაციაში ისეთი პარამეტრით მოდიოდა, რომლითაც მომხმარებლის სამუშაო სესიაში გაშვებულ თითქმის ნებისმიერ პროგრამას root-ის უფლებების მიღება შეეძლო — პაროლის, sudo-ს ან უფლებების მოთხოვნის გარეშე. უსაფრთხოების მკვლევარმა 0xCC-მ პრობლემა პროექტის პასუხისმგებლიანი გამჟღავნების პროცედურით შეატყობინა და დეტალები 28 აგვისტოს გამოაქვეყნა, მას შემდეგ რაც კონფიგურაცია გამოსწორდა. შესწორება Omarchy 4.0.1-ში შედის.

პრობლემა: docker ჯგუფი ნაგულისხმევად

დისტრიბუტივი ნაგულისხმევ მომხმარებელს Linux-ის docker ჯგუფს ამატებდა, რაც იმას ნიშნავს, რომ ამ ანგარიშს Docker-ის ბრძანებების გაშვება sudo-ს გარეშე შეუძლია. Arch-ზე Docker-ის დემონი root-ის სახელით მუშაობს და /var/run/docker.sock სოკეტს უსმენს. docker ჯგუფის წევრებს ამ სოკეტთან კომუნიკაცია შეუძლიათ და თავად Docker-ის დოკუმენტაცია გააფრთხილებს, რომ ეს ჯგუფი მომხმარებელს root-ის დონის უფლებებს ანიჭებს.

სოკეტზე წვდომის მქონე პროცესს შეუძლია root-ის სახელით მომუშავე დემონს სთხოვოს კონტეინერის root-ით გაშვება, ჰოსტის ფაილური სისტემის ნებისმიერი ნაწილის მასში ჩამონტაჟება, ამ ფაილებზე root-ის უფლებებით მუშაობა და კოდის გაშვება. დადასტურება მოკლეა: ახალ დაინფიცირებულ სისტემაზე cat /etc/shadow პასუხად „Permission denied"-ს იძლევა, ხოლო docker run --rm -v /:/hostroot alpine cat /hostroot/etc/shadow shadow ფაილის შიგთავსს ბეჭდავს — ბრძანებას ჩვეულებრივი მომხმარებლის პროცესი იწყებს, ფაილთან წვდომა კი root-ის დემონი ასრულებს.

მასშტაბი: მთელი სესია

Linux-ის დამატებითი ჯგუფები შვილობილ პროცესებს მემკვიდრეობით გადაეცემათ, ამიტომ docker ჯგუფი მომხმარებლის systemd --user ინსტანციის ქვეშ მყოფ თითქმის ყველა ჩვეულებრივ პროცესს ჰქონდა. მკვლევარი ჩამოთვლის AI-კოდინგის აგენტებსა და აგენტების გარემოებს, ბრაუზერებს, რედაქტორებსა და IDE-ებს, npm სკრიპტებს, სხვადასხვა დეველოპერულ ხელსაწყოსა და ფონურ პროცესებს. პრაქტიკაში ეს ნიშნავს, რომ ერთი ჩვეულებრივი აპლიკაციის კომპრომეტირება მთელი მანქანის კომპრომეტირებად იქცევა.

კონფიგურაცია opt-out ტიპის იყო და არა opt-in: Docker-ის გამოყენება სავალდებულო არ იყო, თუმცა კომპრომისი მაინც ნაგულისხმევ ანგარიშს დაეკისრა და მომხმარებელს არ აუხსნეს. Omarchy-ის დოკუმენტაცია ახსენებდა „მომხმარებლის ჯგუფის ცვლილებებს, რომლებიც საჭიროა Docker-ის ჩვეულებრივი მომხმარებლის სახელით და არა root-ით გასაშვებად" — ფორმულირება, რომელსაც მკითხველი ადვილად აღიქვამს rootless რეჟიმად, რაც სინამდვილეში ასე არ იყო.

ქრონოლოგია და ალტერნატივა

docker ჯგუფში წევრობა 2025 წლის 1 ივნისს დაემატა, მეორე დღეს დროებით გამოირთო, 2025 წლის 17 ივნისს კვლავ ჩაირთო და საბოლოოდ 2026 წლის 24 აგვისტოს ამოიღეს ნაგულისხმევი კონფიგურაციიდან. დაზარალებულია 4.0.1-ზე ძველი ვერსიები; მკვლევარმა ბოლო 3.x ISO (3.8.4) შეამოწმა და იქაც დაადასტურა ქცევა.

მათთვის, ვისაც კონტეინერები root-ის უფლებების გარეშე სურს, ავტორი Podman-ს რეკომენდაციას აძლევს: ის დემონის გარეშე მუშაობს და კონტეინერები ჩვეულებრივ შვილობილ პროცესებად, საკუთარ user namespace-ებში ეშვება. მკვლევარმა აღნიშნა, რომ რეაგირების სისწრაფემ შთაბეჭდილება მოახდინა, თუმცა დასძინა, რომ ეს Omarchy-ში მისთვის ნაპოვნი პირველი უსაფრთხოების პრობლემა არ არის და ამჟამად პროექტის გადაწყვეტილებების ხარისხს არ ენდობა.

SSiTech

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

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