
User Photo Security & Risk Analysis
wordpress.org/plugins/user-photoAllows a user to associate a photo with their account and for this photo to be displayed in their posts and comments.
Is User Photo Safe to Use in 2026?
Mostly Safe
Score 84/100User Photo is generally safe to use though it hasn't been updated recently. 2 past CVEs were resolved. Keep it updated.
The user-photo plugin version 0.9.10 presents a mixed security posture. On the positive side, the static analysis reveals a very limited attack surface with no apparent direct entry points like AJAX handlers, REST API routes, or shortcodes that are unprotected. Furthermore, all identified SQL queries are properly prepared, and there are no critical or high-severity taint flows, suggesting good data handling in these areas. The plugin also implements some nonce and capability checks, which are essential security mechanisms.
However, significant concerns arise from the output escaping and the plugin's historical vulnerability record. Only 17% of output operations are properly escaped, indicating a high risk of Cross-Site Scripting (XSS) vulnerabilities. This is directly corroborated by its vulnerability history, which includes two past CVEs, one of which was a high-severity XSS issue. The absence of recent vulnerabilities might suggest the plugin has not been actively maintained or tested in recent years, especially considering the last vulnerability was in 2012. The file operation count, while not inherently problematic, warrants careful consideration given the past unrestricted upload vulnerability type.
In conclusion, while the current static analysis does not reveal immediate critical vulnerabilities in terms of attack surface or data handling, the poor output escaping and the history of severe vulnerabilities, particularly XSS and unrestricted uploads, present a substantial ongoing risk. The lack of recent updates and the dated vulnerability history are strong indicators that this plugin should be treated with caution and ideally updated or replaced.
Key Concerns
- Low output escaping percentage
- History of high severity CVEs
- History of medium severity CVEs
- Past unrestricted file upload vulnerability type
- Dated vulnerability history (2012)
User Photo Security Vulnerabilities
CVEs by Year
Severity Breakdown
2 total CVEs
User Photo <= 0.9.5 - Cross-Site Scripting
User Photo <= 0.9.4 - Arbitrary File Upload
User Photo Code Analysis
SQL Query Safety
Output Escaping
Data Flow Analysis
User Photo Attack Surface
WordPress Hooks 12
Maintenance & Trust
User Photo Maintenance & Trust
Maintenance Signals
Community Trust
User Photo Alternatives
Instant Images – One-click Image Uploads from Unsplash, Openverse, Pixabay, Pexels, and Giphy
instant-images
One-click uploads from Unsplash, Openverse, Pixabay, Pexels, and Giphy directly to your WordPress media library.
Simple Local Avatars
simple-local-avatars
Adds an avatar upload field to user profiles. Generates requested sizes on demand just like Gravatar!
FancyBox for WordPress
fancybox-for-wordpress
Seamlessly integrates FancyBox lightbox into your WordPress blog: Upload, activate, and you're done. Additional configuration optional.
Lightbox with PhotoSwipe
lightbox-photoswipe
Integration of PhotoSwipe (http://photoswipe.com) for WordPress.
Free Assets Library – Openverse/Pixabay 600+ Million Images
free-images
Free Assets Library is the #1 WordPress plugin which provides 600 Million FREE Images with 90,000+ downloads 🚀
User Photo Developer Profile
22 plugins · 437K total installs
How We Detect User Photo
Patterns used to identify this plugin on WordPress sites during automated security audits and web crawling.
Asset Fingerprints
/wp-content/plugins/user-photo/css/user-photo.css/wp-content/plugins/user-photo/js/user-photo.js/wp-content/plugins/user-photo/js/user-photo.jsuser-photo/css/user-photo.css?ver=user-photo/js/user-photo.js?ver=HTML / DOM Fingerprints
userphoto-avatarphotouserphoto_approvalstatususerphoto_image_fileuserphoto_thumb_fileuserphoto_image_widthuserphoto_thumb_widthuserphoto_image_height+1 moreuserphoto_using_avatar_fallbackuserphoto_prevent_override_avatar