Alfonso Maruccia

PHP, la cura che non cura

Una vulnerabilitÓ nel linguaggio di scripting nota da mesi finisce inavvertitamente online, gli sviluppatori preparano una patch ma la pezza risulta inefficace e facilmente aggirabile

Roma - Ancora guai per PHP, il linguaggio di scripting che riveste un ruolo centrale nella pila LAMP (Linux, Apache, MySQL e appunto PHP) per le applicazioni web: una vulnerabilità nota da mesi viene resa pubblica e gli sviluppatori sono costretti a pubblicare una patch. Che però non risolve il problema.

La vulnerabilità, pubblicata su Reddit "per errore", riguarda i server configurati in modalità CGI: usando una particolare sintassi per le stringhe delle query, un malintenzionato potrebbe impossessarsi del codice sorgente del sito o anche eseguire codice da remoto.

Con la "disclosure" della vulnerabilità - scoperta mesi fa ma presente in PHP da otto anni - il gruppo di lavoro di PHP ha rilasciato una patch "di corsa" per le versioni 5.3.12 e 5.4.2. Il risultato? La patch non funziona, le misure protettive integrate in PHP sono facilmente aggirabili e la vulnerabilità è sempre lì presente.
Una pezza capace di risolvere davvero il problema una volta per tutte è già stata proposta ed è in corso di approvazione, mentre un exploit capace di sfruttare la vulnerabilità è già finito all'interno dell'arsenale open source di Metasploit.

Alfonso Maruccia
TAG: sicurezza, php
Notizie collegate
  • SicurezzaPHP, versione senza bucoAnnunciata la release 5.3.8 del noto linguaggio di scripting. Risolto il bug che aveva colpito l'update 5.3.7. PHP Group ha abbandonato definitivamente la serie 5.2
20 Commenti alla Notizia PHP, la cura che non cura
Ordina
  • Per completezza, l'exploit funziona solo con i server configurati come CGI.

    Ne sono immuni quelli che usano FastCGI, e naturalmente mod_php5, quindi la quasi totalità, visto che CGI e` lentissimo e sconsigliato da diversi anni.

    Bye.
    Shu
    1232
  • Grazie per la gradita precisazione.
  • - Scritto da: bertuccia
    > is this dangerous? Newbie, inesperto

    Nonostante io sia un esperto professionista del .NET, sono un genio, e quindi ne capisco anche di PHP. Eh eh! Arrabbiato
    Tendenzialmente nì. I server di cheap hosting usano fastCGI (per sicurezza dovuta all'isolamento dei processi e per le performance date dal multithreading), i server da carico invece php-fpm con Nginx e più di recente con Apache stesso.

    Nel dubbio aggiungi ?-s come query string ad una pagina php del tuo sito e verifica se appare il codice sorgente (ma vedrai che non accadrà nulla).

    Parola di Winaro!Occhiolino
    non+autenticato
  • no no no, mi meraviglio tantissimo di te stavolta

    parlare bene di php quando non scrivi mai odi a c#/.net? non andiamo bene, l'assegno di questo mese sarà parecchio ridottoA bocca aperta
    non+autenticato
  • - Scritto da: Winaro
    >
    > Nonostante io sia un esperto professionista del
    > .NET, sono un genio, e quindi ne capisco anche di
    > PHP. Eh eh!
    >Arrabbiato
    > Tendenzialmente nì. I server di cheap hosting
    > usano fastCGI (per sicurezza dovuta
    > all'isolamento dei processi e per le performance
    > date dal multithreading), i server da carico
    > invece php-fpm con Nginx e più di recente con
    > Apache
    > stesso.
    >
    > Nel dubbio aggiungi ?-s come query string ad una
    > pagina php del tuo sito e verifica se appare il
    > codice sorgente (ma vedrai che non accadrà
    > nulla).
    >
    > Parola di Winaro!Occhiolino

    grazie per le info!

    di' la verità, vi siete studiati un po' il php perchè avete capito che con quel bidone di aspx non si andava da nessuna parte!
  • Per cortesia.... se parliamo di bidoni, con una falla del genere...
    Io starei zitto.
    php e' in assoluto, tra i linguaggi per il web il peggio che si possa raccattare. Prova nè è che è usato da tutti per le scarsissime competenze che richiede. Il classico linguaggio bidone che non fa altro che far crescere il n. di 'sviluppatori' con scarsissimi skill, (e quelli che lo skill lo hanno se malauguratamente finiscono per incapparci, regrediscono allo stato di analfabeti informatici) come va di moda negli ultimi 20 anni. Del resto va bene a tutti, soprattutto alle società che pagano poco programmatori della domenica.
    non+autenticato
  • - Scritto da: Winaro
    > - Scritto da: bertuccia
    > > is this dangerous? Newbie, inesperto
    >
    > Nonostante io sia un esperto professionista del
    > .NET, sono un genio, e quindi ne capisco anche di
    > PHP. Eh eh!
    >Arrabbiato
    > Tendenzialmente nì. I server di cheap hosting
    > usano fastCGI (per sicurezza dovuta
    > all'isolamento dei processi e per le performance
    > date dal multithreading), i server da carico
    > invece php-fpm con Nginx e più di recente con
    > Apache
    > stesso.

    php-fpm è un'implementazione di fastcgi per php
    non+autenticato
  • sarebbe il caso che qualcuno capisca che il php è un linguaggio antiquato che faceva concorrenza al vecchio asp, roba ormai di decenni fa, non compilabile, interpretato e che sei obbligato a mettere in mezzo all'html (o il contrario), che permette nel 2012 l'uso di porcherie come l'EVAL (!!!) l'include (senza pensare che il parametro dell'include puo essere una variabile, auguri a trovare quello che cerchi!!!) , supporto ridicolo all'oop, error handling e debaggabilita paragonabili a cercare un ago in un paiaio, difficolta per gli IDE a creare intellisense decenti per velocizzare lo sviluppo e diminuire la probabilita di fare errori (proprio a causa delle porcherie che il linguaggio permette di fare), e sopratutto NON TIPIZZATO... ho il sangue dal naso... bleah
    -----------------------------------------------------------
    Modificato dall' autore il 07 maggio 2012 18.14
    -----------------------------------------------------------
  • - Scritto da: onorevole.paolo.ballmer
    > sarebbe il caso che qualcuno capisca che il php è
    > un linguaggio antiquato che faceva concorrenza al
    > vecchio asp, roba ormai di decenni fa,

    L'ASP ha sempre fatto schifo, dieci anni fa come ora.
    Il PHP è un linguaggio web oriented che insieme a MySQL e Apache fa girare mezza Internet.

    > non
    > compilabile, interpretato e che sei obbligato a
    > mettere in mezzo all'html (o il contrario),

    Essendo un linguaggio orientato al WEB non c'è da stupirsi che si integri con l'HTML. Anche con il javascript e l'ajax se è per questo.

    Non sono difetti.

    Si chiamano features.

    [...]
    > difficolta per gli IDE

    Ma quali IDE? Il PHP si scrive col vi.

    Inoltre è un linguaggio che supporta il paradigma ad oggetti.

    Complessivamente non sono d'accordo con nulla di quanto hai scritto.
  • - Scritto da: PinguinoCattivo
    > - Scritto da: onorevole.paolo.ballmer
    > > sarebbe il caso che qualcuno capisca che il
    > php
    > è
    > > un linguaggio antiquato che faceva
    > concorrenza
    > al
    > > vecchio asp, roba ormai di decenni fa,
    >
    > L'ASP ha sempre fatto schifo, dieci anni fa come
    > ora.

    tanto quanto il php, se è per questo

    > Il PHP è un linguaggio web oriented che insieme a
    > MySQL e Apache fa girare mezza
    > Internet.

    certo, e il nucleare è giusto perche lo dice veronesi.

    >
    > > non
    > > compilabile, interpretato e che sei
    > obbligato
    > a
    > > mettere in mezzo all'html (o il contrario),
    >
    > Essendo un linguaggio orientato al WEB non c'è da
    > stupirsi che si integri con l'HTML. Anche con il
    > javascript e l'ajax se è per
    > questo.

    in effetti mi aspettavo che si integrasse con le win form... (si in effetti si integra anche con quelle..)

    >
    > Non sono difetti.
    >
    > Si chiamano features.

    certo, l'eval è una feature, cosi come qualsiasi cosa è uguale a "" che è uguale a 0 che è uguale a null.

    AHAHAHAHHAHA (ho sparato a caso, per fortuna mi sono dimenticato il serio modo del php di fare le equaglianze senza il triplo = ma con il semplice ==)

    >
    > [...]
    > > difficolta per gli IDE
    >
    > Ma quali IDE? Il PHP si scrive col vi.

    dal'oltre ci sono programmatori che pensano a trasformare idee in codice e programmatori che passano il tempo a trovare il ; mancante

    >
    > Inoltre è un linguaggio che supporta il paradigma
    > ad
    > oggetti.

    ti invito a studiarti un linguaggio a oggetti

    >
    > Complessivamente non sono d'accordo con nulla di
    > quanto hai
    > scritto.

    nessun linuxaro fanatico che si fa le seghe con la lamp è d'accordo con me, è normale.
  • - Scritto da: onorevole.paolo.ballmer
    [...]
    > > L'ASP ha sempre fatto schifo, dieci anni fa
    > come
    > > ora.
    >
    > tanto quanto il php, se è per questo

    Il php raggiunge lo scopo e lo fa in modo efficace ed elegante.
    Non si può dire lo stesso di asp.

    >
    > > Il PHP è un linguaggio web oriented che
    > insieme
    > a
    > > MySQL e Apache fa girare mezza
    > > Internet.
    >
    > certo, e il nucleare è giusto perche lo dice
    > veronesi.

    Cambiare argomento perché non si è in grado di controbattere è il modo migliore per dichiarare di non aver nulla da dire.

    >
    > >
    > > > non
    > > > compilabile, interpretato e che sei
    > > obbligato
    > > a
    > > > mettere in mezzo all'html (o il
    > contrario),
    >
    > >
    > > Essendo un linguaggio orientato al WEB non
    > c'è
    > da
    > > stupirsi che si integri con l'HTML. Anche
    > con
    > il
    > > javascript e l'ajax se è per
    > > questo.
    >
    > in effetti mi aspettavo che si integrasse con le
    > win form... (si in effetti si integra anche con
    > quelle..)
    >
    > >
    > > Non sono difetti.
    > >
    > > Si chiamano features.
    >
    > certo, l'eval è una feature, cosi come qualsiasi
    > cosa è uguale a "" che è uguale a 0 che è uguale
    > a
    > null.
    >
    > AHAHAHAHHAHA (ho sparato a caso, per fortuna mi
    > sono dimenticato il serio modo del php di fare le
    > equaglianze senza il triplo = ma con il semplice
    > ==)

    http://danieldumas.com/php-operators-the-triple-eq...

    >
    > >
    > > [...]
    > > > difficolta per gli IDE
    > >
    > > Ma quali IDE? Il PHP si scrive col vi.
    >
    > dal'oltre ci sono programmatori che pensano a
    > trasformare idee in codice e programmatori che
    > passano il tempo a trovare il ;
    > mancante

    Lo cercherai tu il ; mancante.
    Se scrivi codice come scrivi l'italiano non mi stupisco se introduci tre errori per linea.

    >
    > >
    > > Inoltre è un linguaggio che supporta il
    > paradigma
    > > ad
    > > oggetti.
    >
    > ti invito a studiarti un linguaggio a oggetti

    Il PHP lo è.
    http://php.net/manual/en/language.oop5.php

    Ti invito a documentarti almeno un minimo prima di postare cavolate.

    >
    > >
    > > Complessivamente non sono d'accordo con
    > nulla
    > di
    > > quanto hai
    > > scritto.
    >
    > nessun linuxaro fanatico che si fa le seghe con
    > la lamp è d'accordo con me, è
    > normale.

    Nessuno è d'accordo con te: molti tra i siti più popolari ed utilizzati sono sviluppati con questa tecnologia. Che tu te ne faccia o meno una ragione io francamente dormo lo stesso.
  • Hmmm come OOP in php manca l'ereditarietà multipla, anche se una classe può avere discendenza multipla.

    Ma ci sono varie tecniche per integrarla o diciamo poterne fare a meno.

    Il PHP lo trovo un linguaggio poco elegante perché si vede che non è nato proprio a oggetti e che questi sono stati aggiunti un po' a forza.
    Per cui il singleton ed altre sintassi sono un pochino criptiche e sporche, rispetto all'eleganza di linguaggi nati direttamente ad oggetti come Python o Ruby.

    Comunque quello che c'è di bello in PHP sono i fantastici framework nati negli anni.
    Per esempio per il web sta andando alla grande Yii. Ci sto facendo progetti di controllo remoto, e perfino dei mini cloud con applicazioni avanzate.

    Oppure l'italianissimo P4A per fare applicazioni tipo gestionali simili ad applicazioni per desktop ma web based.
    iRoby
    8354