Cross-site Scripting (XSS) - Stored in projectsend/projectsend


Reported on

Jul 2nd 2021

✍️ Description

section parameter at Line 331 of email-templates.php sends unvalidated data to a web browser, which can result in the browser executing malicious code.

In this case the data is sent at builtin_echo() in email-templates.php at line 331

🕵️‍♂️ Proof of Concept

Data enters in application through an untrusted source.

$section = ( !empty( $_GET['section'] ) ) ? $_GET['section'] : $_POST['section'];

The data is included in dynamic content that is sent to a web user without being validated.

<input type="hidden" name="section" value="<?php echo $section; ?>">

Providing payload as: section="><script>alert(1)</script> will result into XSS.

💥 Impact

The malicious content sent to the web browser often takes the form of a segment of JavaScript, but may also include HTML, Flash or any other type of code that the browser may execute. The variety of attacks based on XSS is almost limitless, but they commonly include transmitting private data like cookies or other session information to the attacker, redirecting the victim to web content controlled by the attacker, or performing other malicious operations on the user's machine under the guise of the vulnerable site.

We have contacted a member of the projectsend team and are waiting to hear back 5 months ago
Akshay Jain
4 months ago


Hi team, any updates?

Ignacio Nelson validated this vulnerability 4 months ago
Akshay Jain has been awarded the disclosure bounty
The fix bounty is now up for grabs
Ignacio Nelson confirmed that a fix has been merged on 7b4793 4 months ago
Ignacio Nelson has been awarded the fix bounty