## 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