diff --git a/src/wp-admin/includes/class-wp-upgrader.php b/src/wp-admin/includes/class-wp-upgrader.php
index fd70ba4..b10b646 100644
--- a/src/wp-admin/includes/class-wp-upgrader.php
+++ b/src/wp-admin/includes/class-wp-upgrader.php
@@ -286,6 +286,26 @@ class WP_Upgrader {
 	public function unpack_package( $package, $delete_package = true ) {
 		global $wp_filesystem;
 
+
+		/**
+		 * Filters the install response before the unpacking of the package has started.
+		 *
+		 * Returning a truthy value, or one that could be evaluated as a WP_Error
+		 * will effectively short-circuit the unpacking, returning that value
+		 * instead. This hook could be used to verify a package's signature or
+		 * override the unpacking code entirely.
+		 *
+		 * @since 5.0.0
+		 *
+		 * @param bool        $reply   Whether to bail without returning the package.
+		 *                             Default false.
+		 * @param string      $package The package file name.
+		 * @param WP_Upgrader $this    The WP_Upgrader instance.
+		 */
+		$reply = apply_filters( 'upgrader_pre_unpack', false, $package, $this );
+		if ( false !== $reply )
+			return $reply;
+
 		$this->skin->feedback('unpack_package');
 
 		$upgrade_folder = $wp_filesystem->wp_content_dir() . 'upgrade/';
