Supress listing of virtual pages

The only way is to use the filter in the Recents

from developer.wordpress.org WP_Widget_Recent_Posts::widget

$r = new WP_Query( apply_filters( 'widget_posts_args', array(
    'posts_per_page'      => $number,
    'no_found_rows'       => true,
    'post_status'         => 'publish',
    'ignore_sticky_posts' => true
) ) );

Best way will be, to add a category to the post your submit from frontend.

add_filter('widget_posts_args', 'wpse_244383');

function wpse_244383(){
    return array(
        'posts_per_page'      => $number,
        'no_found_rows'       => true,
        'post_status'         => 'publish',
        'ignore_sticky_posts' => true,
        'cat' => '-12' // term_id of the category you want to exclude
    );
}