
Themify Portfolio Post Security & Risk Analysis
wordpress.org/plugins/themify-portfolio-postAdd a simple Portfolio post type to your site.
Is Themify Portfolio Post Safe to Use in 2026?
Generally Safe
Score 95/100Themify Portfolio Post has a strong security track record. Known vulnerabilities have been patched promptly.
The 'themify-portfolio-post' plugin v1.3.1 presents a mixed security posture. While it demonstrates strengths in areas like the exclusive use of prepared statements for SQL queries and a relatively high percentage of properly escaped output, there are significant concerns regarding its attack surface and historical vulnerability patterns. The presence of 6 AJAX handlers, with 2 lacking authentication checks, creates direct entry points for potential exploitation. Furthermore, the use of the `unserialize` function, identified as a dangerous function, can lead to vulnerabilities if not handled with extreme care, especially when processing untrusted input. The plugin's history of 6 known medium-severity CVEs, all of which are reportedly patched, highlights a recurring trend of vulnerabilities. The commonality of Cross-Site Scripting (XSS) in past issues suggests a historical weakness in input sanitization and output escaping, despite the current static analysis showing an 81% proper escaping rate.
Overall, while the current version appears to have addressed past vulnerabilities, the inherent risks associated with unprotected AJAX endpoints and the legacy of XSS issues warrant caution. The use of `unserialize` also remains a potential point of failure if not meticulously secured against user-controlled data. The plugin's attack surface, particularly its unprotected AJAX handlers, combined with the historical precedent of XSS, suggests that users should remain vigilant and ensure the plugin is consistently updated to the latest secure versions, even if current analyses indicate no critical or high-severity issues.
Key Concerns
- Unprotected AJAX handlers found
- Dangerous function 'unserialize' used
- History of 6 medium CVEs, XSS common
- Unsanitized paths found in taint analysis
Themify Portfolio Post Security Vulnerabilities
CVEs by Year
Severity Breakdown
6 total CVEs
Themify Portfolio Post <= 1.3.0 - Authenticated (Author+) Stored Cross-Site Scripting
Themify Portfolio Post <= 1.2.4 - Authenticated (Editor+) Stored Cross-Site Scripting
Themify Portfolio Post <= 1.2.1 - Authenticated (Contributor+) Stored Cross-Site Scripting via Shortcode
Themify Portfolio Post <= 1.2.0 - Authenticated (Contributor+) Stored Cross-Site Scripting via Shortcode
Themify Portfolio Post <= 1.1.6 - Reflected Cross-Site Scripting
Themify Portfolio Post <= 1.1.5 - Authenticated Stored Cross-Site Scripting
Themify Portfolio Post Code Analysis
Dangerous Functions Found
SQL Query Safety
Output Escaping
Data Flow Analysis
Themify Portfolio Post Attack Surface
AJAX Handlers 6
Shortcodes 1
WordPress Hooks 48
Maintenance & Trust
Themify Portfolio Post Maintenance & Trust
Maintenance Signals
Community Trust
Themify Portfolio Post Alternatives
Portfolio Post Type
portfolio-post-type
This plugin registers a custom post type for portfolio items. It also registers separate portfolio taxonomies for tags and categories.
Portfolio Toolkit
portfolio-toolkit
Adds portfolio functionality to your WordPress website.
Zilla Portfolio
zillaportfolio
A complete portfolio plugin for creative folks
M4WP Portfolio
m4wp-portfolio
A Made4WP plugin. This plugin adds the custom post type "Portfolio" and it's related features such as taxonomies or meta boxes.
Portfolio CPT
portfolio-cpt
Enables a 'Portfolio' type and 'Portfolio Tags' taxonomy.
Themify Portfolio Post Developer Profile
10 plugins · 140K total installs
How We Detect Themify Portfolio Post
Patterns used to identify this plugin on WordPress sites during automated security audits and web crawling.
Asset Fingerprints
/wp-content/plugins/themify-portfolio-post/themify-portfolio-post.php/wp-content/plugins/themify-portfolio-post/includes/system.php/wp-content/plugins/themify-portfolio-post/includes/themify-metabox/themify-metabox.php/wp-content/plugins/themify-portfolio-post/includes/themify-metabox/assets/css/themify-metabox.css/wp-content/plugins/themify-portfolio-post/includes/themify-metabox/assets/js/themify-metabox.js/wp-content/plugins/themify-portfolio-post/includes/themify-metabox/includes/themify-field-types.php/wp-content/plugins/themify-portfolio-post/includes/themify-metabox/assets/images/ui-icons.png/wp-content/plugins/themify-portfolio-post/includes/themify-metabox/assets/js/themify-metabox.jsthemify-portfolio-post/themify-portfolio-post.php?ver=themify-portfolio-post/includes/system.php?ver=themify-portfolio-post/includes/themify-metabox/themify-metabox.php?ver=themify-portfolio-post/includes/themify-metabox/assets/css/themify-metabox.css?ver=themify-portfolio-post/includes/themify-metabox/assets/js/themify-metabox.js?ver=themify-portfolio-post/includes/themify-metabox/includes/themify-field-types.php?ver=HTML / DOM Fingerprints
themify_featimg_removethemify_upload_previewthemify_input_fieldthemify_upload_fieldthemify_upload_buttonsthemify_field_descriptionthemify_video_removethemify_custom_panel_nonce+28 more<!-- Field storing URL --><!-- Parameters for the uploader @var Array --><!-- meta_box description --><!-- Field storing URL -->+5 moredata-attachiddata-audio-removename="themify_metabox_post_thumbnail"name="themify_metabox_post_slider_images"name="themify_metabox_post_gallery_images"name="themify_metabox_post_audio"+20 morethemify_custom_panel_nonce