Index: src/wp-includes/rest-api/class-wp-rest-request.php
===================================================================
--- src/wp-includes/rest-api/class-wp-rest-request.php	(revision 39475)
+++ src/wp-includes/rest-api/class-wp-rest-request.php	(working copy)
@@ -818,10 +818,13 @@
 				continue;
 			}
 			foreach ( $this->params[ $type ] as $key => $value ) {
-				// if no sanitize_callback was specified, default to rest_parse_request_arg
+				// Determine if we should fallback to rest_parse_request_arg
 				// if a type was specified in the args.
 				if ( ! isset( $attributes['args'][ $key ]['sanitize_callback'] ) && ! empty( $attributes['args'][ $key ]['type'] ) ) {
-					$attributes['args'][ $key ]['sanitize_callback'] = 'rest_parse_request_arg';
+					// Bypass if the callback is null or false.
+					if ( ! array_key_exists( 'sanitize_callback', $attributes['args'][ $key ] ) ) {
+						$attributes['args'][ $key ]['sanitize_callback'] = 'rest_parse_request_arg';
+					}
 				}
 				// Check if this param has a sanitize_callback added.
 				if ( ! isset( $attributes['args'][ $key ] ) || empty( $attributes['args'][ $key ]['sanitize_callback'] ) ) {
Index: tests/phpunit/tests/rest-api/rest-request.php
===================================================================
--- tests/phpunit/tests/rest-api/rest-request.php	(revision 39475)
+++ tests/phpunit/tests/rest-api/rest-request.php	(working copy)
@@ -342,6 +342,34 @@
 		$this->assertEquals( 'rest_invalid_param', $valid->get_error_code() );
 	}
 
+	/**
+	 * @ticket 39042
+	 */
+	public function test_sanitize_params_with_null_callback() {
+		$this->request->set_url_params( array(
+			'some_email' => '',
+			'some_uri'   => 1.23422,
+		));
+
+		$this->request->set_attributes( array(
+			'args' => array(
+				'some_email' => array(
+					'type'              => 'string',
+					'format'            => 'email',
+					'sanitize_callback' => null,
+				),
+				'some_uri' => array(
+					'type'              => 'string',
+					'format'            => 'uri',
+					'sanitize_callback' => false,
+				),
+			),
+		));
+
+		$result = $this->request->sanitize_params();
+		$this->assertEquals( true, $result );
+	}
+
 	public function test_has_valid_params_required_flag() {
 		$this->request->set_attributes( array(
 			'args' => array(
