Cross-site Scripting (XSS) - Stored in falconchristmas/fpp

Valid

Reported on

Jun 27th 2021


✍️ Description

GET parameter &value= in fppjson.php is vulnerable to stored cross site scripting.

Analysis Trace:

  1. Application takes unvalidated user data in &value= from GET request of /fppjson.php?command=setSetting&plugin=&key=emailserver&value=ytes";</script><script>alert(1)
  2. Now visiting any application page such as GET /backup.php or GET /plugin.php will pop up a stored XSS

POC: https://drive.google.com/file/d/10hjFTEAKAfBgXXhCcarngqlT2mAmc-x9/view?usp=sharing

🕵️‍♂️ Proof of Concept

  1. Make a GET Request of /fppjson.php?command=setSetting&plugin=&key=emailserver&value=ytes";</script><script>alert(1) which will save our XSS payload using &value= parameter.
  2. Now access any page such as: /backup.php and XSS will be pop up.

💥 Impact

The attacker can:

Perform any action within the application that the user can perform. View any information that the user is able to view. Modify any information that the user is able to modify. Initiate interactions with other application users, including malicious attacks, that will appear to originate from the initial victim user.

References

We have contacted a member of the falconchristmas/fpp team and are waiting to hear back a year ago
Greg Hormann confirmed that a fix has been merged on 29301f a year ago
Greg Hormann has been awarded the fix bounty
to join this conversation