Security Lab

Выполнение произвольного кода в CGI::Lite

Дата публикации:14.02.2003
Всего просмотров:1350
Опасность:
Средняя
Наличие исправления: Нет
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации: Удаленная
Воздействие: Обход ограничений безопасности
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты: CGI::Lite 2.x
Описание: Уязвимость в проверке правильности ввода обнаружена в CGI::Lite. Удаленный пользователь может представить специально сформированный ввод, который обойдет механизм фильтрации опасного кода.

Уязвимость присутствует в функции escape_dangerous_chars(). Функция не в состоянии фильтровать большинство метасимволов оболочки, в результате удаленный атакующий может выполнить произвольные команды оболочки на целевом сервере с привилегиями Web демона. Пример:

#!/usr/bin/perl -w

	use strict;
	use CGI::Lite;

	my $cgi = new CGI::Lite;
	my %form = $cgi->parse_form_data;
	my $recipient = $form{'recipient'};

	my $message = "From: sender\nSubject: Hello\n\nHello my friend!\n\n";

	$recipient = escape_dangerous_chars ($recipient);

	open (SM, "|/usr/sbin/sendmail -f rfg $recipient");
	print SM $message;
	close SM;

	print "Content-Type: text/html\n\n";
	print "<HTML>\n";
	print "<HEAD></HEAD>\n";
	print "<BODY>\n";
	print "Thank you.  Your request has been processed\n";
	print "</BODY>\n";
	print "</HTML>\n";
Уязвимость обнаружена в CGI::Lite 2.0
Ссылки: Security bug in CGI::Lite::escape_dangerous_chars() function