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-ში მისთვის ნაპოვნი პირველი უსაფრთხოების პრობლემა არ არის და ამჟამად პროექტის გადაწყვეტილებების ხარისხს არ ენდობა.
SiTech — AI-გაძლიერებული ვებ დეველოპმენტი
ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.