diff --git a/vendor/magento/module-target-rule/Model/Indexer/TargetRule/AbstractAction.php b/vendor/magento/module-target-rule/Model/Indexer/TargetRule/AbstractAction.php
index 501f1ba..88b96e6 100644
--- a/vendor/magento/module-target-rule/Model/Indexer/TargetRule/AbstractAction.php
+++ b/vendor/magento/module-target-rule/Model/Indexer/TargetRule/AbstractAction.php
@@ -8,22 +8,30 @@ namespace Magento\TargetRule\Model\Indexer\TargetRule;
 
 use Magento\Catalog\Model\Product\Attribute\Source\Status;
 use Magento\Catalog\Model\ResourceModel\Product\CollectionFactory as ProductCollectionFactory;
+use Magento\Eav\Model\Config as EavConfig;
+use Magento\Framework\App\ObjectManager;
+use Magento\Framework\Stdlib\DateTime\TimezoneInterface;
+use Magento\Store\Model\StoreManagerInterface;
+use Magento\TargetRule\Model\ResourceModel\Index;
+use Magento\TargetRule\Model\ResourceModel\Rule\CollectionFactory;
 use Magento\TargetRule\Model\Rule;
+use Magento\TargetRule\Model\RuleFactory;
 
 /**
  * Abstract action reindex class
  *
  * @package Magento\TargetRule\Model\Indexer\TargetRule
+ * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
  */
 abstract class AbstractAction
 {
     /**
-     * @var \Magento\TargetRule\Model\ResourceModel\Rule\CollectionFactory
+     * @var CollectionFactory
      */
     protected $_ruleCollectionFactory;
 
     /**
-     * @var \Magento\TargetRule\Model\RuleFactory
+     * @var RuleFactory
      */
     protected $_ruleFactory;
 
@@ -35,12 +43,12 @@ abstract class AbstractAction
     protected $_resource;
 
     /**
-     * @var \Magento\Store\Model\StoreManagerInterface
+     * @var StoreManagerInterface
      */
     protected $_storeManager;
 
     /**
-     * @var \Magento\Framework\Stdlib\DateTime\TimezoneInterface
+     * @var TimezoneInterface
      */
     protected $_localeDate;
 
@@ -55,20 +63,27 @@ abstract class AbstractAction
     private $productCollectionFactory;
 
     /**
-     * @param \Magento\TargetRule\Model\RuleFactory $ruleFactory
-     * @param \Magento\TargetRule\Model\ResourceModel\Rule\CollectionFactory $ruleCollectionFactory
-     * @param \Magento\TargetRule\Model\ResourceModel\Index $resource
-     * @param \Magento\Store\Model\StoreManagerInterface $storeManager
-     * @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate
+     * @var EavConfig
+     */
+    private EavConfig $eavConfig;
+
+    /**
+     * @param RuleFactory $ruleFactory
+     * @param CollectionFactory $ruleCollectionFactory
+     * @param Index $resource
+     * @param StoreManagerInterface $storeManager
+     * @param TimezoneInterface $localeDate
      * @param ProductCollectionFactory $productCollectionFactory
+     * @param EavConfig|null $eavConfig
      */
     public function __construct(
-        \Magento\TargetRule\Model\RuleFactory $ruleFactory,
-        \Magento\TargetRule\Model\ResourceModel\Rule\CollectionFactory $ruleCollectionFactory,
-        \Magento\TargetRule\Model\ResourceModel\Index $resource,
-        \Magento\Store\Model\StoreManagerInterface $storeManager,
-        \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate,
-        ProductCollectionFactory $productCollectionFactory
+        RuleFactory              $ruleFactory,
+        CollectionFactory        $ruleCollectionFactory,
+        Index                    $resource,
+        StoreManagerInterface    $storeManager,
+        TimezoneInterface        $localeDate,
+        ProductCollectionFactory $productCollectionFactory,
+        ?EavConfig               $eavConfig = null
     ) {
         $this->_ruleFactory = $ruleFactory;
         $this->_resource = $resource;
@@ -76,6 +91,7 @@ abstract class AbstractAction
         $this->_storeManager = $storeManager;
         $this->_localeDate = $localeDate;
         $this->productCollectionFactory = $productCollectionFactory;
+        $this->eavConfig = $eavConfig ?: ObjectManager::getInstance()->get(EavConfig::class);
     }
 
     /**
@@ -124,7 +140,7 @@ abstract class AbstractAction
                 $cacheToClean[] = [
                     $rule,
                     array_unique(
-                    // phpcs:ignore Magento2.Performance.ForeachArrayMerge
+                        // phpcs:ignore Magento2.Performance.ForeachArrayMerge
                         array_merge(
                             $productIds,
                             $matchedProductIds
@@ -206,11 +222,26 @@ abstract class AbstractAction
     private function getExistEnabledProductIds(array $productIds): array
     {
         $productCollection = $this->productCollectionFactory->create();
-        $productCollection->addFieldToFilter('entity_id', ['in' => $productIds])
-            ->addFieldToFilter('status', Status::STATUS_ENABLED);
-        $productIds = $productCollection->getAllIds();
+        $statusAttribute = $this->eavConfig->getAttribute(
+            \Magento\Catalog\Model\Product::ENTITY,
+            'status'
+        );
 
-        return $productIds;
+        $productCollection->addFieldToFilter('entity_id', ['in' => $productIds]);
+
+        $productCollection->getSelect()->join(
+            ['status_table' => $productCollection->getTable('catalog_product_entity_int')],
+            sprintf(
+                'status_table.row_id = e.row_id AND status_table.attribute_id = %d AND status_table.value = %d',
+                (int) $statusAttribute->getAttributeId(),
+                Status::STATUS_ENABLED
+            ),
+            []
+        );
+
+        $productCollection->getSelect()->distinct();
+
+        return $productCollection->getAllIds();
     }
 
     /**
