CVE-2020-7059 是 PHP 中 fgetss() 函数在处理带剥离标签的数据时存在的缓冲区溢出漏洞。该漏洞可能导致信息泄露或程序崩溃。受影响的版本包括 7.2.0 到 7.4.2。此问题已在 PHP 7.4.2 版本中得到修复。
PHP的CVE-2020-7059漏洞影响7.2.x版本7.2.27之前,7.3.x版本7.3.14之前,以及7.4.x版本7.4.2之前的版本。当使用fgetss()函数读取带有标签去除功能的(strip tags)数据时,会触发此漏洞。攻击者可以提供特制的输入数据,导致fgetss()读取超出分配的缓冲区。这可能导致信息泄露(敏感数据被暴露)或PHP应用程序崩溃。此漏洞的CVSS评分是6.5,表明这是一个中等严重程度的问题。问题的核心在于fgetss()如何处理标签和缓冲区边界,在特定条件下允许越界读取。
当fgetss()接收到攻击者控制的输入,该输入包含在处理时会导致超出分配的缓冲区读取的标签时,会触发此漏洞。这要求PHP应用程序接受随后使用fgetss()和strip_tags()处理的输入。如果利用成功,攻击者可以从服务器内存中读取机密数据,包括密码、API密钥或其他敏感信息。利用的复杂性取决于输入数据的结构和PHP服务器配置。
Web applications relying on PHP versions 7.2.x, 7.3.x, or 7.4.x, particularly those that process user-supplied data with tag stripping enabled, are at risk. Shared hosting environments where multiple applications share the same PHP installation are also at increased risk, as a vulnerability in one application could potentially impact others.
• php: Examine PHP error logs for stack traces indicating buffer overflows or memory access violations when using fgetss() with tag stripping.
grep -i 'fgetss' /var/log/php_errors.log• linux / server: Monitor system resource usage (CPU, memory) for sudden spikes that could indicate a denial-of-service attack triggered by the vulnerability. Use top or htop to observe resource consumption.
• generic web: Inspect web application logs for unusual requests or error messages related to data processing or tag stripping. Use tools like tcpdump or Wireshark to analyze network traffic for suspicious patterns.
disclosure
漏洞利用状态
EPSS
2.37% (85% 百分位)
CVSS 向量
针对CVE-2020-7059的最有效缓解措施是升级到PHP的补丁版本。这意味着升级到PHP 7.2.27或更高版本,PHP 7.3.14或更高版本,或PHP 7.4.2或更高版本。如果无法立即升级,请检查使用fgetss()的代码,以识别潜在的攻击向量。实施严格的输入验证和清理可以帮助防止利用,但这并非完整的解决方案。定期监控服务器日志以检测异常行为也有助于检测利用尝试。
Actualice a la última versión de PHP. Si está utilizando las versiones 7.2.x, actualice a la versión 7.2.27 o superior. Si está utilizando las versiones 7.3.x, actualice a la versión 7.3.14 o superior. Si está utilizando las versiones 7.4.x, actualice a la versión 7.4.2 o superior.
漏洞分析和关键警报直接发送到您的邮箱。
fgetss()是一个PHP函数,用于从数据流中读取一行,并删除HTML标签。它对于清理输入数据很有用,但在此情况下,其实现存在漏洞。
PHP更新通常包含重要的安全修复程序。更新是保护您的应用程序免受已知漏洞(如CVE-2020-7059)影响的最佳方法。
是的,有其他函数可用于从数据流中读取行,例如fgets(),但可能需要额外的处理来删除标签。
检查您的代码,以查找在PHP的易受攻击版本中使用fgetss()的情况。您还可以使用安全扫描工具来检测漏洞。
立即隔离受影响的服务器,进行彻底的安全审计,并从干净的备份中恢复。