Lokala root-sÄrbarheter i Snap-pakethanteringsverktyget

Företaget Qualys har identifierat tvÄ sÄrbarheter (CVE-2021-44731, CVE-2021-44730) i verktyget snap-confine, som levereras med SUID root-flagga och anropas av processen snapd för att skapa en körmiljö för applikationer som levereras i sjÀlvbÀrande paket i snap-format. SÄrbarheterna gör det möjligt för en lokal icke-privilegierad anvÀndare att köra kod med root-rÀttigheter i systemet. Problemet har ÄtgÀrdats i dagens uppdatering av snapd-paketen för Ubuntu 21.10, 20.04 och 18.04.

Den första sÄrbarheten (CVE-2021-44730) möjliggör en attack genom manipulering av hÄrda lÀnkar, men krÀver att den systeminbyggda skyddet för hÄrda lÀnkar Àr inaktiverat (instÀllning av sysctl fs.protected_hardlinks till 0). Problemet orsakas av felaktig kontroll av platsen för körbara filer för hjÀlpprogrammen snap-update-ns och snap-discard-ns, som körs med root-rÀttigheter. SökvÀgen till dessa filer berÀknades i funktionen sc_open_snapd_tool() baserat pÄ sin egen sökvÀg frÄn /proc/self/exe, vilket gör det möjligt att skapa en hÄrd lÀnk till snap-confine i sin egen mapp och placera sina egna versioner av snap-update-ns och snap-discard-ns i denna mapp. Efter att ha startat via hÄrda lÀnken kommer snap-confine med root-rÀttigheter att köra de filer av snap-update-ns och snap-discard-ns som attackeraren har placerat i den aktuella mappen.

Den andra sÄrbarheten orsakas av ett tÀvlingsförhÄllande och kan utnyttjas i standardkonfigurationen av Ubuntu Desktop. För att exploatera den framgÄngsrikt i Ubuntu Server krÀvs det att man vid installationen vÀljer ett av paketen i sektionen 'Featured Server Snaps'. TÀvlingsförhÄllandet visar sig i funktionen setup_private_mount(), som anropas under förberedelsen av namnrymder för monteringspunkter för snap-paketet. Denna funktion skapar en temporÀr mapp '/tmp/snap.$SNAP_NAME/tmp' eller anvÀnder en redan existerande för bind-montering av mappar för paketet i snap-format.

Eftersom namnet pÄ den tillfÀlliga katalogen Àr förutsÀgbart kan en angripare ersÀtta dess innehÄll med en symbolisk lÀnk i ögonblicket efter Àgarverifieringen, men före anropet till systemanropet mount. Till exempel kan man skapa en symbolisk lÀnk " /tmp/snap.lxd/tmp " i katalogen /tmp/snap.lxd som pekar pÄ en godtycklig katalog, och anropet till mount() kommer att följa den symboliska lÀnken och montera katalogen i snap-namnrymden. PÄ liknande sÀtt kan man montera sitt eget innehÄll i /var/lib och genom att ersÀtta /var/lib/snapd/mount/snap.snap-store.user-fstab organisera montering av sin katalog /etc i snap-paketets namnrymd för att organisera laddning av sitt bibliotek med root-rÀttigheter genom att ersÀtta /etc/ld.so.preload.

Det noteras att skapandet av en exploit visade sig vara en icke-trivial uppgift, eftersom verktyget snap-confine Àr skrivet i sprÄk Go med anvÀndning av sÀkra programmeringstekniker, har skydd baserat pÄ AppArmor-profiler, filtrerar systemanrop baserat pÄ seccomp-mekanismen och tillÀmpar namnrymd för montering för isolering. Trots detta lyckades forskarna förbereda en fungerande exploit för att fÄ root-rÀttigheter i systemet. Koden för exploiten kommer att publiceras inom nÄgra veckor, efter att anvÀndarna har installerat de tillhandahÄllna uppdateringarna.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster