WP Manifestindependent plugin directory
manifest / updates / update-pilot

Update Pilot WP Registry grade B. Medium-severity findings · 1 findingWP RegistryMedium-severity findings · 1 findingOpen the reportB

[READ ONLY] Get updates from Update Pilot Server

★ 3stars
14release downloads
9composer installs
0.7.0latest · 2mo ago

Install

Download update-pilot.0.7.0.zip From the 0.7.0 release on GitHub, Aug 13, 2026

Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/wpelevator/update-pilot/releases/download/0.7.0/update-pilot.0.7.0.zip

On Packagist as wpelevator/update-pilot:

composer require wpelevator/update-pilot
Updates itself. It ships its own updater (Update URI header), so new versions appear under Dashboard → Updates.

Get updates from all Update Pilot Server supported plugins and themes.

Update settings

Available Hooks

Please note that on WordPress multisite the code using these hooks should be running on the main network site as the WordPress updates happen only there.

Filters:

  • update_pilot__plugins registers plugin update configuration. Each entry accepts plugin, license_key, and signing_key.

Integration Guide

  1. Setup the Update Pilot Server on your server.

  2. Add Update URI header to your plugin https://updates.example.com/wp-json/update-pilot/v1/plugins or theme https://updates.example.com/wp-json/update-pilot/v1/themes.

  3. Optinally, include update-pilot.php in the root of your plugin or theme directory to customize any of the update functionality. This file will be included by the Update Pilot even if the rest of your plugin is disabled.

Releases

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

Tag
Published
Assets
Downloads
0.7.0 latest
Aug 13, 2026 2mo ago
update-pilot.0.7.0.zip
4
Aug 11, 2026 2mo ago
update-pilot.0.6.0.zip
0
May 24, 2026 5mo ago
update-pilot.0.5.3.zip
0
Dec 12, 2025 10mo ago
update-pilot.0.5.2.zip
5
Dec 12, 2025 10mo ago
update-pilot.0.5.1.zip
3
Oct 3, 2025 1 year ago
update-pilot.0.5.0.zip
2
B grade

Security

Update Pilot 0.7.0 · audited by WP Registry

Medium-severity findings.

1 medium
Audited release
0.7.0
Findings
1
Worst severity
medium
Content hash
42beef277070ea0c65a02c93…

Findings

  • medium Network settings save has no capability check and writes any registered option group as site options

    missing_capability

    On multisite, settings_page() posts to edit.php?action=update, which loads wp-admin/network/edit.php and fires network_admin_edit_update. Core does not capability-check that file (only auth_redirect); user_can_access_admin_page() allows pagenow=edit.php because it is not a network menu item. Plugin::action_update_network_settings() then check_admin_referer($option_page.'-options') and, with no current_user_can('update_plugins') or manage_network_options, applies allowed_options starting from an empty array. That filter is populated by every register_setting() call on the request (this plugin's keys plus WordPress register_initial_settings() on rest_api_init: blogname, WPLANG, etc., plus other plugins). For each name it update_site_option()s raw POST or delete_site_option()s if the field is absent. A multisite site administrator who can open Settings → General therefore holds a valid general-options nonce and can write or delete those names in sitemeta. Observable consumer: get_locale() reads get_site_option('WPLANG') as the network default locale when a blog has no WPLANG option. Subscribers cannot mint the nonce. Single-site is unaffected (form posts to options.php, which checks manage_options). The handler also never limits option_page to SETTINGS_SLUG, so it is a network-wide Settings API sink rather than this plugin's own save.

    php/class-plugin.php:937-968

    Recommendation

    Require current_user_can('update_plugins') (or manage_network_options) immediately after the nonce check, matching the settings page capability. Reject option_page values other than SETTINGS_SLUG ('update-pilot'). Iterate only this plugin's registered option names, not the global allowed_options list. Prefer wp_safe_redirect after save.

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.