Table of Contents

Pertanyaan

Saya (atau seseorang) menjalankan vulnerability scanner pada website saya, dan salah satu hasilnya seperti ini:

# tanggal laporan: 23 Maret 2010
item: PHP version < 5.2.11
risk: High
description: Multiple vulnerabilities in PHP 5.2.11
solution: Please upgrade to latest PHP version

Saat artikel ini ditulis, versi PHP pada server hosting Spanel berbasis Debian adalah 5.2.6. Apakah ini artinya PHP di server hosting vulnerable (rentan terhadap serangan/bug/exploit)? Mengapa PHP di server hosting tidak diupgrade?

Jawaban

PHP terbaru dari distribusi sistem operasi (seperti Debian, CentOS) walaupun bukan versi PHP terbaru dari upstream (dari penerbit perangkat lunak PHP, dalam hal ini PHP Group) namun tetap mengandung update-update keamanan penting untuk mencegah hole/exploit. Update (patch) ini diperoleh dari PHP Group maupun pihak lain.

Versi PHP umumnya tetap dipertahankan pada versi tertentu selama belum ada perubahan versi mayor Debian/CentOS untuk menjaga stabilitas, karena setiap kali ada versi baru PHP dari upstream, mungkin saja diperkenalkan fitur-fitur baru (atau dibuangnya fitur-fitur lama) yang menyebabkan inkompatibilitas. Dan tentu saja berpotensi menimbulkan bug baru.

Versi PHP baru diupdate mengikuti versi terbaru saat ada upgrade sistem operasi (saat ini, sekitar 18 bulan sekali untuk Debian).

Untuk contoh konkrit, kita ambil kasus PHP 5.2.6 yang ada di Debian 5.0 (Lenny). Contoh exploit yang ditutup oleh PHP setelah 5.2.6 antara lain (berdasarkan http://php.net/ChangeLog-5.php ):

  • Fixed a possible overflow inside memnstr (Fixes CVE-2008-3659), di PHP 5.2.7
  • Fixed security issues detailed in CVE-2008-2665 and CVE-2008-2666. (Christian Hoffmann), di PHP 5.2.7

Jika kita lihat ChangeLog paket PHP Debian (http://packages.debian.org/changelogs/pool/main/p/php5/php5_5.2.6.dfsg.1-1+lenny8/changelog ):

  [ Sean Finney ]
  * Take three unreleased fixes from upstream CVS:
    - CVE-2008-3658: Buffer overflow in the imageloadfont function.
      Patch: CVE-2008-3658.patch (closes: #499989)
    - CVE-2008-3659: Buffer overflow in the memnstr function.
      Patch: CVE-2008-3659.patch (closes: #499988)
    - CVE-2008-3660: Remote DoS in fastcgi module
      Patch: CVE-2008-3660.patch (closes: #499987)

  [ Raphael Geissert ]
  * Picked up some patches from Gentoo (most included in PHP 5.2.7 and later):
    + patches/gentoo/005_stream_context_set_params-crash.patch
    + patches/gentoo/006_PDORow-crash.patch
    + patches/gentoo/007_dom-setAttributeNode-crash.patch
    + patches/gentoo/009_array-function-crashes.patch
    + patches/gentoo/010_ticks-zts-crashes.patch
    + patches/gentoo/015_CVE-2008-2665-wrapper-safemode-bypass.patch
    + patches/gentoo/017_xmlrpc-invalid-callback-crash.patch
    + patches/gentoo/019_new-memory-corruption.patch
    + patches/gentoo/freetds-compat.patch
      - was deprecated_freetds_check.patch

bisa kita lihat bahwa kedua perbaikan terhadap CVE-2008-3659 dan juga CVE-2008-2665 yang ada di PHP 5.2.7 juga dimasukkan ke PHP 5.2.6 oleh Debian. Demikian juga banyak perbaikan lainnya.

Singkat kata, karena PHP 5.2.6 ini disertakan dalam Debian Stable Lenny, maka selama Debian Lenny masih didukung (masih current), maka setiap lubang keamanan penting akan turut diamankan dalam update Debian.

Control panel seperti Spanel menggunakan PHP terbaru yang disertakan oleh Debian.

Vulnerability scanner umumnya tidak menyadari/mencatat hal ini. Mereka hanya mendeteksi bahwa versi PHP tetap 5.2.6 sehingga kurang baru, tanpa mendeteksi kebaruan sistem operasi dan paket PHP yang terinstal (karena memang hal ini sulit dideteksi oleh scanner secara remote).

Singkatnya, walaupun secara sekilas versi PHP bukan yang terbaru dari PHP Group, namun PHP di sistem operasi Debian/dll tetap diupdate dengan patch keamanan untuk membuatnya aman