diff --git a/core/lib/Drupal/Core/Entity/ContentEntityBase.php b/core/lib/Drupal/Core/Entity/ContentEntityBase.php
index b5fccbd..b39d489 100644
--- a/core/lib/Drupal/Core/Entity/ContentEntityBase.php
+++ b/core/lib/Drupal/Core/Entity/ContentEntityBase.php
@@ -433,6 +433,15 @@ public function bundle() {
   /**
    * {@inheritdoc}
    */
+  public function getBundleEntity() {
+    $bundle_entity_type = $node->getEntityType()->getBundleEntityType();
+    $bundle_storage = $this->entityManager()->getStorage($bundle_entity_type);
+    return $bundle_storage->load($this->getEntityKey('bundle'));
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   public function uuid() {
     return $this->getEntityKey('uuid');
   }
diff --git a/core/lib/Drupal/Core/Entity/ContentEntityInterface.php b/core/lib/Drupal/Core/Entity/ContentEntityInterface.php
index 0c3f04b..d37deb2 100644
--- a/core/lib/Drupal/Core/Entity/ContentEntityInterface.php
+++ b/core/lib/Drupal/Core/Entity/ContentEntityInterface.php
@@ -23,6 +23,15 @@
 interface ContentEntityInterface extends \Traversable, FieldableEntityInterface, RevisionableInterface, TranslatableInterface {
 
   /**
+   * Gets the bundle entity of the entity.
+   *
+   * @return \Drupal\Core\Entity\EntityInterface|null
+   *   The config entity which is the bundle of the entity, or NULL if the
+   *   entity does not have bundle entities.
+   */
+  public function getBundleEntity();
+
+  /**
    * Determines if the current translation of the entity has unsaved changes.
    *
    * If the entity is translatable only translatable fields will be checked for
