Осебҳои решаи маҳаллӣ дар абзори идоракунии бастаи Snap

Qualys ду осебпазириро (CVE-2021-44731, CVE-2021-44730) дар утилитаи snap-confine муайян кардааст, ки бо парчами решаи SUID таъмин карда шудааст ва аз ҷониби раванди snapd барои эҷоди муҳити иҷрошаванда барои замимаҳои дар бастаҳои мустақил фиристодашуда даъват шудааст. дар формати snap. Заифӣ ба корбари беимтиёзи маҳаллӣ имкон медиҳад, ки кодро бо имтиёзҳои реша дар система иҷро кунад. Масъалаҳо дар навсозии бастаи snapd имрӯз барои Ubuntu 21.10, 20.04 ва 18.04 ҳал карда мешаванд.

Ҳассосияти аввал (CVE-2021-44730) ба ҳамла тавассути коркарди пайванди сахт имкон медиҳад, аммо ғайрифаъол кардани системаи ҳифзи истинодҳои сахтро талаб мекунад (муқаррар кардани sysctl fs.protected_hardlinks ба 0). Мушкилот дар натиҷаи санҷиши нодурусти ҷойгиршавии файлҳои иҷрошавандаи барномаҳои ёрирасони snap-update-ns ва snap-discard-ns ба сифати реша кор мекунанд. Роҳ ба ин файлҳо дар функсияи sc_open_snapd_tool() дар асоси роҳи худ аз /proc/self/exe ҳисоб карда шуд, ки ба шумо имкон медиҳад истиноди сахтро барои snap-confine дар директорияи худ эҷод кунед ва версияҳои шахсии snap-ро ҷойгир кунед. навсозӣ-ns ва snap- utilities дар ин директория discard-ns. Пас аз кор кардан тавассути истиноди сахт, snap-confine бо ҳуқуқи реша файлҳои snap-update-ns ва snap-discard-ns-ро аз феҳристи ҷории ҳамлакунанда оғоз мекунад.

Осебпазирии дуюм аз ҳолати нажод ба вуҷуд омадааст ва онро дар конфигуратсияи пешфарзии мизи кории Ubuntu истифода бурдан мумкин аст. Барои бомуваффақият кор кардани истисмор дар сервери Ubuntu, шумо бояд ҳангоми насб яке аз бастаҳоро аз қисмати "Сервери барҷаста" интихоб кунед. Ҳолати мусобиқа дар функсияи setup_private_mount() аён аст, ки ҳангоми омода кардани фазои номи нуқтаи васлкунӣ барои бастаи snap даъват карда мешавад. Ин функсия директорияи муваққатии "/tmp/snap.$SNAP_NAME/tmp"-ро эҷод мекунад ё директорияи мавҷударо барои пайваст кардани директорияҳо барои бастаи фаврӣ ба он истифода мебарад.

Азбаски номи директорияи муваққатӣ пешгӯишаванда аст, ҳамлакунанда метавонад мундариҷаи онро бо истиноди рамзӣ пас аз тафтиши соҳиби он, вале пеш аз занг задан ба системаи mount иваз кунад. Масалан, шумо метавонед пайванди рамзии "/tmp/snap.lxd/tmp" -ро дар директорияи /tmp/snap.lxd эҷод кунед, ки ба директорияи ихтиёрӣ ишора мекунад ва занг ба mount() пайванди рамзӣ ва васл кардани директорияро дар snap фазои ном. Ба ҳамин монанд, шумо метавонед мундариҷаи худро дар /var/lib насб кунед ва бо иваз кардани /var/lib/snapd/mount/snap.snap-store.user-fstab, насби директорияи /etc-и худро дар фазои номи бастаи фаврӣ барои ташкили боркунии китобхонаи шумо аз ҳуқуқи реша тавассути иваз кардани /etc/ld.so.preload.

Қайд карда мешавад, ки эҷоди истисмор як кори ғайриоддӣ ба ҳисоб мерафт, зеро утилитаи snap-confine дар Go бо истифода аз усулҳои барномасозии бехатар навишта шудааст, муҳофизат дар асоси профилҳои AppArmor, зангҳои системаро дар асоси механизми seccomp филтр мекунад ва истифода мебарад фазои номи кӯҳӣ барои ҷудокунӣ. Бо вуҷуди ин, муҳаққиқон тавонистанд як эксплоити корӣ барои ба даст овардани ҳуқуқи реша дар система омода кунанд. Рамзи истисмор пас аз чанд ҳафта пас аз насб кардани корбарон навсозиҳои пешниҳодшуда нашр мешавад.

Манбаъ: opennet.ru

Илова Эзоҳ