BW Portfolio Security & Risk Analysis

wordpress.org/plugins/bw-portfolio

The BW Portfolio plugin allows you to easily add portfolio items in your WordPress Dashboard, and you can use a handy shortcode to display your portfo …

20 active installs v1.2.3 PHP 7.0+ WP 5.2+ Updated May 2, 2022
gridmodalportfolioshortcode
85
A · Safe
CVEs total0
Unpatched0
Last CVENever
Download
Safety Verdict

Is BW Portfolio Safe to Use in 2026?

Generally Safe

Score 85/100

BW Portfolio has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 4yr ago
Risk Assessment

The bw-portfolio plugin v1.2.3 demonstrates several good security practices, including the absence of dangerous functions, file operations, external HTTP requests, and a complete lack of raw SQL queries, with all queries utilizing prepared statements. The output escaping is also quite robust, with nearly all outputs properly escaped. However, the plugin has notable weaknesses related to its attack surface and permission checks.

Specifically, the plugin exposes two REST API routes without any associated permission callbacks. This is a significant concern, as it creates potential entry points for unauthorized access or manipulation of data if the underlying functionality is sensitive. The lack of nonce checks and capability checks on these unprotected REST API routes exacerbates this risk. While there are no recorded vulnerabilities or known CVEs, suggesting a historically stable plugin, this current vulnerability posture does not negate the immediate risks presented by the unprotected REST API endpoints. The plugin needs to implement proper authorization checks for these exposed routes to mitigate potential security incidents.

Key Concerns

  • REST API routes without permission callbacks
  • Unprotected AJAX handlers
  • Missing nonce checks
  • Minor output escaping issue
Vulnerabilities
None known

BW Portfolio Security Vulnerabilities

No known vulnerabilities — this is a good sign.
Version History

BW Portfolio Release Timeline

v1.2.3Current
v1.2.2
v1.2.1
v1.2.0
v1.1.7
v1.1.6
v1.1.5
v1.1.4
v1.1.3
v1.1.2
v1.1.1
Code Analysis
Analyzed Mar 16, 2026

BW Portfolio Code Analysis

Dangerous Functions
0
Raw SQL Queries
0
0 prepared
Unescaped Output
1
8 escaped
Nonce Checks
0
Capability Checks
2
File Operations
0
External Requests
0
Bundled Libraries
0

Output Escaping

89% escaped9 total outputs
Attack Surface
2 unprotected

BW Portfolio Attack Surface

Entry Points3
Unprotected2

REST API Routes 2

POST/wp-json/bw-portfolio/v1/view-portfolio-itembw-portfolio.php:53
POST/wp-json/bw-portfolio/v1/filter-sort-portfolio-itemsbw-portfolio.php:60

Shortcodes 1

[bw_portfolio] bw-portfolio.php:318
WordPress Hooks 4
actionwp_enqueue_scriptsbw-portfolio.php:33
actionrest_api_initbw-portfolio.php:50
actioninitbw-portfolio.php:192
actioninitbw-portfolio.php:315
Maintenance & Trust

BW Portfolio Maintenance & Trust

Maintenance Signals

WordPress version tested5.9.13
Last updatedMay 2, 2022
PHP min version7.0
Downloads6K

Community Trust

Rating0/100
Number of ratings0
Active installs20
Developer Profile

BW Portfolio Developer Profile

Ben HartLenn

1 plugin · 20 total installs

84
trust score
Avg Security Score
85/100
Avg Patch Time
30 days
View full developer profile
Detection Fingerprints

How We Detect BW Portfolio

Patterns used to identify this plugin on WordPress sites during automated security audits and web crawling.

Asset Fingerprints

Asset Paths
/wp-content/plugins/bw-portfolio/assets/css/bw-portfolio-style.css/wp-content/plugins/bw-portfolio/assets/js/bw-portfolio-script.js
Script Paths
/wp-content/plugins/bw-portfolio/assets/js/bw-portfolio-script.js
Version Parameters
bw-portfolio/assets/css/bw-portfolio-style.css?ver=bw-portfolio/assets/js/bw-portfolio-script.js?ver=

HTML / DOM Fingerprints

CSS Classes
bw-portfolio-gridbw-portfolio-itembw_portfolio_item_idbw_portfolio_tagbwbh_portfolio_filter_tagbwbh_portfolio_sortbwbh_modal_offbwbh_show_tags+1 more
Data Attributes
data-bw-portfolio-item-iddata-bw-portfolio-tagdata-bwbh-portfolio-filter-tagdata-bwbh-portfolio-sortdata-bwbh-modal-offdata-bwbh-show-tags+1 more
JS Globals
bwbh_portfolio_js_vars
REST Endpoints
/wp-json/bw-portfolio/v1/view-portfolio-item/wp-json/bw-portfolio/v1/filter-sort-portfolio-items
Shortcode Output
[bw_portfolio][bw_portfolio_item]
FAQ

Frequently Asked Questions about BW Portfolio