TGViewer
Четыре луча Четыре луча @four_rays · 4.02K subscribers
Post #27 1.78K
CVE-2024-53376: уязвимость внедрения команд в CyberPanel

В сети опубликовали PoC для CVE-2024-53376. Эксплуатация уязвимости позволяет авторизированным пользователям внедрять произвольные команды через уязвимый параметр phpSelection. Уязвимы все версии CyberPanel до 2.3.8 .

CVSS: 8.8 (High)
CWE-78

Настоятельно рекомендуем обновиться!

Условия эксплуатации

1. Злоумышленник должен быть авторизован.
2. POST-, GET-запросы, содержащие спецсимволы, блокируются внутренним Firewall. Эксплуатация реализуется с использованием других http-методов.

Суть уязвимости состоит в том, что на конечной точке /websites/submitWebsiteCreation существует часть кода, которая выглядит так:
execPath = execPath + " createVirtualHost --virtualHostName " + domain + " --administratorEmail " + adminEmail + " --phpVersion '" + phpSelection + "' --virtualHostUser " + externalApp + " --ssl " + str(1) + " --dkimCheck " + str(1) + " --openBasedir " + str(data['openBasedir']) + ' --websiteOwner "' + websiteOwner + '" --package "' + packageName + '" --tempStatusPath ' + tempStatusPath + " --apache " + apacheBackend + " --mailDomain %s" % (mailDomain) 

ProcessUtilities.popenExecutioner(execPath)


Обратите внимание на параметр phpSelection в execPath: злоумышленник может манипулировать его значением, и оно никак не будет очищаться сервером.

Для успешной эксплуатации злоумышленнику необходимо «выйти из строки»:

1. закрыть , которая идет перед phpSelection,
2. выйти из выполнения операции, например, через ; или | и т.д.,
3. ввести нагрузку, например, touch /tmp/test,
4. закомментировать остальную часть, например, через #.

Вариантов выхода может быть множество!

Пример полезных нагрузок, которые могут передаваться в теле запросов в формате Json:
{"package":"Default","domainName":"cyberpanel.net","adminEmail":"asd@ss.dd","phpSelection":"PHP 8.0'asdasdasdadadadadaadad  $(touch /tmp/test)# ","ssl":0,"websiteOwner":"admin","dkimCheck":0,"openBasedir":0,"mailDomain":0,"apacheBackend":0} 


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


1. Проверяем, что запрос не содержит POST- или GET-методы.
2. Смотрим, что конечная точка в URI содержит /websites/submitWebsiteCreation.
3. Значение параметра body в phpSelection содержит спецсимвол ; например, через подобное регулярное выражение:

[;|&#><$\/\[\]\{\}\(\):`\'\"]+
  • 🔥 8
  • 👍 6
  • 👀 3
  • ❤ 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 →