Share
## https://sploitus.com/exploit?id=F15F797A-D676-546B-915D-54D172E9FE0B
# 🛡️ Исправление для "уязвимости" CVE-2025-67887/86 в модуле Translate 1C-Битрикс

В фиксе реализован рекурсивный сантайзер директорий, который обнаруживает и удаляет любые вариации файлов `.htaccess` после распаковки архива.

### 🔧 Что делает код

```php
/**
 * Removes any variation of .htaccess files from the extracted directory.
 * Covers case sensitivity (.HTACCESS) and trailing dots/spaces.
 * By CyberOK | https://www.cyberok.ru/
 */
private function sanitizeDirectory(Translate\IO\Directory $dir): void
{
    foreach ($dir->getChildren() as $entry) {
        if ($entry instanceof Main\IO\Directory) {
            $this->sanitizeDirectory(new Translate\IO\Directory($entry->getPhysicalPath()));
        } else {
            if (preg_match('/^\.htaccess[.\s]*$/i', $entry->getName())) {
                $entry->delete();
            }
        }
    }
}
```

### 📁 Путь для замены
```
bitrix/modules/translate/lib/controller/asset/extract.php
```

-----

🧯 RCE в 1С-Битрикс, но есть нюанс

15 декабря 2025 вышло публичное раскрытие уязвимостей CVE-2025-67886/CVE-2025-67887 в 1C-Bitrix. Патч на текущий момент не выпущен, PoC доступен.

🔥 Описание уязвимостей
Уязвимости находятся в Translate Module 1C-Bitrix, который позволяет загружать и распаковывать архивы во временную директорию. Однако система не проверяет содержимое архивов перед извлечением — это позволяет злоумышленнику включить в архив PHP-файл и специально созданный .htaccess, добиться его распаковки и выполнения на сервере. 

📌 Важно! Почему это RCE не для всех

• Для успешной эксплуатации злоумышленнику необходимо иметь права “SOURCE” и “WRITE” для Translate Module. Фактически эти права уже подразумевает возможность изменения php-файлов.

• Инфраструктуры, работающие на чистом Nginx (без Apache / без обработчика .htaccess) не подвержены полноценной RCE — PHP-файлы, как правило, отдаются как статика.
В этом случае риск смещается в сторону arbitrary file write в web-доступной зоне, а не гарантированного RCE.

• На связке nginx → Apache или чистом Apache при включённом AllowOverride сценарий ближе к «настоящей» RCE.

📊 Масштаб
По данным СКИПА в Рунете около 2.000.000 инстансов 1С-Bitrix. Потенциально ~10% хостов могут быть подвержены данной проблеме.
Клиенты PentOps были своевременно уведомлены.

📐 Оценка риска
✖️ Официальный CVSS еще не присвоен
✖️Формально CVSS высокий, но на практике — низкий из-за требуемых привилегий.

✖️ Пересчёт CyberOK (базовый CVSS v3.1):
7.2 (Высокий)
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H

✖️ Временная метрика (на сегодня): 
6.8
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H/E:P/RL:U/RC:C

✖️ Рейтинг CyberOK RWD (Real World Danger): 
3/5 — реальный риск эксплуатации

📦 Уязвимые версии
• CVE-2025-67887: все версии 1C-Bitrix <= 25.100.500
• CVE-2025-67886: все версии Bitrix24 <= 25.100.300

🔧 Proof of Concept
Публично доступный PoC подтвержден.

📌 Что смотреть в логах 
Последовательная цепочка загрузки локализации (ключевой индикатор):
1. /bitrix/services/main/ajax.php?action=bitrix%3Atranslate.controller.asset.grabber.upload

2. /bitrix/services/main/ajax.php?action=bitrix%3Atranslate.controller.asset.grabber.extract

3. /bitrix/services/main/ajax.php?action=bitrix%3Atranslate.controller.asset.grabber.apply 

⚠️ Эндпоинт apply — самый критичный, так как именно он возвращает путь к временной директории, где может находиться загруженный shell.

🛡 Рекомендации по защите и проверке
1. Права доступа: 
Срочно проверьте, кому выдан доступ к модулю — cнимите SOURCE/WRITE со всех, кроме узкого круга админов (а лучше временно закройте модуль).

2. Сетевое ограничение: 
Закройте доступ к контроллерам translate (как минимум к обработчикам распаковки) через WAF/ACL, оставив только админские IP/VPN. 

3. Web-сервер: 
Apache: запретите .htaccess в writable-директориях (AllowOverride None) и/или запретите handler’ы/исполнение PHP там, куда может попасть распаковка. 

Nginx: убедитесь, что PHP исполняется только в ожидаемых location’ах (и точно не из upload/tmp/кэшей/временных директорий). 

В аварийном режиме можно дополнительно мониторить и удалять появляющиеся .htaccess в writable-каталогах, но это костыль — правильнее резать на уровне конфигурации.

4. Проверить папку BXTEMP-XXXX-XX-XX  на наличие подозрительных архивов, нестандартных подпапок и .php-файлов. 
Например: /www/upload/tmp/BXTEMP-2025-12-18/16/translate

💣 Выводы
Да, это RCE, однако всё упирается в привилегии и конфиг веб-сервера. Для успешной эксплуатации нужны права, которые и так дают доступ к инструменту PHP command line, инструмент позволяет выполнять php-код без танцев с бубном и загрузкой файлов. Проверьте права модуля «Translate» и запретите исполнение в writable-зонах — это закрывает большую часть реального риска.

🖇 Источники
Advisory KIS-2025-08 / CVE-2025-67887
NGINX Community Blog