diff --git a/core/modules/editor/editor.admin.inc b/core/modules/editor/editor.admin.inc
index 83bc2cf..9c66d5f 100644
--- a/core/modules/editor/editor.admin.inc
+++ b/core/modules/editor/editor.admin.inc
@@ -5,6 +5,7 @@
  * Administration functions for editor.module.
  */
 
+use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\StreamWrapper\StreamWrapperInterface;
 use Drupal\editor\Entity\Editor;
 
@@ -96,6 +97,7 @@ function editor_image_upload_settings_form(Editor $editor) {
     '#field_suffix' => '</div>',
     '#description' => t('Images larger than these dimensions will be scaled down.'),
     '#states' => $show_if_image_uploads_enabled,
+    '#element_validate' => array('editor_image_upload_settings_validate_dimension'),
   );
   $form['max_dimensions']['width'] = array(
     '#title' => t('Width'),
@@ -126,3 +128,20 @@ function editor_image_upload_settings_form(Editor $editor) {
 
   return $form;
 }
+
+/**
+ * #element_validate handler for the "max_dimensions" element in
+ * editor_image_upload_settings_form().
+ *
+ * Validates that both the height and width dimensions have been provided.
+ */
+function editor_image_upload_settings_validate_dimension(array $element, FormStateInterface $form_state) {
+  if (!empty($element['width']['#value']) || !empty($element['height']['#value'])) {
+    foreach (array('width', 'height') as $dimension) {
+      if (!$element[$dimension]['#value']) {
+        $form_state->setError($element[$dimension], t('Both a height and width value must be specified in the %name field.', array('%name' => $element['#title'])));
+        return;
+      }
+    }
+ }
+}
diff --git a/core/modules/editor/src/Tests/EditorSettingsValidationTest.php b/core/modules/editor/src/Tests/EditorSettingsValidationTest.php
new file mode 100644
index 0000000..0cc25e5
--- /dev/null
+++ b/core/modules/editor/src/Tests/EditorSettingsValidationTest.php
@@ -0,0 +1,138 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\editor\Tests\EditorSettingsValidationTest.
+ */
+
+namespace Drupal\editor\Tests;
+
+use Drupal\editor\Entity\Editor;
+use Drupal\filter\Entity\FilterFormat;
+use Drupal\simpletest\WebTestBase;
+
+/**
+ * Tests dimension validation of Editor image settings.
+ *
+ * @group editor
+ */
+class EditorSettingsValidationTest extends WebTestBase {
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = ['editor', 'ckeditor'];
+
+  /**
+   * A user with permission as administer for testing.
+   *
+   * @var \Drupal\user\Entity\User
+   */
+  protected $adminUser;
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+
+    // Add text format.
+    $this->format = FilterFormat::create([
+      'format' => 'basic_html',
+      'name' => 'Basic HTML',
+      'weight' => 0,
+    ]);
+    $this->format->save();
+
+    // Set up text editor.
+    $editor = Editor::create([
+      'format' => 'basic_html',
+      'editor' => 'ckeditor',
+      'image_upload' => [
+        'max_dimensions' => [
+          'width' => '',
+          'height' => '',
+        ],
+      ],
+    ]);
+    $editor->save();
+
+    // Create admin user.
+    $this->adminUser = $this->drupalCreateUser(['administer filters']);
+    $this->drupalLogin($this->adminUser);
+  }
+
+  /**
+   * Tests dimension validation.
+   */
+  public function testEditorSettingsValidation() {
+    // Go to the basic_html editor settings form.
+    $this->drupalGet('admin/config/content/formats/manage/basic_html');
+    $this->assertResponse(200);
+
+    // Set width but don't set height.
+    $this->setDimensions('300');
+    $this->assertRaw(t('Both a height and width value must be specified in the %name field.', ['%name' => 'Maximum dimensions']));
+
+    // Check for the editor "max_dimensions" width and height values.
+    $this->validateDimensions();
+
+    // Go to the basic_html editor settings form.
+    $this->drupalGet('admin/config/content/formats/manage/basic_html');
+    $this->assertResponse(200);
+
+    // Set height but don't set width.
+    $this->setDimensions('', '400');
+    $this->assertRaw(t('Both a height and width value must be specified in the %name field.', ['%name' => 'Maximum dimensions']));
+
+    // Check for the editor "max_dimensions" width and height values.
+    $this->validateDimensions();
+
+    // Go to the basic_html editor settings form.
+    $this->drupalGet('admin/config/content/formats/manage/basic_html');
+    $this->assertResponse(200);
+
+    // Set both height and width.
+    $width = '123';
+    $height = '456';
+    $this->setDimensions($width, $height);
+
+    // Check for the editor "max_dimensions" width and height values.
+    $this->validateDimensions($width, $height);
+
+    // Assert the success message and correct redirection.
+    $this->assertRaw(t('The text format %format has been updated.', ['%format' => 'Basic HTML']));
+    $this->assertUrl('admin/config/content/formats');
+
+    // Go to the basic_html editor settings form.
+    $this->drupalGet('admin/config/content/formats/manage/basic_html');
+    $this->assertResponse(200);
+
+    // Set both height and width to be empty.
+    $this->setDimensions();
+
+    // Check for the editor "max_dimensions" width and height values.
+    $this->validateDimensions();
+
+    // Assert the success message and correct redirection.
+    $this->assertRaw(t('The text format %format has been updated.', ['%format' => 'Basic HTML']));
+    $this->assertUrl('admin/config/content/formats');
+  }
+
+  protected function setDimensions($width = '', $height = '') {
+    $edit = array();
+    $edit['editor[settings][plugins][drupalimage][image_upload][max_dimensions][width]'] = $width;
+    $edit['editor[settings][plugins][drupalimage][image_upload][max_dimensions][height]'] = $height;
+    $this->drupalPostForm(NULL, $edit, t('Save configuration'));
+  }
+
+  protected function validateDimensions($width = '', $height = '') {
+    $editor = Editor::load('basic_html');
+    $image_upload_settings = $editor->getImageUploadSettings();
+    $this->assertEqual($image_upload_settings['max_dimensions']['width'], $width, 'Max width dimension setting equals expected value.');
+    $this->assertEqual($image_upload_settings['max_dimensions']['height'], $height, 'Max height dimension setting equals expected value.');
+  }
+
+}
