最近の PEAR で報告されているセキュリティ問題

最近、PEAR のパッケージでいくつかセキュリティ問題が報告されています。PEAR::Archive_Tar はまだ修正されていませんが、他のパッケージについては必要に応じてアップデートしておく方が良いと思います。

リンクの追加、記述の修正を行いました(2006.03.02)。
Archive_Tar について追記しました(2006.03.06)。

PEAR::Archive_Tar

PEAR::Archive_Tar 1.3.1 以前のバージョンでファイルの展開においてディレクトリ・トラバーサル脆弱性があることが報告されています。この問題はまだ修正されていません(2006.03.05 現在)。
スーパーユーザ権限で PEAR::Archive_Tar を使用して悪意のあるファイルを展開すると危険です。pear コマンドでも、.tgz ファイルを展開する際に PEAR::Archive_Tar を使用していますので、この問題の影響を受ける可能性があります。
ローカルの環境で、不正なファイルパスを含むパッケージを作成して pear install を行ってインストールしたところ、任意のディレクトリにファイルの書き込みが可能でした。
PEAR のパッケージのインストールをスーパーユーザ権限で行っている場合は非常に危険ですので、問題が修正されるまでは、pear コマンドも使用しない方が安全のように思います。
一応、上位のディレクトリパスを含むファイルがある場合はエラーを発生させてインストールを中止する Patch を作成してみました。公式に修正が行われるまでに対処を行いたい方は以下の Patch を適用するか、PEAR のインストールディレクトリにある Archive/Tar.php を修正して試してみてください。何か不具合や問題等があれば、連絡をお願いします。確認は Linux 上で行いました。Windows 版では確認していません。
Patch ファイルも作成しました(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::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 以降で修正されています。