Vulnerabilitetet në Pagure dhe OBS, të cilat mundësuan komprometimin e paketave në depozitë të Fedora dhe openSUSE.

Kërkuesit e sigurisë nga kompania Fenrisk zbuluan informacion mbi dobësitë në veglat Pagure dhe OBS (Open Build Service), të cilat lejuan kompromentimin e infrastrukturës për ndërtimin e paketave të distribuimeve Fedora dhe openSUSE. Kërkuesit demonstruan mundësinë e realizimit të një sulmi për të ekzekutuar kod të rastësishëm në serverët me Pagure dhe OBS, gjë që mund të përdorej për të vendosur ndryshime në paketa në depozitë të Fedora dhe openSUSE.

Në platformën Pagure, e përdorur në Fedora për bashkëpunim me kodin dhe metadatat e paketave, janë zbuluar 4 dobësi. Për të shfrytëzuar këto probleme, nevojitet të ketë një llogari në shërbimin Pagure, të cilin mund ta marrë çdo dëshiron (aktualisht në Pagure.io janë regjistruar 24899 përdorues). Tre nga problemet lejojnë leximin e skedareve në sistem, ndërsa një problem lejon ekzekutimin e kodeve të veta në. serveri. Problemet janë identifikuar më 1 janar 2024, raportuar nëpërmjet bugzilla.redhat.com më 25 prill 2024 dhe adresuar në Pagure brenda 3 orëve.

  • DobĂ«sitĂ« CVE-2024-4981 dhe CVE-2024-47515 shkaktohen nga pĂ«rpunimi i papĂ«rshtatshĂ«m i lidhjeve simbolike nĂ« funksionet e pĂ«rditĂ«simit tĂ« skedarit dhe gjenerimit tĂ« arkivave. DobĂ«sitĂ« lejojnĂ« leximin e pĂ«rmbajtjes sĂ« skedareve lokale nĂ« server, pĂ«r shembull, Ă«shtĂ« e mundur tĂ« dihet pĂ«rmbajtja e skedarit me parametrat e sesionit tĂ« administratorit nĂ« Pagure dhe tĂ« merret qasje me tĂ« drejtat e tij. ShfrytĂ«zimi i dobĂ«sisĂ« nĂ« funksionin _update_file_in_git() pĂ«rfshin krijimin e njĂ« depoje nĂ« Pagure; shtimin e njĂ« komiti me njĂ« skedar tĂ« ri, i cili Ă«shtĂ« krijuar si lidhje simbolike me skedarin e dĂ«shiruar tĂ« sistemit; hapjen e kĂ«tij skedari pĂ«r editim nĂ« ndĂ«rfaqen web.
  • Vulnerabiliteti (CVE-2024-4982) nĂ« funksionin view_issue_raw_file() lejon daljen pĂ«rtej katalogut themelor duke specificuar simbolet "/.." nĂ« parametrat e pyetjes sĂ« problemit. Problemi lejon leximin e skedarĂ«ve nĂ« sistem, sa lejojnĂ« tĂ« drejtat e aksesit tĂ« procesit nĂ«n tĂ« cilin ekzekutohet interfaca web. PĂ«r shembull, pĂ«r tĂ« parĂ« skedarin /etc/passwd mund tĂ« hapet faqja "http://pagure.local:5000/your-repository/issue/raw/../../../../../../../etc/passwd".
  • Vulnerabiliteti (CVE-2024-47516) nĂ« funksionin PagureRepo.log(), ofron mundĂ«sinĂ« pĂ«r tĂ« inkorporuar komanda tĂ« veta dhe pĂ«r tĂ« ekzekutuar kod nĂ« server. Problemi shkaktohet nga fakti se gjatĂ« shikimit tĂ« historisĂ« sĂ« ndryshimeve tĂ« skedarĂ«ve pĂ«rmes interfecĂ«s web, ekzekutohet komanda "git" me kalimin e identifikuesit tĂ« degĂ«s nĂ« linjĂ«n e komandĂ«s (p.sh., "/usr/bin/git —pretty=oneline —abbrev-commit — README.md"). SaktĂ«sia e identifikuesit nuk verifikohet, prandaj mund tĂ« kalosh çdo opsion tĂ« linjĂ«s sĂ« komandĂ«s, p.sh., "—output=/tmp/foo.bar" pĂ«r tĂ« drejtuar daljen nĂ« skedarin. Sulmuesi mund tĂ« mbivendosĂ« njĂ« skedar nĂ« sistem duke dĂ«rguar njĂ« kĂ«rkesĂ« tĂ« kĂ«tij lloji: http://pagure.local:5000/test/history/README.md?identifier=—output=/tmp/foo.bar

    Pagure ekzekutohet nën përdoruesin git, prandaj është e mundur të mbivendosësh vetëm skedarët e këtij përdoruesi. Për të organizuar ekzekutimin e kodit të vet në server, mund të përdorësh një shërbim për qasje në repository përmes SSH, ku ekzekutohet komanda "bash -c /usr/libexec/pagure/aclchecker.py". Sulmuesi mund të shfrytëzojë vulnerabilitetin për të mbivendosur skedarin "/srv/git/.bashrc" dhe ky skedar do të ekzekutohet nga interpreti i komandave bash kur kërkohet repoja përmes ssh.

    Sulmi pĂ«rfshin regjistrimin nĂ« sistemin Pagure, krijimin e njĂ« repository, shtimin nĂ« repository tĂ« skedarit README.md me njĂ« vĂ«rejtje pĂ«r commit tĂ« tipit "|| /bin/bash" dhe dĂ«rgimin e kĂ«rkesĂ«s "http://pagure.local:5000/test/history/README.md?identifier=—output=/srv/git/.bashrc". NĂ«pĂ«rmjet kĂ«tyre hapave, nĂ« skedarin "/srv/git/.bashrc" do tĂ« shkruhet njĂ« rresht i tipit "34а5с43 || /bin/bash". PĂ«r tĂ« ekzekutuar skedarin e krijuar "/srv/git/.bashrc", mjafton tĂ« lidhen me repo-nĂ« pĂ«rmes SSH nĂ«n llogarinĂ« e tyre. Ekzekutimi i kodit me tĂ« drejtat e pĂ«rdoruesit git nĂ« serverin Pagure lejon kontrollin e gjithĂ« pĂ«rmbajtjes sĂ« repository-ve me paketa.

Në platformën OBS (Open Build Service), e përdorur në openSUSE dhe disa distribuime të tjera për ndërtimin e paketave, është zbuluar një dobësi (CVE-2024-22033), që lejon ekzekutimin e kodit të tij në server. Dobësia është zbuluar më 27 qershor 2024, raportuar në projektin openSUSE më 29 qershor dhe adresuar më 10 korrik.

Vulnerabiliteti Ă«shtĂ« prezent nĂ« shĂ«rbimin "obs-service-download_url", ku mungonte kontrolli i duhur tĂ« URL-sĂ« qĂ« pĂ«rdorej gjatĂ« ekzekutimit tĂ« utilitetit wget nga skripti qĂ« bĂ«nte shkarkimin e kodit burimor nĂ« OBS. Sulmuesi mund tĂ« specifikojĂ« nĂ« shĂ«rbimin OBS njĂ« konfigurim tĂ« paketĂ«s qĂ« formohet, nĂ« tĂ« cilin, nĂ« vend tĂ« URL-sĂ« pĂ«r shkarkimin e kodit, do tĂ« specifikohej njĂ« opsion i linjĂ«s sĂ« komandĂ«s pĂ«r wget, p.sh.: —output-document=/tmp/test tempfile

PĂ«r tĂ« shmangur kthehen e gabimeve gjatĂ« pĂ«rpjekjes pĂ«r tĂ« ekzekutuar wget pa URL, nĂ« shembullin e mĂ«sipĂ«rm Ă«shtĂ« specifikuar opsioni "download-manifest", i cili lejon specifikimin e njĂ« liste URL-sh nĂ« njĂ« skedar tĂ« veçantĂ«. Shembulli i mĂ«sipĂ«rm do tĂ« shkaktojĂ« ekzekutimin e komandĂ«s: /usr/bin/wget -i /srv/obs/service/XXXXX/src/tempfile -4 —output-document=/tmp/test

i cili lejon tĂ« shkruhet nĂ« skedarin /tmp/test pĂ«rmbajtja e shkarkuar nga lidhja e specifikuar nĂ« skedarin /srv/obs/service/XXXXX/src/tempfile nga kodi, i shkarkuar nga sulmuesi nĂ« OBS pĂ«rmes ndĂ«rfaqes build.opensuse.org, e cila lejon regjistrimin e lirĂ«. PĂ«rveç mbivendosjes sĂ« skedarĂ«ve nĂ« server, sulmuesi gjithashtu mund tĂ« dĂ«rgojĂ« çdo skedar pĂ«r vete duke specifikuar nĂ« vend tĂ« "—output-document" opsionin "—post-file", p.sh., "—post-file=/etc/passwd". KĂ«shtu, sulmuesi mund tĂ« lexojĂ« dhe shkruajĂ« skedarĂ« nĂ« server, sa lejojnĂ« tĂ« drejtat e aksesit nĂ«n tĂ« cilat ekzekutohet shĂ«rbimi OBS.

PĂ«r tĂ« transformuar mundĂ«sinĂ« e shkruarjes nĂ« skedar nĂ« ekzekutimin e kodit nĂ« server, hulumtuesit propozuan njĂ« metodĂ« me dy etapa. Dy etapat janĂ« tĂ« nevojshme, pasi sulmuesi mund tĂ« krijojĂ« skedarin ".wgetrc" me cilĂ«sime pĂ«r wget, por kjo nuk Ă«shtĂ« e mjaftueshme pĂ«r tĂ« ekzekutuar komanda. MegjithatĂ«, pĂ«rmes ".wgetrc" mund tĂ« krijosh kushte pĂ«r ekzekutimin nĂ« sistem tĂ« çdo programi, por pa i kaluar asaj argumente. PĂ«r tĂ« ekzekutuar kod tĂ« rastĂ«sishĂ«m, Ă«shtĂ« propozuar ekzekutimi i programit "prove", qĂ« pĂ«rpunon skedarin e konfigurimit ".proverc", duke lejuar specifikimin e opsionit "—exec" pĂ«r ekzekutimin e çdo kodi.

Në fazën e parë, përmes manovrave të përmendura më sipër me "download-manifest" në katalogun e përdoruesit "obsservicerun" krijohet skedari ".proverc", që përmban komandat që do të ekzekutohen gjatë procesit "prove". Në fazën e dytë krijohet skedari ".wgetrc" me parametrit "use-askpass=/usr/bin/prove", i cili thërret "prove". Pas shfaqjes së këtyre skedarëve, mjafton të krijohen kushtet për ngarkimin e të dhënave përmes wget dhe kjo do të sjellë nisjen e kodit të sulmuesit në server me të drejtat e përdoruesit "obsservicerun". Të drejtat e përdoruesit "obsservicerun" mjaftojnë për të nxjerrë çelësa nga depot e përdoruesve OBS për të vërtetuar paketat.

Shtesë: Ekipi i Sigurisë së Produktit SUSE beson se rreziku i këtij vulnerabliteti në OBS është i tepruar dhe deklarata e kërkuesve se problemi lejon të komprometohen të gjitha paketat në distribucionin openSUSE nuk është e saktë. Theksohet se shërbimet në infrastrukturën build.opensuse.org ekzekutohen duke përdorur konteinerë të izoluar, të rinovuar dhe që nuk përmbajnë informacione kritike. Vulneshimi i identifikuar është vlerësuar si rrezikshëm, por jo i mjaftueshëm për të komprometuar infrastrukturën e ndërtimit openSUSE dhe paketat e formuara. Gjithashtu, është thënë se veprimet në ndërfaqen OBS, të përshkruara në shembullin e sulmit, mund të ishin realizuar vetëm në variantin e OBS që ishte instaluar lokal në stacionin e punës së zhvilluesit.

Burimi: opennet.ru

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster