安全研究

安全漏洞
PHP Filter_Var函数FILTER_VALIDATE_EMAIL注入换行漏洞

发布日期:2007-04-07
更新日期:2007-04-09

受影响系统:
PHP PHP 5.2.1
PHP PHP 5.2.0
描述:
BUGTRAQ  ID: 23359

PHP是广泛使用的通用目的脚本语言,特别适合于Web开发,可嵌入到HTML中。

PHP的ext/filter扩展在使用正则表达式库时存在漏洞,远程攻击者可能利用此漏洞输入恶意邮件。

PHP的ext/filter扩展内部对正则表达式使用了PCRE库。在FILTER_VALIDATE_EMAIL过滤器中没有使用“D”修饰符,而如果PCRE正则表达式中没有使用“D”修饰符的话,“$”的意思就不是“标题的末尾”,而是“标题的末尾或接近带有单个换行符的末尾”,这样恶意用户就可以在邮件头中注入换行符。

<*来源:Stefan Esser (s.esser@ematters.de
  
  链接:http://www.php-security.org/MOPB/PMOPB-45-2007.html
*>

测试方法:

警 告

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

<?php

  $var = "test@example.com\n";

  var_dump(filter_var($var, FILTER_VALIDATE_EMAIL));

?>

建议:
厂商补丁:

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

http://www.php.net

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