安全研究

安全漏洞
Python ImageOP模块多个整数溢出漏洞

发布日期:2007-09-17
更新日期:2007-09-18

受影响系统:
Python Software Foundation Python <= 2.5.1
描述:
BUGTRAQ  ID: 25696
CVE(CAN) ID: CVE-2007-4965,CVE-2008-1679

Python是一种开放源代码的脚本编程语言。

Python的imageop模块实现上存在堆溢出漏洞,本地攻击者可能利用此漏洞提升自己的权限。

Python的imageop模块的imageop.c和rbgimgmodule.c文件中存在整数溢出漏洞,最终会导致堆溢出。如果用户受骗打开了恶意的图形文件的话,就可能触发这些溢出,导致执行任意指令。有漏洞的代码段如下:

static PyObject *
imageop_tovideo(PyObject *self, PyObject *args)
{
    int maxx, maxy, x, y, len;

   ........................

    /* *************** int overflow here permit to bypass len check
******************* */

if ( maxx*maxy*width != len ) {
        PyErr_SetString(ImageopError, "String has incorrect length");
        return 0;
    }

    rv = PyString_FromStringAndSize(NULL, len);
    if ( rv == 0 )
        return 0;
    ncp = (unsigned char *)PyString_AsString(rv);

    if ( width == 1 ) {
        memcpy(ncp, cp, maxx);        /* Copy first line */
        ncp += maxx;

/* ********** with a negativ value it's possible to bypass the code
********** */

        for (y=1; y<maxy; y++) {    /* Interpolate other lines */

<*来源:Slythers Bro (slythers@gmail.com
  
  链接:http://marc.info/?l=full-disclosure&m=118990046405321&w=2
        http://www.debian.org/security/2008/dsa-1551
        http://security.gentoo.org/glsa/glsa-200807-01.xml
        http://www.debian.org/security/2008/dsa-1620
*>

测试方法:

警 告

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

http://marc.info/?l=full-disclosure&m=118990046405321&q=p5

建议:
厂商补丁:

Debian
------
Debian已经为此发布了一个安全公告(DSA-1620-1)以及相应补丁:
DSA-1620-1:New python2.5 packages fix several vulnerabilities
链接:http://www.debian.org/security/2008/dsa-1620

补丁下载:
Source archives:

http://security.debian.org/pool/updates/main/p/python2.5/python2.5_2.5-5+etch1.dsc
Size/MD5 checksum:     1304 1849941ac328ba0bccc45535c5878d4d
http://security.debian.org/pool/updates/main/p/python2.5/python2.5_2.5.orig.tar.gz
Size/MD5 checksum: 11010528 2ce301134620012ad6dafb27bbcab7eb
http://security.debian.org/pool/updates/main/p/python2.5/python2.5_2.5-5+etch1.diff.gz
Size/MD5 checksum:   266589 dfbdc5caf7a95e68f68e0351228284d4

Architecture independent packages:

http://security.debian.org/pool/updates/main/p/python2.5/python2.5-examples_2.5-5+etch1_all.deb
Size/MD5 checksum:   643494 f922c5e48339e5b535a1f23f6e061700
http://security.debian.org/pool/updates/main/p/python2.5/idle-python2.5_2.5-5+etch1_all.deb
Size/MD5 checksum:    63258 4add97730079e7894abbbca4ba5659d4

alpha architecture (DEC Alpha)

http://security.debian.org/pool/updates/main/p/python2.5/python2.5-minimal_2.5-5+etch1_alpha.deb
Size/MD5 checksum:   849132 28c76f70110314eab90c8ea31d0da51e
http://security.debian.org/pool/updates/main/p/python2.5/python2.5-dev_2.5-5+etch1_alpha.deb
Size/MD5 checksum:  2065734 270d593f08cdd06cbe55bdb804a5dc43
http://security.debian.org/pool/updates/main/p/python2.5/python2.5_2.5-5+etch1_alpha.deb
Size/MD5 checksum:  3596900 64d12cc349030683dc125901dff56feb
http://security.debian.org/pool/updates/main/p/python2.5/python2.5-dbg_2.5-5+etch1_alpha.deb
Size/MD5 checksum:  6079808 4105398688a96f54fb7e043a3bd536d7

amd64 architecture (AMD x86_64 (AMD64))

http://security.debian.org/pool/updates/main/p/python2.5/python2.5-dbg_2.5-5+etch1_amd64.deb
Size/MD5 checksum:  6432058 b7e802bf4a19edfaddc28ebc06bed279
http://security.debian.org/pool/updates/main/p/python2.5/python2.5_2.5-5+etch1_amd64.deb
Size/MD5 checksum:  3589530 9bbd2cea36b04746fa5437d984147f99
http://security.debian.org/pool/updates/main/p/python2.5/python2.5-dev_2.5-5+etch1_amd64.deb
Size/MD5 checksum:  1806598 98bfee87311a8950462a9ab78c7d5719
http://security.debian.org/pool/updates/main/p/python2.5/python2.5-minimal_2.5-5+etch1_amd64.deb
Size/MD5 checksum:   849650 a95eeb3b45a0a3f74e314084d581fbd6

arm architecture (ARM)

http://security.debian.org/pool/updates/main/p/python2.5/python2.5-dev_2.5-5+etch1_arm.deb
Size/MD5 checksum:  1656006 8e8d3d3b991f317384fc1646139712d4
http://security.debian.org/pool/updates/main/p/python2.5/python2.5-minimal_2.5-5+etch1_arm.deb
Size/MD5 checksum:   781358 fbb5adac7469048405b2585475393475
http://security.debian.org/pool/updates/main/p/python2.5/python2.5_2.5-5+etch1_arm.deb
Size/MD5 checksum:  3447404 4a10cad96ef0aefc9ba916a39677b826
http://security.debian.org/pool/updates/main/p/python2.5/python2.5-dbg_2.5-5+etch1_arm.deb
Size/MD5 checksum:  6017500 f727562323c21bfb371e17ef9691f8e3

hppa architecture (HP PA RISC)

http://security.debian.org/pool/updates/main/p/python2.5/python2.5-dev_2.5-5+etch1_hppa.deb
Size/MD5 checksum:  1984570 b083e1afffe4a93dd79ae4b8a7dca474
http://security.debian.org/pool/updates/main/p/python2.5/python2.5_2.5-5+etch1_hppa.deb
Size/MD5 checksum:  3679122 cb5aa4f840a12ee13094089323f0b4f9
http://security.debian.org/pool/updates/main/p/python2.5/python2.5-minimal_2.5-5+etch1_hppa.deb
Size/MD5 checksum:   887774 9cc756ce52e5380650ea754c4104c6ca
http://security.debian.org/pool/updates/main/p/python2.5/python2.5-dbg_2.5-5+etch1_hppa.deb
Size/MD5 checksum:  6204820 65d3c59dcb56277d838b776f0b2d5176

i386 architecture (Intel ia32)

http://security.debian.org/pool/updates/main/p/python2.5/python2.5-dbg_2.5-5+etch1_i386.deb
Size/MD5 checksum:  5989758 79d6a1ed26f230a5b092603346cd31e3
http://security.debian.org/pool/updates/main/p/python2.5/python2.5-dev_2.5-5+etch1_i386.deb
Size/MD5 checksum:  1676014 5d7353787ab562d03bb967732cd7bf46
http://security.debian.org/pool/updates/main/p/python2.5/python2.5_2.5-5+etch1_i386.deb
Size/MD5 checksum:  3445750 4b7b6629d5ee48d8413bd2ee7289726c
http://security.debian.org/pool/updates/main/p/python2.5/python2.5-minimal_2.5-5+etch1_i386.deb
Size/MD5 checksum:   784320 f49d7ccf7cb106d200559169c4c013f2

ia64 architecture (Intel ia64)

http://security.debian.org/pool/updates/main/p/python2.5/python2.5-minimal_2.5-5+etch1_ia64.deb
Size/MD5 checksum:  1176036 fbc3971fbbcc8a37b2feec8570a4fa34
http://security.debian.org/pool/updates/main/p/python2.5/python2.5-dbg_2.5-5+etch1_ia64.deb
Size/MD5 checksum:  6966656 ca0fe43224b9f329afac2673379ad958
http://security.debian.org/pool/updates/main/p/python2.5/python2.5_2.5-5+etch1_ia64.deb
Size/MD5 checksum:  4037758 3be3cf7835a7e69b3189025edcdca799
http://security.debian.org/pool/updates/main/p/python2.5/python2.5-dev_2.5-5+etch1_ia64.deb
Size/MD5 checksum:  2477104 a5cafad9926f58504c44f980d490d979

mips architecture (MIPS (Big Endian))

http://security.debian.org/pool/updates/main/p/python2.5/python2.5-minimal_2.5-5+etch1_mips.deb
Size/MD5 checksum:   819064 263a7a9496d171874461654ecc7db26f
http://security.debian.org/pool/updates/main/p/python2.5/python2.5-dev_2.5-5+etch1_mips.deb
Size/MD5 checksum:  1907220 2175a2f625925e95be148d62f279c210
http://security.debian.org/pool/updates/main/p/python2.5/python2.5_2.5-5+etch1_mips.deb
Size/MD5 checksum:  3525088 a257c17981d12f9f0eb0a86fde85ca71
http://security.debian.org/pool/updates/main/p/python2.5/python2.5-dbg_2.5-5+etch1_mips.deb
Size/MD5 checksum:  6507214 8306549937264c9f1cf57288ae7e738b

mipsel architecture (MIPS (Little Endian))

http://security.debian.org/pool/updates/main/p/python2.5/python2.5_2.5-5+etch1_mipsel.deb
Size/MD5 checksum:  3456110 1a7675c9de9abd3671786d36d3ea263f
http://security.debian.org/pool/updates/main/p/python2.5/python2.5-minimal_2.5-5+etch1_mipsel.deb
Size/MD5 checksum:   817730 1a656308b4c158a6d0594f08132f8e16
http://security.debian.org/pool/updates/main/p/python2.5/python2.5-dbg_2.5-5+etch1_mipsel.deb
Size/MD5 checksum:  6336980 a01b93c916c6c658747effa637bbb58d
http://security.debian.org/pool/updates/main/p/python2.5/python2.5-dev_2.5-5+etch1_mipsel.deb
Size/MD5 checksum:  1896534 b2b39e4d4e79b6afa13b24beccc5ab7c

powerpc architecture (PowerPC)

http://security.debian.org/pool/updates/main/p/python2.5/python2.5_2.5-5+etch1_powerpc.deb
Size/MD5 checksum:  3590820 f419e6c0b439e8391ce118a22f66179e
http://security.debian.org/pool/updates/main/p/python2.5/python2.5-minimal_2.5-5+etch1_powerpc.deb
Size/MD5 checksum:   843170 ae9e553f9c5e278f42bb6bc2bef215aa
http://security.debian.org/pool/updates/main/p/python2.5/python2.5-dbg_2.5-5+etch1_powerpc.deb
Size/MD5 checksum:  6648508 512e75472dcb919d7987472f7ea1c57c
http://security.debian.org/pool/updates/main/p/python2.5/python2.5-dev_2.5-5+etch1_powerpc.deb
Size/MD5 checksum:  1809928 1f43ae54d0b5836abbbfc59083d60bb4

s390 architecture (IBM S/390)

http://security.debian.org/pool/updates/main/p/python2.5/python2.5-minimal_2.5-5+etch1_s390.deb
Size/MD5 checksum:   841474 9e0a8a5eaf9100fb03caa3ac77aa2d63
http://security.debian.org/pool/updates/main/p/python2.5/python2.5-dev_2.5-5+etch1_s390.deb
Size/MD5 checksum:  1816794 a718f4d0c010ca9686068e0bbd8ec919
http://security.debian.org/pool/updates/main/p/python2.5/python2.5-dbg_2.5-5+etch1_s390.deb
Size/MD5 checksum:  6535426 4aa0738ecf30b99614440f134a2096fb
http://security.debian.org/pool/updates/main/p/python2.5/python2.5_2.5-5+etch1_s390.deb
Size/MD5 checksum:  3614770 6fdb0e38779312a7a66d57e373c38a38

sparc architecture (Sun SPARC/UltraSPARC)

http://security.debian.org/pool/updates/main/p/python2.5/python2.5-dev_2.5-5+etch1_sparc.deb
Size/MD5 checksum:  1759842 5897eefdb79bfeb3cc470959e04dcb7c
http://security.debian.org/pool/updates/main/p/python2.5/python2.5-dbg_2.5-5+etch1_sparc.deb
Size/MD5 checksum:  5995652 13848fd47c5a9047172d246c12dee03e
http://security.debian.org/pool/updates/main/p/python2.5/python2.5_2.5-5+etch1_sparc.deb
Size/MD5 checksum:  3493896 d327f5fc4dbd282db977eade02c9b7eb
http://security.debian.org/pool/updates/main/p/python2.5/python2.5-minimal_2.5-5+etch1_sparc.deb
Size/MD5 checksum:   778284 bd2ad97592529526e7c08862baf28cdc

补丁安装方法:

1. 手工安装补丁包:

  首先,使用下面的命令来下载补丁软件:
  # wget url  (url是补丁下载链接地址)

  然后,使用下面的命令来安装补丁:  
  # dpkg -i file.deb (file是相应的补丁名)

2. 使用apt-get自动安装补丁包:

   首先,使用下面的命令更新内部数据库:
   # apt-get update
  
   然后,使用下面的命令安装更新软件包:
   # apt-get upgrade

Python Software Foundation
--------------------------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.python.org/

Gentoo
------
Gentoo已经为此发布了一个安全公告(GLSA-200807-01)以及相应补丁:
GLSA-200807-01:Python: Multiple integer overflows
链接:http://security.gentoo.org/glsa/glsa-200807-01.xml

所有Python 2.3用户都应升级到最新版本:

    # emerge --sync
    # emerge --ask --oneshot --verbose ">=3Ddev-lang/python-2.3.6-r6"

所有Python 2.4用户都应升级到最新版本:

    # emerge --sync
    # emerge --ask --oneshot --verbose ">=3Ddev-lang/python-2.4.4-r13"

浏览次数:4321
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障