個人的なメモと備忘録 2006年3月

HOME | LastUpdate: 2006-03-06

目次


2006.03.05(Sun)

>>セキュリティ関係

*PEAR 関連のセキュリティ問題

2月の後半に PEAR のいくつかのパッケージにセキュリティ問題が報告されています。

PEAR::Archive_Tar に関してはまだ修正は行われていませんが、ローカル環境で試してみたところでは、危険性が高いように思われます。他のパッケージについては必要に応じてアップデートしておく方が良いと思います。

  • PEAR::Archive_Tar

    PEAR::Archive_Tar 1.3.1 以前のバージョンでファイルの展開においてディレクトリ・トラバーサル脆弱性があることが報告されています。この問題はまだ修正されていません(2006.03.05 現在)。

    スーパーユーザ権限で PEAR::Archive_Tar を使用して悪意のあるファイルを展開すると危険です。pear コマンドでも、.tgz ファイルを展開する際に PEAR::Archive_Tar を使用していますので、この問題の影響を受ける可能性があります。

    ローカルの環境で、不正なファイルパスを含むパッケージを作成して pear install <package-version.tgz> を行ってインストールしたところ、任意のディレクトリにファイルの書き込みが可能でした。

    PEAR のパッケージのインストールをスーパーユーザ権限で行っている場合は非常に危険ですので、問題が修正されるまでは、pear コマンドも使用しない方が安全のように思います。

    一応、上位のディレクトリパスを含むファイルがある場合はエラーを発生させてインストールを中止する Patch を作成してみました。公式に修正が行われるまでに対処を行いたい人は Patch を適用して試してみてください。何か不具合や問題等があれば、連絡ください。確認は Linux 上で行いました。Windows 版では確認していません。

    ファイルも置いておきます(Tar.php.patch)

    --- Tar.php.orig	2005-03-18 06:02:09.000000000 +0900
    +++ Tar.php	2006-03-05 22:04:37.052548936 +0900
    @@ -1405,6 +1405,10 @@
             continue;
           }
     
    +      if (substr($v_header['filename'], 0, 1) === '/' || strpos($v_header['filename'], '../') !== false) {
    +        return false;
    +      }
    +
           // ----- Look for long filename
           if ($v_header['typeflag'] == 'L') {
             if (!$this->_readLongHeader($v_header))
    

    適用方法は以下の通りです(PEAR のディレクトリが /usr/local/lib/php の場合)。

    $ cd /usr/local/lib/php/Archive/
    $ patch < /path/to/path/Tar.php.patch
    
  • PEAR::Auth

    PEAR::Auth の 1.2.3 以前の全てのバージョンと、ベータ版の 1.3.0r3 以前のバージョンで、DB または LDAP コンテナを使用している場合に、インジェクション攻撃が可能な問題が報告されています。

    この問題は PEAR::Auth 1.2.4 以上または、1.3.0r4 以上のバージョンで修正されています。

  • PEAR::LiveUser

    PEAR::LiveUser 0.16.8 以前のバージョンで、攻撃者がファイルへのアクセス権限を取得可能な問題が報告されています。

    PEAR::LiveUser 0.16.9 以降で修正されています。

*Java

Java JRE の Reflection API に複数のセキュリティ問題があり、Java Applet からセキュリティ制限を回避して、任意のコードを実行される可能性があったことが報告されています。

影響を受けるバージョンは、それぞれの問題により、違いがありますが、これらの問題は JDK/JRE 5.0 Update 6 以降、SDK/JRE 1.4.2_10 以降、SDK/JRE 1.3.1_17 以降であれば、修正されているようです。

*PostgreSQL

PostgreSQL の 8.1.0 から 8.1.2 のバージョンに、SET ROLE コマンドにおいて、データベースユーザが権限昇格する可能性がある問題が報告されています。

また、PostgreSQL 8.0.6, 7.4.11, 7.3.13 以前のバージョンには PostgreSQL のコンパイル時に Assert を有効にしていた場合、SET SESSION AUTHORIZATION コマンドの実行時に、DoS 攻撃を引き起こすことが可能なセキュリティ問題が報告されています。

これらの問題は PostgreSQL 8.1.3, 8.0.7, 7.4.12, 7.3.14 で修正されています。

>>気になったニュース、ツールなど

▲ 目次へ戻る


更新履歴

2006.03.05

このページを作成。2006年3月5日分を追加。

▲ 目次へ戻る

LastUpdate: 2006-03-06 | HOME