Skip to main content

Bitrix excel RCE

·317 words·2 mins·
Author
FaLLenSkiLL
Table of Contents

Описание уязвимости
#

21 марта стало известно о новой RCE уязвимости в модулях стороннего разработчика Esolutions для CMS Bitrix. (BDU:2025-03006) В этот раз под раздачу попали плагины “Экспорт/Импорт товаров в Excel”. Уязвимость оценили на 8.8/10 баллов по CVSS 3.0.

Причем RCE подвержены сразу 6 модулей, а именно:

  1. Импорт из Excel - версии от 2.4.7 до 2.8.9
  2. Экспорт в Excel - версии от 0.8.2 до 1.2.2
  3. Экспорт/Импорт товаров в Excel - версии от 2.4.7 до 2.8.9
  4. Импорт из XML и YML - версии от 0.6.8 до 1.1.6
  5. Массовая обработка элементов инфоблока - версии от 0.5.9 до 0.7.7
  6. Многофункциональный экспорт/импорт в Excel - версии от 0.2.2 до 0.4.8

Cуммарно все эти модули были установлены более 6000 раз, что значительно увеличвает поверхность атаки.

Список уязвимых эндпоинтов:

/bitrix/modules/kda.importexcel/admin/iblock_import_excel_cron_settings.php
/bitrix/modules/kda.exportexcel/admin/iblock_export_excel_cron_settings.php
/bitrix/modules/esol.importexportexcel/admin/iblock_import_excel_cron_settings.php
/bitrix/modules/esol.importexportexcel/admin/iblock_export_excel_cron_settings.php
/bitrix/modules/esol.importxml/admin/import_xml_cron_settings.php
/bitrix/modules/esol.massedit/admin/profile.php
/bitrix/modules/esol.allimportexport/admin/cron_settings.php
/tmp_patcher911.php

Разработчик рекомендует обновить уязвимые модули либо самостоятельно добавить в самое начало уязвимых файлов модулей “заплатку”:

<?if(isset($_REQUEST['path']) && strlen($_REQUEST['path']) > 0)
{
	header((stristr(php_sapi_name(), 'cgi') !== false ? 'Status: ' : $_SERVER['SERVER_PROTOCOL'].' ').'403 Forbidden');
	die();
}
?>

Помимо этого, нам предлагают воспользоваться “Патчером”, который автоматически исправляет уязвимости. По умолчанию этот патчер имеет название tmp_patcher911.php. Возможно кто-то после фикса забудет его убрать с сайта. С исходным кодом патчера можете ознакомиться перейдя по ссылке.

Nuclei Checker
#

Для того, чтобы оперативно узнать, использует ли целевое веб-приложение уязвимые модули, был написан небольшой чекер под nuclei:

id: bitrix-esol-excel-rce

info:
  name: Bitrix Esol Excel RCE search
  author: @shit_sec
  severity: critical
  description: Поиск потенциальных точек RCE в модулях импорта/экспорта Bitrix
  tags: bitrix,exposure,cron

requests:
  - method: GET
    path:
      - "{{BaseURL}}/bitrix/modules/kda.importexcel/admin/iblock_import_excel_cron_settings.php"
      - "{{BaseURL}}/bitrix/modules/kda.exportexcel/admin/iblock_export_excel_cron_settings.php"
      - "{{BaseURL}}/bitrix/modules/esol.importexportexcel/admin/iblock_import_excel_cron_settings.php"
      - "{{BaseURL}}/bitrix/modules/esol.importexportexcel/admin/iblock_export_excel_cron_settings.php"
      - "{{BaseURL}}/bitrix/modules/esol.importxml/admin/import_xml_cron_settings.php"
      - "{{BaseURL}}/bitrix/modules/esol.massedit/admin/profile.php"
      - "{{BaseURL}}/bitrix/modules/esol.allimportexport/admin/cron_settings.php"
      - "{{BaseURL}}/bitrix/admin/esol_massedit_profile.php"
      - "{{BaseURL}}/bitrix/admin/kda_export_excel_cron_settings.php"
      - "{{BaseURL}}/bitrix/admin/esol_allimportexport_cron_settings.php"
      - "{{BaseURL}}/bitrix/admin/kda_import_excel_cron_settings.php"
      - "{{BaseURL}}/bitrix/admin/esol_export_xml_cron_settings.php"
      - "{{BaseURL}}/bitrix/admin/esol_import_xml_cron_settings.php"

    matchers-condition: and
    matchers:
      - type: status
        status:
          - 200

      - type: word
        part: body
        words:
          - "404"
          - "Not found"
          - "Авторизация"
          - "Не найдено"
        negative: true

      - type: dsl
        dsl:
          - "len(body) > 1"

References
#