安全研究
安全漏洞
Python PyLocale_strxfrm函数远程信息泄露漏洞
发布日期:2007-05-08
更新日期:2008-04-21
受影响系统:
Python Software Foundation Python 2.5描述:
Python Software Foundation Python 2.4
BUGTRAQ ID: 23887
CVE(CAN) ID: CVE-2007-2052
Python是一种开放源代码的脚本编程语言。
Python的Modules/_localemodule.c文件中的PyLocale_strxfrm函数中存在单字节溢出漏洞,允许攻击者读取部分内存内容。
Modules/_localemodule.c:361
356 n1 = strlen(s) + 1;
357 buf = PyMem_Malloc(n1);
358 if (!buf)
359 return PyErr_NoMemory();
360 n2 = strxfrm(buf, s, n1);
如果所转换的字符串长于原始字符串的话:
361 if (n2 > n1) {
362 /* more space needed */
在这里会分配n2字节:
363 buf = PyMem_Realloc(buf, n2);
364 if (!buf)
365 return PyErr_NoMemory();
字符串会为n2字符长,终止的空字符不适合这个长度,因此字符串不会终止,在某些情况下可能导致信息泄露。
366 strxfrm(buf, s, n2);
367 }
368 result = PyString_FromString(buf);
369 PyMem_Free(buf);
370 return result;
371 }
372
373 #if defined(MS_WINDOWS)
374 static PyObject*
375 PyLocale_getdefaultlocale(PyObject* self)
<*来源:Piotr Engelking (inkerman42@gmail.com)
链接:http://secunia.com/advisories/25190
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=416934
https://bugzilla.redhat.com/long_list.cgi?buglist=235093
https://www.redhat.com/support/errata/RHSA-2007-1076.html
https://www.redhat.com/support/errata/RHSA-2007-1077.html
http://www.debian.org/security/2008/dsa-1551
http://www.debian.org/security/2008/dsa-1620
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
建议:
厂商补丁:
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
RedHat
------
RedHat已经为此发布了一个安全公告(RHSA-2007:1077-01)以及相应补丁:
RHSA-2007:1077-01:Moderate: python security update
链接:https://www.redhat.com/support/errata/RHSA-2007-1077.html
Python Software Foundation
--------------------------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://svn.python.org/view/python/branches/release25-maint/Modules/_localemodule.c?rev=54670&r1=51333&r2=54670
浏览次数:2815
严重程度:0(网友投票)
绿盟科技给您安全的保障
