| 网站首页 | 新闻中心 | 系统安全 | 网络安全 | 安全技术 | 下载中心 | 安全365社区 |
安全365
收藏本站
设为首页
会员登录:
站内搜索: 新闻中心 系统安全 网络安全 安全技术 下载中心
| 网络安全首页 | 信道安全 | 设备安全 | 协议安全 | Web安全 |
PHP 内存管理器溢出漏洞
PHP 内存管理器符号比较多个溢出漏洞
作者:不详 文章来源:华盟收集 点击数: 更新时间:2008-3-30 17:02:46

  受影响系统:PHP PHP 5.2.0

  不受影响系统:PHP PHP 5.2.1

  描述:BUGTRAQ ID: 23238

  PHP是广泛使用的通用目的脚本语言,特别适合于Web开发,可嵌入到HTML中。PHP的内存管理器实现上存在漏洞,本地攻击者可能利用此漏洞提升权限。如果通过emalloc()函数分配内存的话,PHP中新的Zend内存管理器会在内部的_zend_mm_alloc_int()函数中处理这个请求,首先使用ZEND_MM_TRUE_SIZE宏判断所请求内存块的真实大小,如下所示:

  static void *_zend_mm_alloc_int(zend_mm_heap *heap, size_t size ZEND_FILE_LINE_DC ...)

  {

  size_t true_size, best_size = 0x7fffffff;

  zend_mm_free_block *p, *end, *best_fit = NULL;

  true_size = ZEND_MM_TRUE_SIZE(size);

  The macro expands to

  (((long)size<(long)ZEND_MM_MIN_SIZE)?(ZEND_MM_ALIGNED_MIN_HEADER_SIZE):

  (ZEND_MM_ALIGNED_SIZE(size+ZEND_MM_ALIGNED_HEADER_SIZE+END_MAGIC_SIZE)))

  但在进行比较之前这段代码将大小设置为有符长型,因此如果请求了正常情况下会导致内存破坏或越界的很大的内存块,就可能将其处理为负数,仅分配很小的内存块,导致多个可利用的缓冲区溢出。

文章录入:小张    责任编辑:小张 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
     
     
     
    ShopEx PHP远程漏洞
    php访问access的方法
    Java理论和实践:用软引用
    PHP注射基础 经验 技巧三
    四种绝招检测硬盘与内存
    php 发送带附件的邮件
    轻轻松松做成PHP计数器
    利用PHP和AJAX创建RSS聚
    PHP 安全配置
    手工注射Php网站脚本学习
    站长邮箱:webmaster@anquan365.com
    联系电话:86-10-67634029 点击这里给我发消息

    Copyright © 2006-2008 www.anquan365.com 北京华安普特网络科技有限公司 版权所有