OpenBSD давуу эрхийг нэмэгдүүлэх, баталгаажуулалт нь smtpd, ldapd болон radiusd дахь эмзэг байдлыг тойрч гардаг.

Qualys компани илчилсэн дөрөв эмзэг байдал OpenBSD-д, тэдгээрийн нэг нь таныг зарим сүлжээний үйлчилгээнд таниулахгүйгээр алсаас холбогдох боломжийг олгодог бол нөгөө гурав нь систем дэх таны эрхийг нэмэгдүүлдэг. Qualys тайланд OpenBSD хөгжүүлэгчид хурдан хариу үйлдэл үзүүлсэн - бүх асуудал байсан хасагдсан в OpenBSD 6.5 и OpenBSD 6.6 хувийн мэдэгдлээс хойш 40 цагийн дотор.

Алсын зайнаас ашиглаж болох эмзэг байдал нь libc номын сан дахь нэвтрэлт танилтын зохицуулагч руу залгахад алдаа гарсны улмаас үүсдэг.
програм /usr/libexec/auth/login_style командын мөрөнд аргумент дамжуулдаг. Нэмэлт параметр "-s service" ашиглан login_style руу залгахад протоколын нэрийг шилжүүлэх боломжтой. Хэрэв та хэрэглэгчийн нэрний эхэнд "-" тэмдэгт ашигладаг бол login_style-г ажиллуулах үед энэ нэрийг сонголт гэж үзэх болно. Үүний дагуу, хэрэв та баталгаажуулалтын явцад хэрэглэгчийн нэрээр "-schallenge" эсвэл "-schallenge: passwd" гэж зааж өгвөл login_style нь хүсэлтийг зохицуулагчийг ашиглах хүсэлт гэж хүлээн авах болно. S/Key.

Асуудал нь login_style дахь S/Key протоколыг зөвхөн албан ёсоор дэмждэг боловч баталгаажуулалт амжилттай болсон гэсэн дохиогоор хэрэгсэхгүй байгаа явдал юм. Тиймээс халдагчид "-challenge" хэрэглэгчийн дүрээр өөрийгөө таниулснаар нэвтрэлт танилтыг давж, нууц үг, түлхүүр өгөхгүйгээр нэвтрэх боломжтой болно. Баталгаажуулалтын стандарт libc дуудлагыг ашигладаг бүх сүлжээний үйлчилгээнүүд асуудалд өртөж болзошгүй. Жишээлбэл, баталгаажуулалтыг тойрч гарах чадварыг smtpd (AUTH PLAIN), ldapd болон radiusd-д дэмждэг.

Энэ эмзэг байдал нь sshd-д харагдахгүй, учир нь энэ нь системд хэрэглэгч байгаа эсэхийг шалгадаг нэмэлт хамгаалалттай байдаг. Гэсэн хэдий ч sshd-ийг системийн эмзэг байдлыг шалгахад ашиглаж болно - "-sresponse:passwd" хэрэглэгчийн нэр рүү нэвтрэх үед холболт гацдаг, учир нь sshd нь сорилтын параметрүүдийг буцаахын тулд login_passwd, харин login_passwd нь дутуу параметрүүдийг хүлээн авахыг хүлээж байна. илгээгдэнэ ("- sresponse" нэрийг сонголт гэж үзнэ). Орон нутгийн халдагчид su хэрэглүүрт нэвтрэлт танилтыг тойрч гарахыг оролдож болох боловч "-sresponse" гэсэн нэрийг дамжуулснаар getpwnam_r("-schallenge", ...) функцийг гүйцэтгэх үед хоосон заагчийг буцаан өгснөөр процесс гацахад хүргэдэг.

Бусад эмзэг байдал:

  • CVE-2019-19520 Бүлэгийг "auth" болгож өөрчилсөн sgid тугтай нийлүүлсэн xlock хэрэглүүрийг удирдах замаар орон нутгийн эрхийг нэмэгдүүлэх. Xlock кодонд зөвхөн хэрэглэгчийн танигч (setuid) өөрчлөгдсөн үед л номын сан руу нэвтрэх замыг дахин тодорхойлохыг хориглодог бөгөөд энэ нь халдагч этгээдэд "LIBGL_DRIVERS_PATH" орчны хувьсагчийг өөрчлөх, кодыг нь гүйцэтгэх өөрийн хуваалцсан номын сангаа ачаалах ажлыг зохион байгуулах боломжийг олгодог. "auth" бүлэгт давуу эрх олгосоны дараа.
  • CVE-2019-19522 - "auth" бүлгийн гишүүн орон нутгийн хэрэглэгчдэд S/Key эсвэл YubiKey нэвтрэлт танилтыг систем дээр идэвхжүүлсэн үед кодыг root болгон ажиллуулахыг зөвшөөрдөг (анхдагчаар идэвхтэй биш). Xlock-ийн дээр дурдсан эмзэг байдлыг ашиглан хандах боломжтой "auth" бүлэгт элссэнээр /etc/skey болон /var/db/yubikey директоруудад файл бичих боломжтой. Жишээлбэл, халдагчид S/Key-ээр дамжуулан root хэрэглэгч болохын тулд нэг удаагийн түлхүүр үүсгэхийн тулд /etc/skey/root шинэ файл нэмж болно.
  • CVE-2019-19519 - su хэрэгслийг ашиглан нөөцийн хязгаарыг нэмэгдүүлэх боломж. Баталгаажуулалтын оролдлого амжилтгүй болсон тохиолдолд давтамжтайгаар давтагдах "-L" сонголтыг зааж өгсөн тохиолдолд хэрэглэгчийн ангиллыг зөвхөн нэг удаа тохируулах ба дараагийн оролдлогуудад дахин тохируулахгүй. Халдагчид өөр акаунтын ангиллаар хэн нэгний нэвтрэхийг оролдсон эхний оролдлогоор "su -l -L"-г ажиллуулж болох боловч хоёр дахь оролдлогоор өөрийгөө баталгаажуулж чадна. Энэ тохиолдолд хэрэглэгч эхний оролдлогод заасан хэрэглэгчийн ангилалд (жишээлбэл, процессын хамгийн их тоо эсвэл санах ойн хэмжээ) үндэслэн хязгаарлалт тавих болно. Үндсэн хэрэглэгч дугуйны бүлэгт байх ёстой тул энэ арга нь зөвхөн эрхгүй хэрэглэгчдээс зээл авах хязгаарлалтад л ажилладаг).

Нэмж дурдахад үүнийг тэмдэглэж болно хэрэгжилт OpenBSD-д системийн дуудлагын хүчинтэй эсэхийг шалгах шинэ арга бөгөөд энэ нь эмзэг байдлын ашиглалтыг улам хүндрүүлдэг. Энэ арга нь зөвхөн өмнө нь бүртгэгдсэн санах ойн хэсгээс хандсан тохиолдолд л системийн дуудлагыг гүйцэтгэх боломжийг олгодог. Санах ойн хэсгүүдийг тэмдэглэхийн тулд санал болгосон системийн шинэ дуудлага msyscall().

Эх сурвалж: opennet.ru