You can use ACF to do this.
- Set up your custom field for the user profile.
- Use the acf_form() to produce a form containing the field on your front end for the user to interact with.
- Customise your acf_form() arguments to use a “simple” uploader (this will not expose WP Media Library to users then)
Example:
$field_arguments = array(
'post_id' => 'user_'.$current_user->ID,
'field_groups' => array(111), // Replace with ACF Group you created
'form' => true,
'uploader' => 'basic', // This is what hides the WP Media Library to the user
'submit_value' => 'Submit'
);