<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://cve.radiocsirt.org</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Sat, 03 Oct 2026 01:17:37 +0000</lastBuildDate>
    <item>
      <title>CVE-2024-32651 — Server Side Template Injection in Jinja2 allows Remote Command Execution</title>
      <link>https://cve.radiocsirt.org/vuln/cve-2024-32651</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; dgtlmoon changedetection.io&lt;/p&gt;
&lt;p&gt;changedetection.io is an open source web page change detection, website watcher, restock monitor and notification service. There is a Server Side Template Injection (SSTI) in Jinja2 that allows Remote Command Execution on the server host. Attackers can run any system command without any restriction and they could use a reverse shell. The impact is critical as the attacker can completely takeover the server machine. This can be reduced if changedetection is behind a login page, but this isn&amp;#39;t required by the application (not by default and not enforced).&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; dgtlmoon changedetection.io&lt;/p&gt;
&lt;p&gt;changedetection.io is an open source web page change detection, website watcher, restock monitor and notification service. There is a Server Side Template Injection (SSTI) in Jinja2 that allows Remote Command Execution on the server host. Attackers can run any system command without any restriction and they could use a reverse shell. The impact is critical as the attacker can completely takeover the server machine. This can be reduced if changedetection is behind a login page, but this isn&amp;#39;t required by the application (not by default and not enforced).&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/cve-2024-32651</guid>
    </item>
    <item>
      <title>GHSA-4r7v-whpg-8rx3 — changedetection.io has a Server Side Template Injection using Jinja2 which allows Remote Command Execution</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-4r7v-whpg-8rx3</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: changedetection.io&lt;/p&gt;
&lt;p&gt;### Summary
A Server Side Template Injection in changedetection.io caused by usage of unsafe functions of Jinja2 allows Remote Command Execution on the server host.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;changedetection.io version: 0.45.20
```
docker images
REPOSITORY                            TAG       IMAGE ID       CREATED        SIZE
dgtlmoon/changedetection.io           latest    53529c2e69f1   44 hours ago   423MB
```&lt;/p&gt;
&lt;p&gt;The vulnerability is caused by the usage of vulnerable functions of Jinja2 template engine.
```python
from jinja2 import Environment, BaseLoader
...
    # Get the notification body from datastore
    jinja2_env = Environment(loader=BaseLoader)
    n_body = jinja2_env.from_string(n_object.get(&amp;#39;notification_body&amp;#39;, &amp;#39;&amp;#39;)).render(**notification_parameters)
    n_title = jinja2_env.from_string(n_object.get(&amp;#39;notification_title&amp;#39;, &amp;#39;&amp;#39;)).render(**notification_parameters)
```&lt;/p&gt;
&lt;p&gt;### PoC
1. Create/Edit a URL watch item
2. Under *Notifications* tab insert this payload: 
```python
{{ self.__init__.__globals__.__builtins__.__import__(&amp;#39;os&amp;#39;).popen(&amp;#39;id&amp;#39;).read() }}
```
![Screenshot from 2024-04-19 15-46-04](https://github.com/dgtlmoon/changedetection.io/assets/35783570/b6a5779f-fd1e-4708-9b2d-21cb97f0bb4f)&lt;/p&gt;
&lt;p&gt;3. See Telegram (or other supported messaging app) notification&lt;/p&gt;
&lt;p&gt;![Screenshot from 2024-04-19 16-02-12](https://github.com/dgtlmoon/changedetection.io/assets/35783570/20877919-d6fe-49f1-bbd2-586e900207f1)&lt;/p&gt;
&lt;p&gt;### Impact
In the PoC I&amp;#39;ve used `id` as payload and Telegram to read the result.  
Attacke…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: changedetection.io&lt;/p&gt;
&lt;p&gt;### Summary
A Server Side Template Injection in changedetection.io caused by usage of unsafe functions of Jinja2 allows Remote Command Execution on the server host.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;changedetection.io version: 0.45.20
```
docker images
REPOSITORY                            TAG       IMAGE ID       CREATED        SIZE
dgtlmoon/changedetection.io           latest    53529c2e69f1   44 hours ago   423MB
```&lt;/p&gt;
&lt;p&gt;The vulnerability is caused by the usage of vulnerable functions of Jinja2 template engine.
```python
from jinja2 import Environment, BaseLoader
...
    # Get the notification body from datastore
    jinja2_env = Environment(loader=BaseLoader)
    n_body = jinja2_env.from_string(n_object.get(&amp;#39;notification_body&amp;#39;, &amp;#39;&amp;#39;)).render(**notification_parameters)
    n_title = jinja2_env.from_string(n_object.get(&amp;#39;notification_title&amp;#39;, &amp;#39;&amp;#39;)).render(**notification_parameters)
```&lt;/p&gt;
&lt;p&gt;### PoC
1. Create/Edit a URL watch item
2. Under *Notifications* tab insert this payload: 
```python
{{ self.__init__.__globals__.__builtins__.__import__(&amp;#39;os&amp;#39;).popen(&amp;#39;id&amp;#39;).read() }}
```
![Screenshot from 2024-04-19 15-46-04](https://github.com/dgtlmoon/changedetection.io/assets/35783570/b6a5779f-fd1e-4708-9b2d-21cb97f0bb4f)&lt;/p&gt;
&lt;p&gt;3. See Telegram (or other supported messaging app) notification&lt;/p&gt;
&lt;p&gt;![Screenshot from 2024-04-19 16-02-12](https://github.com/dgtlmoon/changedetection.io/assets/35783570/20877919-d6fe-49f1-bbd2-586e900207f1)&lt;/p&gt;
&lt;p&gt;### Impact
In the PoC I&amp;#39;ve used `id` as payload and Telegram to read the result.  
Attacke…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-4r7v-whpg-8rx3</guid>
    </item>
  </channel>
</rss>
