热门PHP库中的严重漏洞:威胁数千网站

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

热门PHP库中的严重漏洞:开发者需要了解什么



来自SonarSource公司的网络安全研究团队发布了一份报告,内容涉及在最常用的PHP模板库之一Smarty中发现的一个严重漏洞。该漏洞编号为CVE-2024-35227,允许攻击者在服务器上远程执行任意代码,可能导致Web应用程序完全被攻陷。



漏洞详情



问题与Smarty库中fetch()函数处理用户输入的机制有关。在不安全的配置且缺乏数据过滤的情况下,攻击者可以传递恶意字符串,该字符串将被解释为PHP代码。根据CVSS v3.1评分标准,该漏洞获得了最高分9.8(严重)。



漏洞的主要特征:

  • 攻击向量:远程(Network)
  • 利用难度:低(Low)
  • 所需权限:无(None)
  • 对完整性的影响:完全(High)


受影响版本



该漏洞影响Smarty库直至4.3.2和5.0.1的所有版本。库开发者已在4.3.3和5.0.2版本中分别发布了补丁。强烈建议所有用户立即更新库。



如何检查您的项目是否存在漏洞



为确保您的项目不受风险影响,请执行以下步骤:

  • 在composer.json或vendor/smarty/smarty/Smarty.class.php文件中检查Smarty的版本。
  • 如果版本低于4.3.3或5.0.2(取决于分支),请执行更新:composer update smarty/smarty。
  • 检查代码中所有使用fetch()函数处理用户数据的地方。


安全建议



除了立即更新库之外,专家建议遵循通用安全规则:

  • 始终过滤和转义用户输入。
  • 对文件操作采用最小权限原则。
  • 定期更新项目的所有依赖项。
  • 使用静态代码分析工具(SAST)查找漏洞。


历史与背景



Smarty是最古老的PHP模板库之一,于2004年发布。它被用于诸如Drupal(通过模块)、PrestaShop等流行CMS以及许多自建项目中。据分析师估计,该漏洞可能影响全球超过100,000个网站。



这并非该库第一次出现严重安全问题。2021年,发现了与模板注入相关的漏洞CVE-2021-29454。Smarty开发者及时发布了修复程序,但生产环境中过时版本的数量仍然很高。

推荐库