67
52

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

RHEL/CentOS 6のPHP5.3.3 は安全か?

Last updated at Posted at 2015-12-09

RHEL6/CentOS6 のサポート期限は、2020年11月30日までです。早めに OS リプレイスの計画を立てましょう

この記事は RHEL/CentOS 7のPHP5.4.16 は安全か? の RHEL/CentOS 6 版です。

よく、 CentOS6.x にバンドルされている PHP5.3.3 を使用していると、

「まだ PHP5.3 なんて使ってるの?? セキュリティに対する意識あんの??」

って言われます。

確かに、PHP5.3.3 は2010年にリリースされたとても古いバージョンですし、5.3 系は2014年8月14日にリリースされた 5.3.29を最後に公式のサポートを終了しています。

でも、 CentOS6.x の PHP は、リリース当初の2011年から、 5.3.3 のままです。2015年12月現在でも、 5.3.3 のままです。これには理由があります。

CentOS は Linux の商用ディストリビューションである Redhat Enterprise Linux(RHEL) の、公開されたソースを元にしたディストリビューションであり PHP などのプログラム言語やアプリケーションも、 RHEL のパッケージを元に作成されています。
RHEL は、これら PHP などのパッケージを、独自に保守(ベンダーサポート)しており、何らかの脆弱性が見つかると、適宜アップデートされます。
CentOS も、基本的に RHEL のアップデートポリシーに準拠しており、 6.x は2020年11月30日まではサポートされます。

つまり、 CentOS6.x にバンドルしている PHP5.3.3 は、適切にアップデートしていれば、2020年11月30日まで安心して使うことができます。

では、本当に安心して使えるのか調べてみましょう。

2015年12月5日現在、 CentOS6.x での PHP の最新パッケージは php-5.3.3-46.el6_6 です。
ちなみに、 CentOS では、パッケージがアップデートされると、メーリングリストにこのような メールが流れます。

まず、 PHP の SRPM ファイルを取得します。元になっている RHEL6 の SRPM ファイルは以下にあります。
http://ftp.redhat.com/redhat/linux/enterprise/6Server/en/os/SRPMS/

この中の php-5.3.3 の SRPM を取得します。
展開してみると、以下のような内容になっています。

php-5.3.3-46.el6_6.src.rpm
macros.php                     php-5.3.3-CVE-2014-3479.patch                                                                                                   
php.conf                       php-5.3.3-CVE-2014-3480.patch                                                                                                   
php.ini                        php-5.3.3-CVE-2014-3515.patch                                                                                                   
php.spec                       php-5.3.3-CVE-2014-3587.patch                                                                                                   
php-4.3.11-shutdown.patch      php-5.3.3-CVE-2014-3597.patch                                                                                                   
php-5.0.4-dlopen.patch         php-5.3.3-CVE-2014-3668.patch                                                                                                   
php-5.0.4-tests-wddx.patch     php-5.3.3-CVE-2014-3669.patch                                                                                                   
php-5.2.0-includedir.patch     php-5.3.3-CVE-2014-3670.patch                                                                                                   
php-5.2.4-embed.patch          php-5.3.3-CVE-2014-3710.patch                                                                                                   
php-5.2.4-norpath.patch        php-5.3.3-CVE-2014-4049.patch                                                                                                   
php-5.3.0-easter.patch         php-5.3.3-CVE-2014-4670.patch                                                                                                   
php-5.3.0-install.patch        php-5.3.3-CVE-2014-4698.patch                                                                                                   
php-5.3.0-phpize64.patch       php-5.3.3-CVE-2014-4721.patch                                                                                                   
php-5.3.0-recode.patch         php-5.3.3-CVE-2014-9425.patch                                                                                                   
php-5.3.1-systzdata-v7.patch   php-5.3.3-CVE-2014-9705.patch                                                                                                   
php-5.3.2-CVE-2010-3870.patch  php-5.3.3-CVE-2014-9709.patch                                                                                                   
php-5.3.2-CVE-2010-4645.patch  php-5.3.3-CVE-2015-0232.patch                                                                                                   
php-5.3.3.tar.bz2              php-5.3.3-CVE-2015-0273.patch                                                                                                   
php-5.3.3-CVE-2006-7243.patch  php-5.3.3-CVE-2015-2301.patch                                                                                                   
php-5.3.3-CVE-2010-2950.patch  php-5.3.3-CVE-2015-2783.patch                                                                                                   
php-5.3.3-CVE-2010-3709.patch  php-5.3.3-CVE-2015-2787.patch                                                                                                   
php-5.3.3-CVE-2010-3710.patch  php-5.3.3-CVE-2015-3329.patch                                                                                                   
php-5.3.3-CVE-2010-4156.patch  php-5.3.3-CVE-2015-4021.patch                                                                                                   
php-5.3.3-CVE-2011-0708.patch  php-5.3.3-CVE-2015-4022.patch                                                                                                   
php-5.3.3-CVE-2011-1148.patch  php-5.3.3-CVE-2015-4024.patch                                                                                                   
php-5.3.3-CVE-2011-1398.patch  php-5.3.3-CVE-2015-4026.patch                                                                                                   
php-5.3.3-CVE-2011-1466.patch  php-5.3.3-aconf26x.patch                                                                                                        
php-5.3.3-CVE-2011-1468.patch  php-5.3.3-bug52636.patch                                                                                                        
php-5.3.3-CVE-2011-1469.patch  php-5.3.3-bug53141.patch                                                                                                        
php-5.3.3-CVE-2011-1470.patch  php-5.3.3-bug54268.patch                                                                                                        
php-5.3.3-CVE-2011-1471.patch  php-5.3.3-bug66762.patch                                                                                                        
php-5.3.3-CVE-2011-1938.patch  php-5.3.3-bug69085.patch                                                                                                        
php-5.3.3-CVE-2011-2202.patch  php-5.3.3-bug69152.patch                                                                                                        
php-5.3.3-CVE-2011-2483.patch  php-5.3.3-bug69353.patch                                                                                                        
php-5.3.3-CVE-2011-4153.patch  php-5.3.3-copy.patch                                                                                                            
php-5.3.3-CVE-2011-4566.patch  php-5.3.3-errorhandler.patch                                                                                                    
php-5.3.3-CVE-2011-4885.patch  php-5.3.3-extrglob.patch                                                                                                        
php-5.3.3-CVE-2012-0057.patch  php-5.3.3-fileinfo.patch                                                                                                        
php-5.3.3-CVE-2012-0781.patch  php-5.3.3-getmodinit.patch                                                                                                      
php-5.3.3-CVE-2012-0789.patch  php-5.3.3-gnusrc.patch                                                                                                          
php-5.3.3-CVE-2012-0830.patch  php-5.3.3-imap.patch                                                                                                            
php-5.3.3-CVE-2012-0831.patch  php-5.3.3-odbc.patch                                                                                                            
php-5.3.3-CVE-2012-1172.patch  php-5.3.3-pdopgsql.patch                                                                                                        
php-5.3.3-CVE-2012-1571.patch  php-5.3.3-pdo-53551.patch                                                                                                       
php-5.3.3-CVE-2012-1823.patch  php-5.3.3-pdo-overflow.patch                                                                                                    
php-5.3.3-CVE-2012-2143.patch  php-5.3.3-r305043.patch                                                                                                         
php-5.3.3-CVE-2012-2336.patch  php-5.3.3-rfc2616.patch                                                                                                         
php-5.3.3-CVE-2012-2386.patch  php-5.3.3-setdate.patch                                                                                                         
php-5.3.3-CVE-2012-2688.patch  php-5.3.3-varnegidx.patch                                                                                                       
php-5.3.3-CVE-2013-1643.patch  php-5.3.3-zendgc.patch                                                                                                          
php-5.3.3-CVE-2013-4113.patch  php-5.3.3-zipmemset.patch                                                                                                       
php-5.3.3-CVE-2013-4248.patch  php-5.3.18-fpmcovscan.patch                                                                                                     
php-5.3.3-CVE-2013-6420.patch  php-fpm.conf                                                                                                                    
php-5.3.3-CVE-2013-6712.patch  php-fpm.init                                                                                                                    
php-5.3.3-CVE-2014-0237.patch  php-fpm.logrotate                                                                                                               
php-5.3.3-CVE-2014-0238.patch  php-fpm.sysconfig                                                                                                               
php-5.3.3-CVE-2014-1943.patch  php-fpm-5.3.18.tar.bz2                                                                                                          
php-5.3.3-CVE-2014-2270.patch  php-fpm-www.conf                                                                                                                
php-5.3.3-CVE-2014-2497.patch                                                      

php-5.3.3 の標準アーカイブの他、さまざまなパッチが含まれていることがわかります。
CVE とついているのが、セキュリティパッチです。
この中の CVE-2015-4021 を見てみると、 PHP5.6.9, 5.5.25, 5.4.41 で修正された不具合がバックポートされているのがわかります。

php-5.3.3-CVE-2015-4021.patch
Test case removed as binary patches are not supported

From c27f012b7a447e59d4a704688971cbfa7dddaa74 Mon Sep 17 00:00:00 2001
From: Stanislav Malyshev <stas@php.net>
Date: Wed, 29 Apr 2015 22:04:20 -0700
Subject: [PATCH] Fix bug #69453 - don't try to cut empty string

---
 ext/phar/tar.c               |  2 +-
 ext/phar/tests/bug69453.phpt | 21 +++++++++++++++++++++
 2 files changed, 22 insertions(+), 1 deletion(-)
 create mode 100644 ext/phar/tests/bug69453.phpt

diff --git a/ext/phar/tar.c b/ext/phar/tar.c
index ca8eafc..d6d63e6 100644
--- a/ext/phar/tar.c
+++ b/ext/phar/tar.c
@@ -425,7 +425,7 @@ bail:
 			entry.filename_len = i;
 			entry.filename = pestrndup(hdr->name, i, myphar->is_persistent);
 
-			if (entry.filename[entry.filename_len - 1] == '/') {
+			if (i > 0 && entry.filename[entry.filename_len - 1] == '/') {
 				/* some tar programs store directories with trailing slash */
 				entry.filename[entry.filename_len - 1] = '\0';
 				entry.filename_len--;
-- 
2.1.4


このように、適切にアップデートされた CentOS6.x の PHP5.3.3 は安全です。
同様に、 CentOS7.x の PHP5.4.16 も2024年6月30日までサポートされます。
プログラマーの立場からすると、最新のプログラム構文が使えないのは、ストレスに感じるかもしれません。
常に新しいバージョンにアップデートできれば良いのですが、コストやリソースの問題もあり、すべての環境でアップデートできるとは限りません。
Linux ディストリビューションの長期サポートとも上手くおつきあいするのも、プログラマーの大切なスキルの一つだと思います。

67
52
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
67
52

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?