
########################################################################

Applicazione: Popcorn (http://www.ultrafunk.com)
Versione:     Tutte le versioni in quanto il programma non e' piu'
              supportato (comunque l'ultima versione e' la 1.20).
Bug:          Vulnerabilita' multiple
Rischio:      DoS remoto
Autore:       Auriemma Luigi (e-mail: bugtest@sitoverde.com)

########################################################################

Sections:
1) Introduzione
2) Bug
3) Il codice
4) Fix
5) Filosofia

---

1) Introduzione

Popcorn e' un buon client di posta per Windows, e' piccolo e semplice da
utilizzare.
E' davvero ridotto al minimo indispensabile (ad esempio manca l'invio di
allegati) comunque lo trovo davvero utile.
Sfortunatamente non e' piu' supportato cosi' il suo sviluppo e' fermo e
ogni bug trovato non puo' essere corretto.

--

2) Bug

I bug che ho trovato in questo programma per il momento sono 3 (comunque
non ne pubblichero' altri se dovessi trovarne).
I bug A e C sono exploitabili direttamente durante il checking della
mailbox, per questo motivo l'utente non puo' vedere la mail e di conse-
guenza non puo' capire dove sia l'errore e dovra' cancellare la mail
manualmente o da un altro client di posta.

-A-
-Processo bloccato e consumo delle risorse.
Se un attaccante invia una mail con il seguente subject:

Subject: \t\t

il client provera' a leggere l'email ma rimarra' come bloccato in attesa
di leggere l'e-mail (come se ad esempio il server non desse nessuna
risposta).
Invece il processo e' rimasto bloccato, l'utente puo' chiudere Popcorn
dal suo menu senza problemi ma in realta' il processo e' ancora in ese-
cuzione e per di piu' sta consumando alcune risorse (ad esempio il mio
AthlonXP rallenta abbastanza visibilmente) e l'unico modo per terminare
definitivamente il processo e' tramite il menu del CTRL-ALT-CANC o
meglio ancora da un programma di gestione dei processi tipo ATM o 
Killprocess.

-B-
-Buffer overflow nel campo Subject.
Il client crasha quando l'utente cerca di aprire una mail con un subject
come questo:

Subject: (almeno 490 'A')

Non penso ci sia altro da aggiungere...

-C-
Il bug e' nella gestione del campo Date delle mail ricevute.
Questo e' un esempio di come Popcorn formatta il campo Date:

Date: 1       = 01.01.2000 00:00
Date: 11      = 11.01.2000 00:00
Date: 111     = 20.04.2000 00:00
Date: 1111    = 15.01.2003 00:00
Date: 11111   = 02.06.2030 00:00
Date: 111111  = 02.01.2032 11:03
Date: 1111111 = Crash!

Quindi un attaccante puo' far crashare Popcorn semplicemente inviando
una mail che abbia nel campo Date un anno maggiore di 2037 (2037 e'
l'anno massimo che non causa il crash testato sul mio PC) o come ho
specificato prima, utilizzando 1111111 (od un altra sequenza numerica
che crei il crash)

--

3) Il codice

In allegato c'e' un semplice e piccolo exploit che invia una mail
utilizzando uno dei 3 exploit che ho mostrato.
Il codice e l'eseguibile e' solo per Win in quanto Popcorn e' per Win
e su Linux l'exploit puo' essere emulato tramite Wine, quindi perche'
spendere tempo e spazio (l'allegato) per creare un'altra versione?

--

4) Fix

Nessuna patch ufficiale (il programma non e' piu' supportato) e nessun
fix temporaneo.

--

5) Filosofia

Io sono davvero fiducioso riguardo la full disclosure perche' con essa
"chiunque" puo' conoscere il reale effetto di un attacco, il reale
pericolo di un bug, qualcuno puo' anche imparare un po' di programmazione
(io alcune cose del C le ho imparate dai codici sorgenti di alcuni
exploits) ed essa e' utile per tutti coloro che sono fiduciosi in questo
tipo di disclosure proprio come me.
Nessun segreto!

--

Qualsiasi tipo di feedback e' benvenuto!

Byez


