PHP 7.1.27リリース対応 PHPセキュリティ保守サービス パッチ配布開始
PHPプロジェクトによるPHP 5.6/7.0のメンテナンス期間は2019年1月のリリースで終了しました。今後、PHP 5.6/7.0の利用を継続されるには既知のセキュリティ問題を修正したPHP 5.6/7.0を利用する必要があります。ESIのPHPセキュリティ保守サービスではPHP 4.4以降のPHPに既知のセキュリティ問題を修正したバージョンをご利用頂けます。
2019年3月にPHP 7.1.27以降のPHPでEXIFモジュールのメモリ管理問題が修正されました。このEXIF問題はPHP 4.4以降に影響します。JPEG画像に含まれた画像情報を処理しているWebサイトには必須のパッチです。
以下はPHP 7.1.27に対応したPHPセキュリティ保守サービスのリリースノートです。
◆ 2019/4/12
PHPプロジェクトのPHP 7.1.27リリースに対応したリリースです。
これらのRelease Noteでは以下のセキュリティ/バグフィックスが報告されています
07 Mar 2019, PHP 7.1.27=================================================================================
- Core:
. Fixed bug #77630 (rename() across the device may allow unwanted access during
processing). (Stas)PHP 5.2以降
rename()が不正なアクセスする可能性がある。(不正にファイル名を改竄される)
ファイルアクセス権が設定により、他のユーザーからのアクセスを許してしまう。■ 互換性
問題なし■ 影響
ファイル名を改竄されする。結果として任意コードの実行の可能性もある。
攻撃には悪意のあるプログラムがPHPストリームが作成するファイルにアクセスする必要がある。=================================================================================
- EXIF:
. Fixed bug #77509 (Uninitialized read in exif_process_IFD_in_TIFF). (Stas)
. Fixed bug #77540 (Invalid Read on exif_process_SOFn). (Stas)
. Fixed bug #77563 (Uninitialized read in exif_process_IFD_in_MAKERNOTE). (Stas)
. Fixed bug #77659 (Uninitialized read in exif_process_IFD_in_MAKERNOTE). (Stas)PHP 4.4以降
画像中の不正なexif情報でメモリ内容が漏洩する■ 互換性
問題なし
ただし、既に壊れたExif情報を持つイメージがある場合はエラーが発生する。■ 影響
メモリ内容を読み取られ機密情報が漏洩する。メモリ情報が他のメモリ改竄脆弱性と組み合わされ、
任意コード実行などに利用される可能性がある。一般にExif情報は外部から送信されたイメージでExif情報を返した場合に情報が漏洩する。取得
したExif情報を返す前にバリデーションすることにより、影響は排除/緩和できる。Exif情報には
任意のデータが登録可能であるため、この脆弱性対策のみでなく一般にバリデーションすべき。=================================================================================
- PHAR:
. Fixed bug #77396 (Null Pointer Dereference in phar_create_or_parse_filename).
(bishop)
. Fixed bug #77586 (phar_tar_writeheaders_int() buffer overflow). (bishop)PHP 5.3以降
長すぎるファイル名を与えた場合、ヌルポインタ参照によりクラッシュする。
ファイルヘッダーの書き込み時にバッファーオーバーフローが発生する。
■ 互換性
問題なし■ 影響
ファイル名が長過る場合にPHPがクラッシュする。
サービス不能攻撃に利用される可能性がある。=================================================================================
- SPL:
. Fixed bug #77431 (openFile() silently truncates after a null byte). (cmb)PHP 4.4以降(対応はPHP X.X以降)
SPLのファイルパス処理でヌル文字インジェクションが可能。(FileInfoのコンストラクター)
このケースの場合はディレクトリの読み取り時にヌル文字を含む場合にディレクトリ名がトランケートされる。全てのPHPにも影響があるが、ヌル文字インジェクション対策はPHP X.X以降にPHP全体に
適用されている。PHPのヌル文字インジェクション対策はアプリケーションが未対応の場合のフェイル
セーフ対策です。PHP 5.2/5.3には該当箇所にヌル文字チェックが存在するため、この部分ではヌル文字インジェクション
の影響を受けない。3rdパーティー製の拡張モジュールのヌル文字インジェクションチェックは、モジュール任せです。
PHPに限らず一般に全てのアプリケーションでファイルパスのバリデーションが必要です。
ファイルパスにヌル文字を許可するファイルシステムの場合、読み取り時にヌル文字インジェクション
が可能になります。許可しないファイルシステムの場合、パス作成時にファイルシステムレベルで
エラーとなる。■ 互換性
問題なし
通常はパスにヌル文字は含めない
PHP 5.2/5.3には別のヌル文字チェックコードが在り、影響を受けない■ 影響
不正なファイルを作成される。ファイルを改竄される。ファイルを読み取られる。ヌル文字を許可するファイルシステムを利用している場合、パス用の入力文字列をバリデーション
していないとヌル文字を含んだパスが作成可能となる。ヌル文字を含むパスは読み取り可能だが、
PHPの標準APIはヌル文字を含むパスを許可していない。このため、入力処理時点でヌル文字を
バリデーションしないとDoS状態に陥る。従って、この脆弱性修正の有無に関わらず、パス用の
入力文字列のバリデーションが欠かせない。