作者 主題: Openwebmail 1.71 , 1.81 remote root compromise  (閱讀 5335 次)

0 會員 與 1 訪客 正在閱讀本文。

protech

  • 活潑的大學生
  • ***
  • 文章數: 322
  • 性別: 男
    • 檢視個人資料
OpenWebmail 是一個 Web-based 的電子郵件系統,包含了數個以 superuser 帳號執行的 CGI perl script。

說明

遠端攻擊者可以利用 Openwebmail script 的幾個安全弱點,以 superuser 的權限執行任意命令。即使在此之前,攻擊者必需在目標系統中放兩個檔案(透過 ftp 或是本身有本地端的存取權),這仍是必需謹慎處理的嚴重弱點。

影響版本
* 1.81 之前的所有版本。

修正方式

安裝修正程式或升級到最新版本

由此取得修正程式:

http://openwebmail.org/openwebmail/download/cert/patches/SA-02:01/
http://turtle.ee.ncku.edu.tw/openwebmail/download/cert/patches/SA-02:01/

影響結果

遠端攻擊者可以在 Openwebmail 的系統上執行任意命令。

 

原安全通報

http://turtle.ee.ncku.edu.tw/openwebmail/download/cert/advisories/SA-02:01.txt

reggie0329

  • 可愛的小學生
  • *
  • 文章數: 25
    • 檢視個人資料
Openwebmail 1.71 , 1.81 remote root compromise
« 回覆 #1 於: 2003-01-26 00:12 »
請問要怎麼使用patch...我用openwebmail 1.81 rh73 i386 rpm安裝的thx
inux is my life

audiman

  • 活潑的大學生
  • ***
  • 文章數: 249
    • 檢視個人資料
Openwebmail 1.71 , 1.81 remote root compromise
« 回覆 #2 於: 2003-02-13 11:03 »
請問大大是否是要把他說的那一段SCRIPT加入呢?
如果是要加入的話需要再作什麼動作嗎?

audiman

  • 活潑的大學生
  • ***
  • 文章數: 249
    • 檢視個人資料
Openwebmail 1.71 , 1.81 remote root compromise
« 回覆 #3 於: 2003-02-13 13:35 »
我的OPENWEBMAIL是1.71版的
我把他所需要修補的那段程式碼POST上來請教各位大大

--- openwebmail-shared.pl.orig   Sat Aug 24 15:59:00 2002
+++ openwebmail-shared.pl   Thu Dec 19 17:55:22 2002
@@ -223,6 +223,9 @@<--------這應該是在第223行以後的那一小段吧
 sub readconf {
    my ($r_config, $r_config_raw, $configfile)=@_;
 --------------------------------------------------------------------------------
+   if ($configfile=~/\.\./) {   # .. in path is not allowed for higher security
+      openwebmailerror("Invalid config file path $configfile");
+   }
    # read config
    open(CONFIG, $configfile) or
       openwebmailerror("Couldn't open config file $configfile");
---------------------------------------------------------------------------------
以上的意思是不是說把這三四行加進去呢?

下面是不是也是在那行數內加入?
----------------------------------
@@ -331,6 +334,11 @@
       }
    }
 
+   # remove / and .. from variables that will be used in require statement for security
+   foreach $key ( 'default_language', 'auth_module') {
+      ${$r_config}{$key} =~ s|/||g;
+      ${$r_config}{$key} =~ s|\.\.||g;
+   }
    # untaint pathname variable defined in openwebmail.conf
    foreach $key ( 'smtpserver', 'auth_module', 'virtusertable',
                   'mailspooldir', 'homedirspoolname', 'homedirfolderdirname',