WP Manifestindependent plugin directory
manifest / integrations / wp-plugin-mojo

The MOJO Plugin WP Registry grade F. Critical findings · 2 findingsWP RegistryCritical findings · 2 findingsOpen the reportF #3 in Integrations & APIs

WordPress plugin that helps manage a site.

★ 1stars
785krelease downloads
≈87kactive sites
3.3.1latest · 7mo ago

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/newfold-labs/wp-plugin-mojo/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

mojo.com Logo

Mojo WordPress Plugin

WordPress plugin that integrates a WordPress site with Hosting.

Installation

Find the wp-plugin-mojo.zip asset for your preferred version at: https://github.com/newfold-labs/wp-plugin-mojo/releases/.

Alternatively, check the updater endpoint for the latest version at: https://hiive.cloud/workers/release-api/plugins/newfold-labs/wp-plugin-mojo, this also includes a download link to the latest zip file or use this link to access the latest download: https://hiive.cloud/workers/release-api/plugins/newfold-labs/wp-plugin-mojo/download/.

Releasing Updates

This plugin has version number set in 3 distinct places in 2 files:

  • the plugin header info (wp-plugin-mojo/wp-plugin-mojo.php line 14) - this is used in the plugin php code.
  • the constant MOJO_PLUGIN_VERSION (wp-plugin-mojo/wp-plugin-mojo.php line 34) - this is used by WordPress.
  • in the package.json version value (wp-plugin-mojo/package.json line 5) this is used by the build step to place the release files within a matching version directory for convenient cache busting. All 3 instances need to be incremented in conjuction with new releases via github tagging. (In a perfect world, we have a runner increment and/or validate this)

Style Guide

For color pallet and typography usage: https://www.figma.com/file/HlR2CaEJpAn5wNexp4Xf3K/WP-Plugin-Mojo?node-id=0%3A1&t=crLTyppTYg7sraei-1

Releases

21 releases. Each count is every asset in that release; expand a row for the breakdown.

Tag
Published
Assets
Downloads
3.3.1 latest
Feb 25, 2026 7mo ago
mojo-marketplace-wp-plugin.zip
16
Jan 29, 2025 1 year ago
mojo-marketplace-wp-plugin.zip
384,597
Dec 11, 2024 1 year ago
mojo-marketplace-wp-plugin.zip
122,992
Nov 6, 2024 1 year ago
mojo-marketplace-wp-plugin.zip
86,672
Oct 21, 2024 2 years ago
mojo-marketplace-wp-plugin.zip
55,961
Sep 25, 2024 2 years ago
mojo-marketplace-wp-plugin.zip
66,874
Aug 13, 2024 2 years ago
mojo-marketplace-wp-plugin.zip
67,766
Aug 12, 2024 2 years ago
mojo-marketplace-wp-plugin.zip
8
Aug 2, 2024 2 years ago
wp-plugin-mojo.zip
4
Nov 15, 2023 2 years ago
wp-plugin-mojo.zip
16
Oct 18, 2023 3 years ago
wp-plugin-mojo.zip
9
Sep 21, 2023 3 years ago
wp-plugin-mojo.zip
6
Aug 9, 2023 3 years ago
wp-plugin-mojo.zip
9
Jul 26, 2023 3 years ago
wp-plugin-mojo.zip
9
Jun 28, 2023 3 years ago
wp-plugin-mojo.zip
9
Apr 7, 2023 3 years ago
wp-plugin-mojo.zip
11
Feb 8, 2023 3 years ago
wp-plugin-mojo.zip
4
Nov 16, 2022 3 years ago
wp-plugin-mojo.zip
8
Oct 13, 2022 4 years ago
wp-plugin-mojo.zip
10
Oct 12, 2022 4 years ago
wp-plugin-mojo.zip
5
Oct 5, 2022 4 years ago
wp-plugin-mojo.zip
6

Active-site estimate ≈86,670 comes from the median of recent superseded releases. Method.

F grade

Security

The MOJO Plugin 3.3.1 · audited by WP Registry

Critical findings.

1 critical 1 high
Audited release
3.3.1
Findings
2
Worst severity
critical
Content hash
341170cbe2be9026042e1d96…

Findings

  • critical Unauthenticated administrator impersonation via bundled wp-module-data 2.9.3 Bearer HMAC (CVE-2026-80099)

    auth_bypass

    This plugin's GitHub release zip is built with composer install --no-dev (.github/workflows/upload-asset-on-release.yml). composer.lock pins newfold-labs/wp-module-data 2.9.3 (git 8420d78), which Wordfence/CVE-2026-80099 marks vulnerable through 2.9.4 (module patched in 2.9.8). Sibling brand plugins (Bluehost, HostGator, Web.com, Crazy Domains) were listed; this GitHub-distributed plugin was not, but it ships the same module. The module autoloads bootstrap.php and Data::start() registers authenticate() on rest_authentication_errors for every REST request. authenticate() builds salt = sha256(strrev(HiiveConnection::get_auth_token())). get_auth_token() returns get_option('nfd_data_token'), which is false until Hiive connect() succeeds (the default on fresh / failed / 401-cleared installs). PHP coerces strrev(false) to strrev(''), so salt is the public constant sha256('') = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855. Method, URL, raw body, and X-Timestamp are attacker-controlled, so a valid Bearer token is computed offline. On match, wp_set_current_user() is called for $_GET['user_id'] or the first administrator. Observable consequence: unauthenticated POST /wp-json/wp/v2/users as that admin creates a new administrator (complete takeover). Also unlocks /mojo/v1/settings (nfd_coming_soon, auto-updates, homepage) and /newfold-sso/v1/sso (magic login cookie). Condition: nfd_data_token unset/false and NFD_HIIVE_AUTH_TOKEN undefined.

    composer.lock:388-390

    Recommendation

    Bump newfold-labs/wp-module-data to 2.9.8 or later (the patched release for CVE-2026-80099), regenerate composer.lock, and ship a new GitHub release. Refuse authentication when get_auth_token() is empty/false; use hash_equals; do not map a forged Bearer token to an administrator. Sites should rotate administrator passwords/sessions if they ran 3.3.1 without a Hiive token.

  • high Unauthenticated plugin install and activation via nfdplugin query parameter

    missing_auth

    NFD_Plugin_Upgrade::return_instance() is called from bootstrap.php on every request (not wrapped in is_admin()). primary_init() hooks intercept_query_parameter to wp_loaded with no capability check and no nonce. Any visitor who sends GET ?nfdplugin=bluehost or ?nfdplugin=hostgator causes plugin_upgrade(): if the target is missing, install_plugin() runs Plugin_Upgrader::install() against a hardcoded hiive.cloud zip URL using Plugin_Quiet_Upgrader_Skin (no filesystem credential UI); then activate_plugin() runs activation hooks. The ZIP host is not attacker-controlled, so this is not arbitrary plugin install, but it is unauthenticated privileged plugin installation/activation. On typical Newfold/shared hosts with FS_METHOD direct this succeeds without FTP credentials. Activating Bluehost or HostGator then trips NFD_Plugin_Compat_Check incompatible_plugins and self-deactivates Mojo, swapping the hosting plugin. Also CSRF: a logged-in admin who visits an attacker page that loads https://victim/?nfdplugin=bluehost triggers the same path. Observable consequence: unauthorized write under wp-content/plugins/, plugin activation, and replacement of the active hosting plugin.

    inc/plugin-nfd-upgrade.php:82-184

    Recommendation

    Remove the public query-parameter installer, or gate it with is_admin(), current_user_can('install_plugins'), current_user_can('activate_plugins'), and a valid nonce. Do not run Plugin_Upgrader or activate_plugin() on wp_loaded for unauthenticated requests.

WP Registry hashes the installable build and reports on that exact bytes-for-bytes copy. Embargoed findings are withheld until they are disclosed, so a clean verdict means nothing public is outstanding. WP Manifest does not audit code itself.