セキュリティ

mb_send_mail(),mail()で第5引数を設定する際の注意点

以下の徳丸さんの記事を読んで、以前にmb_send_mail()の関連で調べたことがあったのを思い出しましたので、少し書きます。 PHPだってシェル経由でないコマンド呼び出し機能が欲しい 環境は Unix 系の OS で OS コマンドを使用してメールを送信する場合です。…

php.ini で mbstring.encoding_translation を有効にすると max_input_vars が有効にならない(PHP 5.4.8以前、PHP 5.3.18以前)

少し前の話題ですが、PHP 5.4.9 と PHP 5.3.18 が公開されました。その中で、mbstring の項目に「mbstring.encoding_translation = On になっていると max_input_vars が有効にならない」問題が修正されています。 http://git.php.net/?p=php-src.git;a=comm…

一部の言語構造と関数で引数の値に NULL バイトが含まれていた場合の挙動修正

PHP 5.3.4(最新は PHP 5.3.5) で、引数の値にファイルパスが指定可能な言語構造と関数に NULL バイトが含まれていた場合、処理が失敗するように修正されました。 http://svn.php.net/viewvc?view=revision&revision=305507 簡単に調べてみたところ、少なくと…

「体系的に学ぶ 安全なWebアプリケーションの作り方」

「体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践」という書籍が3/1に発売されました。体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践作者: 徳丸浩出版社/メーカー: SBクリエイティ…

the Month of PHP Security

結構、前になりますが、2010/05/01 から 1ヶ月間、http://php-security.org/ で the Month of PHP Security として、PHP とその周辺のセキュリティ問題が報告がされていました。 そのほとんどの問題について、実証コードも掲載されています。その中で、PHP …

最新の PHP スナップショットでの htmlspecialchars()/htmlentities() の修正内容について

前の記事(Shift_JIS では、htmlspecialchars() を使用しても XSS が可能な場合がある)で Shift_JIS ではブラウザによっては XSS が発生する可能性があることを書きました。この問題は、PHP の開発版のスナップショット(snaps.php.net)で修正されたことを確認…

Shift_JIS では、htmlspecialchars() を使用しても XSS が可能な場合がある

以下のページに関連して、htmlspecialchars() を使用している場合でも XSS が可能かどうか少し調べてみました。 http://www.tokumaru.org/d/20090930.html その結果、いくつかのブラウザで文字エンコーディングに Shift_JIS を使用していた場合、XSS が可能…

PHP におけるクロスサイトスクリプティングの脆弱性(JVN)

PHP 5.2.7 以前で display_errors = On になっている場合、エラーメッセージに任意のスクリプトを実行される問題があったそうです。 参考 JVN#50327700 PHP におけるクロスサイトスクリプティングの脆弱性 (JVN) JVNDB-2008-000084 PHP におけるクロスサイト…

CVE-2008-5557 - PHP mbstring buffer overflow vulnerability

mbstring 関係の関数で HTML エンティティを含むユニコード文字列を変換をした場合に buffer overflow を起こす可能性があるそうです。 影響を受けるバージョン: PHP 4.3.0 以降、PHP 5.0.0 以降 修正されたバージョン: PHP 5.2.7 および PHP 5.3.0 alpha 3(…

the Month of PHP Bugs

以前、Month of PHP Bugs and PHP 5.2.1 において、3月に1日1つずつ PHP のセキュリティ問題を公開していくという話がありましたが、開始されていました。 the Month of PHP Bugs(http://www.php-security.org/) 現在、以下の3つが登録されています。しばら…

PHP のセキュリティ関係のリンク

PHP Multiple Vulnerabilities (Secunia) PHP Security From The Inside (Security Focus) Stefan Esser へのインタビューです。PHP のセキュリティ問題に関していろいろ興味深い話がされています。 Month of PHP Bugs and PHP 5.2.1 3月から1日に1つずつ PH…

Cookie に HttpOnly 属性を付加

PHP 5.2.0 以降では、Cookie に HttpOnly 属性を付加することができるようになりました。 ブラウザが対応していれば、ブラウザ側では、Cookie に対して通常のアクセスのみ(HTTP を通してのみ)が可能になります。 Javascript などのスクリプトから Cookie に…

allow_url_include

allow_url_include は PHP 5.2.0 から追加された設定です(デフォルト無効[Off])。 このオプションが有効になっている場合は、include(), include_once(), require(), require_once() で URL 対応の fopen ラッパーが使用できます。 PHP マニュアル: allow_ur…

data: ストリームラッパー

php 5.2.0 から data: ストリームラッパーが利用できるようになりました。 PHP マニュアル: Data (RFC 2397) http://php.net/wrappers.data 使いようによっては、おそらく便利な機能ですが、include() や require() に任意の値の入力を許していると、php://i…

最近のセキュリティ問題修正

最近、多くのセキュリティ問題とバグの修正が行われています。 PHP 4.4.3, PHP 5.1.5RC1 最低でも PHP 5.1.4 か PHP 4.4.3 にアップデートすることが推奨されています。 PHP 5.1.5RC1 でもいくつかのセキュリティ問題が修正されています。 PHP 4.4.3 http://…

Cookie の HttpOnly 属性

PHP internals で HTTP-Only Patch という投稿がありました。 この Patch を適用するかどうかで議論され、PHP 5.2 系のブランチに適用されたようです(デフォルトでは無効のようです)。 http://news.php.net/php.internals/25233 http://news.php.net/php.cvs…

「PostgreSQL で SJIS を使用した場合に SQL 文字列のエスケープが回避される可能性がある問題について」に追記

iakio さんから Patch を修正したとの連絡をいただきましたので、3月5日の日記に追記しました。もし、以前に Patch を適用していた場合は再度適用し直しておいた方が良いと思います。また、この Patch は PostgreSQL の CVS にコミットしていただいたそうで…

PostgreSQL で SJIS を使用した場合に SQL 文字列のエスケープが回避される可能性がある問題について

以前のメモにおいて、PHP から PostgreSQL への接続で文字コードに SJIS(Shift JIS) を使用すると以下の問題があることを説明したのですが、分かりにくい点なども多いように思いますので、まとめ直しました。何か間違いや勘違いしているような部分がありまし…

PEAR::Archive_Tar

最近の PEAR で報告されているセキュリティ問題の PEAR::Archive_Tar について追記しました。 実際に検証してみると、pear コマンドをスーパーユーザ権限で使用している場合、不正なパッケージのインストールを行うと非常に危険な感じがします。

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

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

PostgreSQL 使用時の文字列のエスケープ回避問題

2006.03.06 追記 この問題については、iakio日誌(2006-02-15)において、PHP スクリプトで回避する方法の例と、PostgreSQL に Patch を当てて回避する方法を示しておられます。問題の影響を受ける場合は参考にすると良いと思います。 1月22日に書いた、addsla…

addslashes() による SQL 文字列のエスケープ回避問題

The addslashes() Versus mysql_real_escape_string() Debate (Chris Shiflett: The PHP Blog) で文字コードによっては addslashes() による SQL のエスケープ処理は問題があることが指摘されていました。 日本語でも、Shift_JIS を扱っている場合は同様の問…

Hardened-PHP Project Security Advisory

Hardened-PHP Project からセキュリティアドバイザリが2件出ています。 PHP ext/mysqli Format String Vulnerability PHP 5 から導入された mysqli では、例外を使用したエラー報告機能がありますが、エラーで例外が発生した際に、そのエラーメッセージはフ…

Graphics Rendering Engine の脆弱性

予定より早く修正プログラムが公開されることになりました。かなり危険な問題ですので、できる限り早くアップデートした方が良さそうです。 Graphics Rendering Engine の脆弱性によりコードが実行される可能性がある (912919) (MS06-001) http://www.micros…

Apache 2 mod_ssl Denial of Service Vulnerability

Secunia で Apache 2 の mod_ssl に DDoS 攻撃が可能な問題が報告されていました。 Apache 2 の CVS 版では修正されているそうです。Apache 2 mod_ssl Denial of Service Vulnerability http://secunia.com/advisories/18307/Apache の Subversion ログ http…

PEAR installer arbitrary code execution vulnerability

PEAR 1.0 - 1.3.5 のバージョンに含まれている PEAR Installer に、任意のコードが実行されてしまう可能性があったそうです。PEAR 1.4.0 以上ではこの問題はないとされています。 現在は PEAR 1.4.6 が公開されていますので、1.3.5 以下の古いバージョンの P…

Windows 版 PHP の mysql_connect() に Buffer Overflow

Windows 版の PHP の mysql_connect() で Buffer Overflow 攻撃が可能な問題が報告されています。 mysql_connect() の引数を外部から指定できるようにしていることはないと思いますので、あまり大きな問題にはならないと思います。[Full-disclosure] Windows…

Fixed possible memory corruption inside mb_strcut().

masugata さんのところで知ったのですが、mb_strcut() の第2引数(文字列の切り取り開始位置) に不正に大きな値を入力するとメモリ破壊が起きる可能性があるという問題が発見され、修正されたそうです。 http://d.hatena.ne.jp/masugata/20051216#p2 以下のよ…

.php でない拡張子でも PHP が実行されてしまう可能性がある問題

Apache の問題だと思われますが、PHP で最も影響がありそうです。 Full-disclosure で以下のような投稿がありました。 [Full-disclosure] Bug with .php extension? 例えば、サーバ上に test.php.rar という PHP のコードが書かれたファイルが存在していて、…

PHP "mb_send_mail()" "To:" Header Injection Vulnerability

Secunia や SecurityFocus でセキュリティホールとして認められたようです。 この件についての情報を 最近の mbstring 関係のバグのまとめ の最後に追加してみました。 PHP "mb_send_mail()" "To:" Header Injection Vulnerability (Secunia) PHP MB_Send_Ma…