I ricercatori di sicurezza di Fenrisk anu divulgatu vulnerabili in l'arnesi Pagure è OBS (Open Build Service) chì puderanu cumprumette l'infrastruttura di imballaggio di Fedora è distribuzioni openSUSE. I ricercatori anu dimustratu a capacità di realizà un attaccu di esecuzione di codice arbitrariu nantu à i servitori chì correnu Pagure è OBS, chì puderia esse usatu per inject changes in packages in Fedora è openSUSE repositories.
Quattru vulnerabilità sò state scuperte in a piattaforma Pagure aduprata in Fedora per a cullaburazione nantu à u codice è i metadati di i pacchetti. Sfruttà e vulnerabilità identificate richiede un contu Pagure, chì chiunque pò ottene (Pagure.io hà attualmente 24899 utilizatori registrati). Trè di e vulnerabilità permettenu à l'utilizatori di leghje i fugliali nantu à u sistema, è una permette l'esecuzione di codice. servitoreI prublemi sò stati scuperti u 1 di ghjennaghju di u 2024, signalati via bugzilla.redhat.com u 25 d'aprile di u 2024, è riparati in Pagure 3 ore dopu.
- Vulnerabilità CVE-2024-4981 è CVE-2024-47515 sò causati da una manipulazione incorrecta di ligami simbolichi in l'aghjurnamentu di u schedariu è e funzioni di generazione di archivi. I vulnerabili permettenu di leghje u cuntenutu di i schedarii lucali nantu à u servitore, per esempiu, pudete scopre u cuntenutu di u schedariu cù i paràmetri di a sessione di l'amministratore di Pagure è accede cù i so diritti. Sfruttamentu di a vulnerabilità in a funzione _update_file_in_git() si riduce à creà un repository in Pagure; aghjunghjendu un impegnu cù un novu schedariu, chì hè creatu cum'è un ligame simbolicu à u schedariu di u sistema desideratu; aprendu stu schedariu per edità in l'interfaccia web.
- Una vulnerabilità (CVE-2024-4982) in a funzione view_issue_raw_file() permette à un attaccu di scaccià u repertoriu di basa specificendu i caratteri "/.." in i paràmetri di l'Issue dumandatu. U prublema permette di leghje i schedari in u sistema, in quantu i diritti d'accessu di u prucessu sottu à quale l'interfaccia web hè in esecuzione permette. Per esempiu, per vede u schedariu /etc/passwd, pudete apre a pagina "http://pagure.local:5000/your-repository/issue/raw/../../../../../../etc/passwd".
- Una vulnerabilità (CVE-2024-47516) in a funzione PagureRepo.log() permette a sustituzione di cumandamenti persunalizati è l'esekzione di codice in u servitore. U prublema hè causatu da u fattu chì quandu vede a storia di u cambiamentu di u schedariu via l'interfaccia web, u cumandamentu "git" hè chjamatu cù l'identificatore di ramu passatu nantu à a linea di cumanda (per esempiu, "/usr/bin/git --pretty=oneline --abbrev-commit). — README.md»). L'identificatore ùn hè micca verificatu per a correttezza, perchè pudete passà qualsiasi opzione di linea di cummanda invece, per esempiu "--output=/tmp/foo.bar" per redirige l'output à un schedariu. Un attaccu pò soprascrive un schedariu nantu à u sistema mandendu una dumanda cum'è questu: http://pagure.local:5000/test/history/README.md?identifier=—output=/tmp/foo.bar
Pagure corre sottu à l'utilizatore git, cusì soprascrive solu i fugliali di quellu utilizatore. Per urganizà l'esekzione di u vostru còdice in u servitore, pudete aduprà u serviziu per accede à u repository via SSH, quandu accede à quale u cumandimu "bash -c /usr/libexec/pagure/aclchecker.py" hè eseguitu. Un attaccu pò aduprà a vulnerabilità per soprascrive u schedariu "/srv/git/.bashrc" è questu schedariu serà eseguitu da l'interprete di cumanda bash quandu accede à u repository via ssh.
L'attaccu consiste à registrà in u sistema Pagure, creendu un repository, aghjunghjendu un schedariu README.md à u repository cù una nota di cummissione di u tipu "|| /bin/bash" è mandà a dumanda "http://pagure.local:5000/test/history/README.md?identifier=—output=/srv/". Durante questi passi, una linea cum'è "34a5c43 || serà scritta in u schedariu "/srv/git/.bashrc". /bin/bash". Per eseguisce u schedariu creatu "/srv/git/.bashrc" hè abbastanza per cunnette à u repository via SSH sottu u vostru contu. Esecuzione di codice cum'è l'utilizatore git in un servitore Pagure vi permette di cuntrullà tutti i pacchetti di cuntenutu.
Una vulnerabilità (CVE-2024-22033) hè stata identificata in a piattaforma OBS (Open Build Service) utilizata in openSUSE è alcune altre distribuzioni per i pacchetti di costruzione, chì permette l'esekzione di codice persunalizatu in u servitore. A vulnerabilità hè stata scuperta u 27 di ghjugnu di u 2024, rappurtata à u prughjettu openSUSE u 29 di ghjugnu, è riparata u 10 di lugliu.
A vulnerabilità hè presente in u serviziu "obs-service-download_url", chì mancava a validazione propria di l'URL utilizatu quandu eseguisce l'utilità wget da un script chì scarica u codice fonte à OBS. Un attaccu pò specificà in u serviziu OBS una cunfigurazione di u pacchettu generatu, in quale invece di un URL per scaricà u codice, una opzione di linea di cummanda per wget serà specificata, per esempiu: —output-document=/tmp/test tempfile
Per evitari di vultà un errore quandu pruvate di eseguisce wget senza URL, l'esempiu include l'opzione "download-manifest", chì permette di specificà una lista di URL in un schedariu separatu. L'esempiu supra eseguirà u cumandimu: /usr/bin/wget -i /srv/obs/service/XXXXX/src/tempfile -4 --output-document=/tmp/test
chì permette di scrive in u schedariu /tmp/test u cuntenutu scaricatu da u ligame specificatu in u schedariu /srv/obs/service/XXXXX/src/tempfile da u codice caricatu da l'attaccante à l'OBS attraversu l'interfaccia build.opensuse.org, chì permette a registrazione gratuita. In più di sovrascrive un schedariu nantu à u servitore, un attaccu pò ancu mandà ellu stessu ogni schedariu specificendu l'opzione "--post-file" invece di "--output-document", per esempiu, "--post-file=/etc/passwd". In questu modu, un attaccu pò leghje è scrive i schedari nantu à u servitore, finu à chì i diritti d'accessu chì u serviziu OBS hè in esecuzione permettenu.
Per trasfurmà a capacità di scrive à un schedariu in l'esekzione di codice in u servitore, i circadori pruposti un metudu di dui passi. Dui passi sò necessarii per chì un attaccu pò creà un schedariu ".wgetrc" cù i paràmetri di wget, ma questu ùn hè micca abbastanza per eseguisce cumandamenti. Ma à u stessu tempu, attraversu ".wgetrc" pudete creà cundizioni per eseguisce qualsiasi prugramma in u sistema, ma senza passà argumenti à questu. Per eseguisce codice arbitrariu, hè prupostu di eseguisce u prugramma "prove", chì processa u schedariu di cunfigurazione ".proverc", chì permette l'opzione "--exec" per esse specificata per eseguisce qualsiasi codice.
À a prima tappa, attraversu e manipulazioni sopra citate cù "download-manifest", un schedariu ".proverc" hè creatu in u cartulare di casa di l'utilizatori "obsservicerun", chì include cumandamenti chì saranu eseguiti quandu u prucessu "prova" hè lanciatu. U sicondu passu crea un schedariu .wgetrc cù u paràmetru "use-askpass=/usr/bin/prove", chì provoca "prova" per esse chjamatu. Dopu à questi schedari, hè abbastanza per creà e cundizioni per scaricà qualsiasi dati cù wget è questu hà da purtà à u lanciamentu di u codice di l'attaccante nantu à u servitore cù i diritti di l'utilizatore "obsservicerun". I diritti di l'utilizatori "obsservicerun" sò abbastanza per ricuperà e chjave da i repositori utilizati da l'utilizatori OBS per notarizà i pacchetti.
Aggiornamentu: A squadra di SUSE Product Security crede chì a vulnerabilità OBS hè sopravvalutata è chì l'affirmazioni di i circadori chì u prublema pò cumprumette tutti i pacchetti in a distribuzione openSUSE ùn hè micca vera. Hè nutatu chì i servizii in l'infrastruttura build.opensuse.org sò lanciati cù cuntenituri isolati chì sò creati di novu è ùn cuntenenu micca infurmazione critica. A vulnerabilità identificata hè valutata cum'è periculosa, ma micca abbastanza per cumprumette l'infrastruttura di creazione openSUSE è i pacchetti generati. Inoltre, hè indicatu chì l'azzioni in l'interfaccia OBS descritte in l'esempiu di attaccu puderia esse realizatu solu in a versione OBS installata localmente in a stazione di travagliu di u sviluppatore.
Source: opennet.ru
