Dobësi në Pagure dhe OBS që lejonin komprometimin e paketave në depot Fedora dhe openSUSE

Kërkuesit e sigurisë nga kompania Fenrisk zbuluan informacione mbi dobësitë në mjetet Pagure dhe OBS (Open Build Service), që lejonin të kompromentoheshin infrastrukturat e formimit të paketave të distribuimit Fedora dhe openSUSE. Kërkuesit demonstruan mundësinë e kryerjes së një sulmi për të ekzekutuar kod të rastit në serverët me Pagure dhe OBS, e cila mund të përdorej për të futur ndryshime në paketat në repo të Fedora dhe openSUSE.

Në platformën Pagure, e cila përdoret 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 është e nevojshme të kenë një llogari në shërbimin Pagure, që mund ta marrë çdokush (aktualisht në Pagure.io janë regjistruar 24899 përdorues). Tre probleme lejojnë të lexohen skedarët në sistem, ndërsa një problem lejon ekzekutimin e kodit të tyre në server. Problemet janë zbuluar më 1 janar 2024, janë raportuar nëpërmjet bugzilla.redhat.com më 25 prill 2024 dhe janë zgjidhur në Pagure brenda 3 orësh.

  • DobĂ«sitĂ« CVE-2024-4981 dhe CVE-2024-47515 shkaktohen nga pĂ«rpunimi i gabuar i lidhjeve simbolike nĂ« funksionet e pĂ«rditĂ«simit tĂ« skedarĂ«ve dhe krijimit tĂ« arkivave. DobĂ«sitĂ« lejojnĂ« tĂ« lexohen pĂ«rmbajtjet e skedarĂ«ve lokalĂ« nĂ« server, pĂ«r shembull, mund tĂ« zbulohet pĂ«rmbajtja e skedarit me parametrat e sesionit tĂ« administratorit tĂ« Pagure dhe tĂ« arrihet akses nĂ« tĂ« drejtat e tij. ShfrytĂ«zimi i dobĂ«sisĂ« nĂ« funksionin _update_file_in_git() konsiston nĂ« krijimin e njĂ« repozitori nĂ« Pagure; shtimin e njĂ« komiti me njĂ« skedar tĂ« ri, i cili Ă«shtĂ« krijuar si njĂ« lidhje simbolike nĂ« skedarin e dĂ«shiruar tĂ« sistemit; hapjen e kĂ«tij skedari pĂ«r editim nĂ« web-interface.
  • DobĂ«sia (CVE-2024-4982) nĂ« funksionin view_issue_raw_file() lejon daljen pĂ«rtej katalogut bazĂ« pĂ«rmes specifikimit tĂ« simboleve "\/.." nĂ« parametrat e kĂ«rkuar tĂ« Çështjes. Problemi lejon tĂ« lexohen skedarĂ«t nĂ« sistem, sa lejojnĂ« tĂ« drejtat e aksesit tĂ« procesit nĂ«n tĂ« cilin ekzekutohet web-interface. PĂ«r shembull, pĂ«r tĂ« parĂ« skedarin \/etc\/passwd mund tĂ« hapet faqja "http:\/\/pagure.local:5000\/your-repository\/issue\/raw\/..\/..\/..\/..\/..\/..\/..\/etc\/passwd".
  • NjĂ« vulnerabilitet (CVE-2024-47516) nĂ« funksionin PagureRepo.log() mundĂ«son futjen e komandave tĂ« veta dhe ekzekutimin e kodit nĂ« server. Problemi shkaktohet nga fakti se gjatĂ« shikimit tĂ« historisĂ« sĂ« ndryshimeve tĂ« skedarit pĂ«rmes ndĂ«rfaqes web, ekzekutohet njĂ« komandĂ« "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Ă« kaloni çdo opsion tĂ« linjĂ«s sĂ« komandĂ«s, si pĂ«r shembull, "--output=/tmp/foo.bar" pĂ«r tĂ« redirektuar daljen nĂ« njĂ« skedar. NjĂ« sulmues mund tĂ« pĂ«rshkruajĂ« 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 do të jetë e mundur të përshkruani vetëm skedarët e këtij përdoruesi. Për të organizuar ekzekutimin e kodit të tij në server, mund të përdorni një shërbim për qasje në depo përmes SSH, ku kur lidheni ekzekutohet komandë "bash -c /usr/libexec/pagure/aclchecker.py". Sulmuesi mund ta shfrytëzojë vulnerabilitetin për të përshkruar skedarin "/srv/git/.bashrc" dhe ky skedar do të ekzekutohet nga interpretu si bash kur lidheni me depo përmes SSH.

    Sulmi përfshin regjistrimin në sistemin Pagure, krijimin e depozitës, shtimin e skedarit README.md me një shënim për komitimin si "|| /bin/bash" dhe dërgimin e një kërkese "http://pagure.local:5000/test/history/README.md?identifier=--output=/srv/git/.bashrc". Gjatë këtyre hapave, në skedarin "/srv/git/.bashrc" do të shkruhet një varg i tillë: "34a5c43 || /bin/bash". Për të ekzekutuar skedarin e krijuar "/srv/git/.bashrc", mjafton të lidheni me depo përmes SSH me llogarinë tuaj. Ekzekutimi i kodit me të drejtat e përdoruesit git në serverin Pagure lejon kontrollin e të gjithë përmbajtjes së depozitave me paketa.

Në platformën OBS (Open Build Service), e cila përdoret në openSUSE dhe disa distribuera të tjera për ndërtimin e paketave, është identifikuar një vulnerabilitet (CVE-2024-22033) që lejon ekzekutimin e kodit të vet në server. Vulnerabiliteti u identifikua më 27 qershor 2024, u njoftua projektit openSUSE më 29 qershor dhe u rregullua më 10 korrik.

Vulnerabiliteti ndodhet nĂ« shĂ«rbimin «obs-service-download_url», nĂ« tĂ« cilin mungonte kontrolli i duhur tĂ« URL-sĂ« qĂ« pĂ«rdorej gjatĂ« ekzekutimit tĂ« utilitarit wget nga skripti qĂ« bĂ«nte shkarkimin e kodit burimor nĂ« OBS. NjĂ« sulmues mund tĂ« pĂ«rcaktojĂ« nĂ« shĂ«rbimin OBS konfigurimin e paketĂ«s qĂ« formohet, ku nĂ« vend tĂ« URL-sĂ« pĂ«r shkarkimin e kodit do tĂ« tregojĂ« opsionin e komandĂ«s pĂ«r wget, pĂ«r shembull: —output-document=\/tmp\/test tempfile

PĂ«r tĂ« shmangur kthimin e gabimit gjatĂ« pĂ«rpjekjes pĂ«r tĂ« ekzekutuar wget pa URL, shembulli tregon opsionin «download-manifest», qĂ« lejon pĂ«rcaktimin e njĂ« liste URL nĂ« njĂ« skedar tĂ« veçantĂ«. Shembulli i mĂ«sipĂ«rm do tĂ« çojĂ« nĂ« 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 qĂ« Ă«shtĂ« shkarkuar nga sulmuesi nĂ« OBS pĂ«rmes ndĂ«rfaqes build.opensuse.org, e cila lejon regjistrimin e lirĂ«. PĂ«rveç rilidhjes sĂ« skedarit nĂ« server, sulmuesi gjithashtu mund tĂ« dĂ«rgojĂ« ndonjĂ« skedar pĂ«r vete, duke treguar nĂ« vend tĂ« «—output-document» opsionin «—post-file», pĂ«r shembull, «—post-file=\/etc\/passwd». KĂ«shtu, sulmuesi mund tĂ« lexojĂ« dhe shkruajĂ« skedarĂ« nĂ« server, sa i lejojnĂ« tĂ« drejtat e qasjes, sipas tĂ« cilave shĂ«rbimi OBS ekzekutohet.

PĂ«r tĂ« kthyer mundĂ«sinĂ« e shkruarjes nĂ« skedar nĂ« ekzekutimin e kodit nĂ« server, studiuesit propozuan njĂ« metodĂ«, e cila pĂ«rbĂ«het nga dy faza. TĂ« dy fazat janĂ« tĂ« nevojshme, nĂ« mĂ«nyrĂ« qĂ« sulmuesi tĂ« krijojĂ« skedarin «.wgetrc» me cilĂ«simet pĂ«r wget, por kjo nuk mjafton pĂ«r ekzekutimin e komandave. MegjithatĂ«, pĂ«rmes «.wgetrc» Ă«shtĂ« e mundur tĂ« krijohen kushte pĂ«r ekzekutimin nĂ« sistem tĂ« çdo programi, por pa i kaluar asnjĂ« argument. PĂ«r tĂ« ekzekutuar kodin e rastit, Ă«shtĂ« propozuar tĂ« ekzekutohet programi «prove», i cili pĂ«rpunon skedarin e konfigurimit «.proverc», i cili lejon pĂ«rcaktimin e opsionit «—exec» pĂ«r ekzekutimin e çdo kodi.

Në fazën e parë, duke kaluar përmes manipulimeve të përmendura më sipër me "download-manifest" në katalogun e shtëpisë së përdoruesit "obsservicerun", krijohet një skedar " .proverc", i cili përmban komandat që do të ekzekutohen gjatë fillimit të procesit "prove". Në fazën e dytë, krijohet një skedar ".wgetrc" me parametrin "use-askpass=\/usr\/bin\/prove", i cili çon në thirrjen e "prove". Pasi të shfaqen këto skedare, mjafton të krijosh kushte për të shkarkuar ndonjë të dhënë përmes wget dhe kjo do të çojë në ekzekutimin e kodit të sulmuesit në server me të drejtat e përdoruesit "obsservicerun". Të drejtat e përdoruesit "obsservicerun" janë të mjaftueshme për të nxjerrë nga repositorët çelësat që përdoren nga përdoruesit OBS për të vërtetuar paketat.

ShtesĂ«: Ekipi i SigurisĂ« sĂ« Produkteve nĂ« SUSE beson se rreziku nga dobĂ«sia nĂ« OBS Ă«shtĂ« i ekzagjeruar dhe deklarata e kĂ«rkuesve se problemi lejon tĂ« kompromentohen tĂ« gjitha paketat nĂ« distribucionin openSUSE nuk Ă«shtĂ« e saktĂ«. ËshtĂ« e vĂ«rejtur se shĂ«rbimet nĂ« infrastrukturĂ«n build.opensuse.org ekzekutohen duke pĂ«rdorur kontejnerĂ« tĂ« izoluar, tĂ« rinj-krijuar dhe tĂ« cilĂ«t nuk pĂ«rmbajnĂ« informacione kritike. DobĂ«sia e zbuluar Ă«shtĂ« vlerĂ«suar si e rrezikshme, por jo e mjaftueshme pĂ«r tĂ« kompromentuar infrastrukturĂ«n e ndĂ«rtimit tĂ« openSUSE dhe pakot e formuara. PĂ«r mĂ« tepĂ«r, Ă«shtĂ« theksuar se veprimet nĂ« ndĂ«rfaqen OBS, tĂ« pĂ«rshkruara nĂ« shembullin e sulmit, mund tĂ« ishin kryer vetĂ«m nĂ« variantin OBS, i instaluar lokal nĂ« stacionin e punĂ«s tĂ« zhvilluesit.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster