Codeby
Блог сообщества Кодебай Чат: @codeby_one Форум: codeby.net Обучение: codeby.academy CTF: hackerlab.pro VK: vk.com/codeby YT: clck.ru/XG99c Сотрудничество: @KinWiz Реклама: @Savchenkova_Valentina
Mostrar más📈 Análisis del canal de Telegram Codeby
El canal Codeby (@codeby_sec) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 36 839 suscriptores, ocupando la posición 3 510 en la categoría Tecnologías y Aplicaciones y el puesto 17 218 en la región Rusia.
📊 Métricas de audiencia y dinámica
Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 36 839 suscriptores.
Según los últimos datos del 26 agosto, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de 55, y en las últimas 24 horas de 5, conservando un alto alcance.
- Estado de verificación: No verificado
- Tasa de interacción (ER): El promedio de interacción de la audiencia es 6.61%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 3.93% de reacciones respecto al total de suscriptores.
- Alcance de las publicaciones: Cada publicación recibe en promedio 2 435 visualizaciones. En el primer día suele acumular 1 448 visualizaciones.
- Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 14.
- Intereses temáticos: El contenido se centra en temas clave como edr, api, вектор, mitre, att&ck.
📝 Descripción y política de contenido
El autor describe el recurso como un espacio para expresar opiniones subjetivas:
“Блог сообщества Кодебай
Чат: @codeby_one
Форум: codeby.net
Обучение: codeby.academy
CTF: hackerlab.pro
VK: vk.com/codeby
YT: clck.ru/XG99c
Сотрудничество: @KinWiz
Реклама: @Savchenkova_Valentina”
Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 27 agosto, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.
semgrep с правилами p/security-audit и p/owasp-top-ten — получаете JSON с координатами подозрительных мест
• Строите граф зависимостей через tree-sitter или cscope, чтобы понять, какие файлы связаны с находками
• Выделяете attack surface — HTTP-хендлеры, парсеры, десериализаторы идут первыми
• Скармливаете LLM конкретные файлы с контекстом вызовов и типов, а не весь репозиторий
Скармливать модели весь codebase — антипаттерн. Даже 128K токенов — это порядка 300–400 страниц кода. Средний open-source проект сильно больше. Модель подавится и выдаст generic-ответ из учебника.
🔑 Ещё одна ловушка — промпты. «Найди уязвимости в этом коде» — прямой путь к мусору на выходе. Рабочий промпт строится по блокам: роль и ограничение, конкретный контекст проекта, тип уязвимости, который ищете, формат ответа и требование обосновать каждый вердикт ссылкой на строку кода. Без структуры модель галлюцинирует.
Где LLM реально хорош: внутренний пентест с доступом к исходникам и bug bounty по open-source целям. Публичный код плюс история коммитов дают модели максимум контекста. Где плохо: аудит бинарей без исходников — декомпилированный код теряет семантику, и модель плывёт.
🛡️ Важный момент для NDA-проектов: код, отправленный в облачный API, покидает ваш контур. Для таких задач — только локальные модели через Ollama с DeepSeek Coder или CodeLlama.
В полной статье — детальный разбор каждого шага workflow, готовые шаблоны промптов и конкретные примеры с реальным кодом.
https://codeby.net/threads/llm-dlya-poiska-uyazvimostei-v-kode-prakticheskii-workflow-ot-sast-do-poc.93750/mcp-server-git. Одна из них (CVE-2025-68143) позволяла через инструмент git_init превратить любую директорию в git-репозиторий, а затем читать из неё файлы через git show. Решение от мейнтейнеров? Полностью удалили инструмент из кодовой базы. Другая (CVE-2025-68144) — argument injection: параметры git_diff и git_checkout передавались в CLI без санитизации. Значение вроде --output=/etc/passwd интерпретировалось как опция командной строки.
Каждая уязвимость по отдельности — CVSS 6.3–6.5, средний уровень. Но в цепочке с prompt injection импакт возрастает кратно: вредоносная инструкция в README репозитория заставляет LLM вызвать уязвимый инструмент, а разработчик жмёт «Разрешить» на автопилоте — десятки раз в день.
🎯 С точки зрения kill chain MCP-серверы закрывают сразу несколько этапов:
• Initial Access — удалённый сервер на Streamable HTTP без аутентификации
• Execution — command injection через tool-параметры
• Credential Access — чтение .env, SSH-ключей, API-токенов
• Collection — path traversal к исходникам и конфигам CI/CD
Самый реалистичный сценарий — внутренний пентест или red team с доступом к сегменту разработки. Машина разработчика с MCP-сервером — это одновременно точка входа, источник креденшалов и плацдарм для lateral movement.
Полный разбор с конкретными PoC, цепочками атак и рекомендациями по защите — в статье на форуме.
https://codeby.net/threads/uyazvimosti-mcp-serverov-rce-ssrf-i-in-yektsii-cherez-odin-post-zapros.93746/OkHttp3 с CertificatePinner, плюс кастомную проверку целостности APK при старте. Стандартный скрипт молча отваливается, а вы даже не понимаете почему.
Именно так начался один из пентестов e-commerce маркетплейса. Четыре часа ушло на декомпиляцию в jadx, поиск конкретного класса с пиннингом и написание точечного хука. После этого IDOR в платёжном API нашёлся за 15 минут. Вся суть мобильного пентеста в одном примере.
🔧 Вот что ломается чаще всего на старте:
• Версия frida-server не совпадает с frida-tools — причина ошибки «Failed to spawn» в каждом втором обращении на форумах. Проверяйте через frida --version и качайте сервер строго той же версии.
• Образ эмулятора с надписью «Google Play» — production-сборка, root недоступен в принципе. Нужен образ с Google APIs, но без Google Play. Классическая ловушка, в которую попадают все хотя бы раз.
• На Android 7+ пользовательские CA-сертификаты не доверяются приложениями по умолчанию. Даже без SSL pinning трафик не пойдёт через Burp, пока сертификат не окажется в системном хранилище /system/etc/security/cacerts/.
📱 Отдельная боль — эмулятор-детекция. Приложение проверяет ro.hardware, ro.product.model, ищет QEMU-артефакты и отказывается работать. Решение — физический Pixel с unlocked bootloader и Magisk. На практике удобно держать оба варианта: эмулятор для статического анализа, физическое устройство — когда эмулятор не проходит проверки.
Лайфхак с Magisk: вместо десяти команд для установки сертификата Burp в системный раздел — поставьте модуль MagiskTrustUserCerts. Устанавливаете сертификат штатно через настройки безопасности, модуль перемещает его в системное хранилище при перезагрузке. Три клика вместо десяти команд.
🎯 Главное, что стоит помнить: APK — это обёртка, цель — серверное API. Root-detection, anti-tampering, SSL pinning — всё это клиентские защиты категорий MASVS-RESILIENCE и MASVS-NETWORK. Они усложняют тестирование, но серверные уязвимости никуда не деваются. Сервер остаётся дырявым вне зависимости от того, проверяет ли клиент наличие su-бинаря.
В полной статье — пошаговая настройка окружения, конкретные команды для каждого этапа и разбор случаев, когда стандартный tooling молча ломается. Всё, что нужно, чтобы дойти от чистого эмулятора до перехваченного трафика.
https://codeby.net/threads/pentest-android-prilozhenii-ot-nastroiki-okruzheniya-do-obkhoda-root-detection-i-ssl-pinning.93723/TSV — медные столбы диаметром 5–10 мкм, пронизывающие кремний. При расстояниях между слоями порядка 50 мкм паразитная ёмкостная связь достигает единиц фемтофарад — на частотах сотен мегагерц этого хватает для наблюдаемой утечки.
🎯 Три канала утечки, которых нет в монолитных SoC
• Substrate coupling — через общую подложку интерпозера (ёмкостная и резистивная связь)
• TSV coupling — через взаимную индуктивность вертикальных переходников в 3D-стеках
• RF/EM coupling — через ближнее электромагнитное поле при наличии антенного элемента на одном из чиплетов
Самое тревожное — модель угроз. Современные чиплетные системы собираются из компонентов разных вендоров. Вычислительный die от одного производителя, память от другого, коммуникационный чиплет от третьего. Достаточно скомпрометировать один элемент в supply chain — и вредоносный чиплет становится внутренним сенсором, который снимает side-channel трассы с расстояния в сотни микрон. Это на порядки ближе, чем любой внешний пробник.
🛡️ UCIe-интерконнект между чиплетами тоже под ударом: сигналы физически покидают кристалл, проходят через интерпозер и имеют значительно бо́льшую амплитуду, чем внутренние on-chip сигналы. Каждый такой переход — наблюдаемая поверхность атаки.
В полной статье разобрали физику утечек, формальную модель угроз и практический workflow корреляционного анализа трасс.
https://codeby.net/threads/side-channel-ataki-na-chiplety-novaya-fizicheskaya-poverkhnost-ataki-v-2-5d-3d-sistemakh.93732/ioctl(fd, BINDER_WRITE_READ, &bwr). Тот же самый вызов, что и при запросе версии ОС. Или при чтении контактов. Или при получении GPS-координат. Для ядра всё это — одинаковые байты в Binder-транзакции.
Это и есть семантический разрыв — фундаментальная проблема аудита Android, над которой бьются больше десяти лет. В отличие от десктопного Linux, где sendto() прямо говорит аудитору «тут отправка данных», на Android всё проходит через цепочку: приложение → libbinder.so → ioctl → Binder-драйвер → system_server. И на уровне системных вызовов любое действие выглядит одинаково.
🔍 Существующие решения делятся на два лагеря, и оба проигрывают:
• Модификация ОС (ClearScope и аналоги) — хуки внедряются прямо в Binder-драйвер и framework. Устойчиво к обходу, но каждое обновление Android требует ручного переноса патчей. Архитектурный тупик для реальных деплоев.
• User-space инструментация (BPFroid, Frida) — не трогает ядро, но обходится. Приложение с native-кодом может дёрнуть ioctl() на /dev/binder напрямую, минуя все хуки. Малварь так и делает.
Исследователи из TU Darmstadt и Athens University разорвали эту дихотомию проектом WOOTdroid. Идея: eBPF-программы загружаются в ядро без его пересборки, цепляются к стабильным tracepoints и перехватывают Binder-транзакции на уровне драйвера. Но в отличие от сырой трассировки, WOOTdroid ещё и декодирует содержимое — имена методов, типизированные аргументы, целевые сервисы.
📊 Цифры с Pixel 9 на Android 16 впечатляют: eBPF-трассировщик перехватил на 33% больше системных вызовов, чем штатный ftrace. При этом overhead по Geekbench — не выше 3.6%. Никаких патчей к ядру, никакой пересборки AOSP, никаких инъекций в процесс приложения.
Почему это важно на практике? Потому что малварь всё чаще использует native-код для обхода user-space мониторинга. Формирует Parcel вручную, вызывает ioctl() напрямую — и Frida, и BPFroid пропускают транзакцию полностью. WOOTdroid сидит в ядре и видит всё, независимо от того, как именно приложение сформировало вызов.
⚡ Отдельно интересен контринтуитивный момент: eBPF-программы работают в sandbox внутри ядра, проходят верификацию перед загрузкой и не могут уронить систему. По сути — kernel-level аудит с user-space безопасностью деплоя.
Полный разбор архитектуры, механики Binder-декодирования и результатов бенчмарков — в развёрнутой статье на форуме.
https://codeby.net/threads/wootdroid-audit-android-binder-ipc-bez-semanticheskogo-razryva.93727/Dsniff — набор инструментов для перехвата и анализа сетевого трафика. Инструментарий позволяет перехватывать пароли, сессионные cookie, анализировать протоколы прикладного уровня и выполнять различные атаки типа «man-in-the-middle» (MITM) в локальных сетях.☁️Функциональность - Перехват паролей и сессионных данных в открытом виде (FTP, Telnet, HTTP, POP, IMAP, SMTP, SNMP, LDAP, NFS, и другие) - Извлечение cookies, HTTP-заголовков и URL - Определение протоколов независимо от порта благодаря Deep Packet Inspection (-m) ⬇️Установка
sudo apt install dsniff
Проверка
dsniff -h
⏺️Базовый перехват на интерфейсе eth0
sudo dsniff -i eth0
⏺️Глубокий анализ пакетов (определение протоколов на любых портах)
sudo dsniff -i eth0 -m
⏺️Исключение HTTPS-трафика из перехвата
sudo dsniff -i eth0 -m "not port 443"
🧿Инструмент необходим для:
- Аудита безопасности локальных сетей
- Обнаружения передачи паролей в открытом виде
- Анализа HTTP-трафика и cookie-сессий
- Демонстрации уязвимостей сетевых протоколов
#dsniff #sniffer #mitm #pentest #tool
🔗 Все наши каналы 🔁 Все наши чаты 🪧 Для связи с менеджеромclip-path с нулевой видимой областью. Через 5+ секунд setTimeout запускает плавное раскрытие. Детектор к этому моменту уже сделал снимок пустой страницы, не нашёл совпадений с брендами и пометил её как безопасную. А реальный пользователь видит полноценный клон PayPal или Google и спокойно вводит пароль.
🎯 Что делает эту атаку особенно опасной:
• Не нужно знать архитектуру детектора — работает в black-box режиме
• Не нужна серверная логика — хватает пары строк CSS и JS
• Не нужны adversarial perturbations — никаких модификаций пикселей
• Пользователь ничего не замечает — страница выглядит нормально
Самое интересное: систематический обзор литературы показал, что ни одна предыдущая работа по adversarial robustness фишинг-детекторов не рассматривала timing-вектор. Все исследователи предполагали, что скриншот захватывается корректно. Никто просто не подумал, что атакующий может сыграть на секундомере.
Фикс кажется очевидным — увеличить время ожидания перед снимком. Но это создаёт новую проблему: при массовом сканировании тысяч URL каждая лишняя секунда ожидания превращается в часы простоя pipeline.
Полный разбор обеих стратегий отложенного рендеринга и возможных контрмер — в статье на форуме.
https://codeby.net/threads/obkhod-ml-detektorov-fishinga-cherez-otlozhennyi-rendering-ot-100-k-0-detektsii.93724/Watcher — open-source инструмент от Thales CERT для автоматического отслеживания изменений на сайтах, документах, RSS-лентах и других источниках. Он помогает находить новые IOC, изменённые advisories, утечки и другие артефакты для OSINT, Threat Intelligence и DFIR.Основные возможности ↗️ Мониторинг изменений веб-страниц и документов ↗️ Поддержка сайтов, RSS, PDF и других источников ↗️ Поиск новых IOC, доменов, IP и артефактов ↗️ Уведомления о найденных изменениях ↗️ История изменений и diff-анализ ↗️ Удобный web-интерфейс для расследований Примеры использования 0️⃣ Инициализация окружения:
git clone https://github.com/thalesgroup-cert/watcher.git
cd watcher/deployment
make init
1️⃣ Запуск платформы:
make up
2️⃣ Первичная настройка базы:
make migrate
make superuser
make populate-db
3️⃣ После запуска web-интерфейс будет доступен по адресу:
http://localhost:9002Watcher умеет: 🔎 Следить за множеством источников одновременно HTML-страницы, PDF-документы, RSS/Atom-ленты, API endpoints и другие web-ресурсы. 💻 Автоматически извлекать и индексировать контент Каждый собранный артефакт сохраняется в базе и становится доступен для поиска, фильтрации и анализа. 🕸 Хранить историю изменений Watcher сохраняет предыдущие версии контента и показывает diff между изменениями, что удобно для расследований. 🎯 Организовывать мониторинг пакетами (batches) Источники можно группировать по кампаниям, threat actors, вендорам или направлениям расследования. 🎇 Работает в фоне 24/7 После развёртывания Watcher самостоятельно собирает, индексирует и обновляет данные без ручного вмешательства. #osint #threatintel #dfir #threathunting #blueteam #monitoring #cybersecurity #infosec #opensource 🔗 Все наши каналы 🔁 Все наши чаты 🪧 Для связи с менеджером
hcxdumptool без единого deauth-фрейма, 40 минут hashcat с правилами — и PSK подобран. К обеду пентестер уже сидел в корпоративном VLAN.
Но самое интересное началось дальше.
🔓 14 BLE-замков на складских дверях — без аутентификации на GATT-запись. Подошёл, отправил команду — дверь открылась. ZigBee-датчики температуры с дефолтным ключом шифрования висели в том же сегменте, что и СКУД. Один объект — три протокола — три точки входа.
И это типичная картина в 2025 году. Компании вкладываются в защиту Wi-Fi, а Bluetooth и ZigBee остаются слепой зоной.
📡 Почему PMKID-атака — главный вектор через Wi-Fi
Классический перехват handshake требует подключённого клиента и deauth-фрейма, который палит вас перед WIPS. PMKID-подход работает иначе: точка доступа сама отдаёт нужный хеш в первом сообщении 4-way handshake. Клиенты не нужны, deauth не нужен — для системы мониторинга вы практически невидимы.
Дальше — офлайн-перебор. И тут критична разница в железе: RTX 3060 выдаёт ~400 тысяч хешей/с для WPA2, встроенная графика ноутбука — десятки тысяч. Поэтому на объекте запускайте только захват, а брутфорс гоните удалённо.
🔑 На что обращать внимание при разведке
• WPA3 Transition Mode в airodump-ng отображается как WPA2 WPA3 в колонке ENC. Если видите это — WPA2-часть атакуема стандартными методами
• Скрытые SSID — не защита. Probe request клиента содержит имя сети в открытом виде. Достаточно дождаться переподключения
• WPS включён — проверяйте через wash -i wlan0mon -C. Иногда Pixie Dust — самый быстрый путь внутрь
📱 BLE и ZigBee — забытый фронт
BLE-устройства в корпоративной среде — это замки, трекеры, датчики. Многие из них не требуют аутентификации на уровне GATT. Ubertooth One остаётся единственным доступным инструментом для полного BLE-сниффинга на link layer — проекту уже пять лет, альтернатив нет.
ZigBee-сети автоматизации зданий часто используют дефолтные ключи шифрования. zbstumbler из KillerBee покажет PAN ID и координаторы, а дальше — перехват и replay.
Полный разбор с командами, ограничениями каждого метода и контрмерами — в статье на форуме.
https://codeby.net/threads/besprovodnoi-pentest-v-2025-ataki-na-wi-fi-bluetooth-i-zigbee.93711/Hetty — это набор инструментов HTTP для исследований в области безопасности. Его цель — стать альтернативой с открытым исходным кодом коммерческому программному обеспечению, такому как Burp Suite Pro, с мощными функциями, адаптированными к потребностям сообщества специалистов по информационной безопасности и программ поиска уязвимостей.📐Характеристики: 📉 Hetty является бесплатным аналогом, написаным на GO, что делает его более оптимизированым, чем проприетарный Burp Suite написаный на Java. 📉 HTTP Proxy и MITM 📉 Request sender (Repeater в Burp). Также можно редактировать запрос и смотреть на реакцию сервера. 🖱 Использование SQLite для сохранения прогресса. ⬇️Установка: 0️⃣Клонируем репозиторий и переходим в рабочую директорию:
git clone https://github.com/dstotijn/hetty.git
cd hetty/
1️⃣Устанавливаем необходимые утилиты и пакетный менеджер:
sudo apt install nodejs npm -y
sudo npm install --global yarn
2️⃣Собираем проект:
make build
⛓️💥Запуск:
./hetty
#web #wapt #burpsuite #http
🔗 Все наши каналы 🔁 Все наши чаты 🪧 Для связи с менеджеромpacman и отсутствием графического окружения, пока остальные с Kali уже сканировали учебные цели через nmap. К обеду трое переставили систему, двое ушли. А один человек с Parrot OS тихо работал весь день без единой проблемы.
Эта ситуация отлично иллюстрирует главное заблуждение: лучший дистрибутив для пентеста — не тот, где больше инструментов, а тот, который не мешает работать.
🔍 Вот что реально отличает три главных дистрибутива 2026 года:
• Kali Linux — Debian Testing, пакетный менеджер apt, курированный набор из 600+ инструментов. Offensive Security тестирует каждый пакет перед включением. Xfce по умолчанию, потребление в idle — 800–1200 МБ RAM.
• Parrot OS — тоже Debian, но с MATE и заметно меньшим аппетитом: 400–700 МБ в idle. Из коробки идут AnonSurf для маршрутизации через Tor, встроенное шифрование, и есть Home Edition — полноценная повседневная ОС без пентест-арсенала.
• BlackArch — репозитории поверх Arch Linux, pacman, rolling release. Тысячи пакетов, но конфликты зависимостей — полностью ваша головная боль. GUI из коробки может вообще отсутствовать.
⚡ Практический момент, который мало кто проговаривает. Разница между apt и pacman — не синтаксис. Это разные последствия ошибок. Когда в три ночи на внешнем пентесте hashcat отказывается запускаться после обновления, в Kali вы откатите пакет за минуту. В BlackArch придётся разбираться с цепочкой зависимостей от пяти минут до часа. В три ночи час — это очень много.
💡 Конкретный кейс с железом: ThinkPad X230, 4 ГБ RAM, HDD. Parrot не тормозил при одновременном Burp Suite и Firefox с десятком вкладок. Kali на том же железе ощутимо задумывался при переключении между приложениями. Если у вас старый ноутбук — Parrot объективно комфортнее.
И ещё важный маркер. Половина дистрибутивов из «топ-10 для хакинга» — мертвы. Cyborg Linux, DEFT, Bugtraq — всё это не обновлялось годами. Если в обзоре 2026 года вы видите эти названия — перед вами копипаста из 2019-го.
В полной статье — decision tree для выбора, детальные системные требования и разбор инструментов по категориям. Читайте и выбирайте осознанно.
https://codeby.net/threads/luchshii-distributiv-dlya-pentesta-kali-linux-vs-parrot-os-vs-blackarch-chestnoye-sravneniye-2026.93771/Недавно команда AI Defense из Cisco представила Model Provenance Kit — open-source инструмент для анализа происхождения ML-моделей. Проект помогает ответить на важный вопрос: действительно ли модель была обучена “с нуля”, или она является производной от другой модели?❓ Что такое Model Provenance Model provenance — это установление происхождения модели на уровне ее обученных весов. Проще говоря, инструмент позволяет определить: ⏺️ была ли модель fine-tuned версией другой модели ⏺️ использовался ли distillation ⏺️ является ли checkpoint переименованной копией ⏺️ происходят ли две модели из общего базового источника Cisco сравнивает этот процесс с ДНК-анализом моделей. 🎇 Как работает инструмент Model Provenance Kit использует двухэтапный анализ. 1️⃣ Быстрая архитектурная проверка На первом этапе анализируются: ▶️ конфигурация модели ▶️ структура слоев ▶️ tokenizer ▶️ metadata Если архитектура явно совпадает — система может сделать вывод без загрузки весов. 2️⃣ Анализ весов модели Если метаданных недостаточно, запускается глубокий анализ весов: ▶️ embedding geometry; ▶️ normalization layers; ▶️ energy profiles; ▶️ прямое сравнение параметров; ▶️ корреляционные сигналы. На основе этих признаков рассчитывается итоговый similarity score. ⬇️ Установка
git clone https://github.com/cisco-ai-defense/model-provenance-kit.git
cd model-provenance-kit
uv sync
Для работы достаточно CPU — GPU не требуется. Cisco отмечает, что архитектурные проверки выполняются за миллисекунды, а извлеченные признаки кешируются для повторного использования.
🎯 Пример использования
🧿 Сканирование модели по базе известных fingerprints
provenancekit scan bigscience/bloom-560m
Инструмент:
⏺️извлекает fingerprint модели;
⏺️запускает 3-stage lookup;
⏺️возвращает наиболее вероятные совпадения.
🪧 Сравнение двух моделей
provenancekit compare gpt2 distilgpt2
Результат включает:
➡️ metadata score;
➡️ tokenizer similarity;
➡️ weight-level similarity;
➡️ итоговый pipeline score.
#ai #llm #mlsecurity #cisco #supplychain #opensource
🔗 Все наши каналы 🔁 Все наши чаты 🪧 Для связи с менеджеромFormFlash, который сохраняет данные форм между HTTP-редиректами. Он принимает идентификатор сессии из POST-параметра __form-flash-id и использует его напрямую при построении пути к директории записи. Значение конкатенируется со строкой tmp://forms/ без проверки на символы вроде ../. Подставил traversal-последовательность — вышел за границы временной папки и пишешь куда хочешь.
Разработчики обращались с этим параметром как с доверенным: «ну строка из POST, она же не в SQL попадает». В классической архитектуре с СУБД это могло бы сойти. Но в flat-file системе запись файла = модификация конфигурации = контроль над приложением.
⚡ Что получает атакующий на практике:
• Запись в user/config/ — изменение поведения сайта и плагинов через инъекцию YAML-конфигурации
• Запись в user/accounts/ — порча или подмена учётных данных, хешей паролей, 2FA-секретов
• Запись в user/pages/ — инъекция контента, потенциальный SSTI через Twig-шаблоны
CVSS 8.8 (HIGH), ноль привилегий, CISA оценивает Technical Impact как total. Эксплуатация автоматизируема — достаточно одного POST-запроса к любой странице с формой. А формы есть почти везде: контактная страница, /admin/login, регистрация.
🧩 Ключевой фрагмент уязвимого кода выглядит обманчиво просто. Метод __construct() класса FormFlash берёт session_id из POST и склеивает с путём без вызова basename() или regex-валидации. Одна пропущенная проверка — и вся файловая система webroot открыта для записи.
По классификации MITRE это CWE-22 (Improper Limitation of a Pathname). По OWASP Top 10 — одновременно A01 (Broken Access Control) и A03 (Injection). Редкий случай, когда одна строка кода попадает сразу в две категории критичных уязвимостей.
📌 Если вы работаете с Grav или проводите аудит flat-file CMS — в полной статье разобран весь путь: от уязвимой строки PHP до рабочего HTTP-запроса, с маппингом на ATT&CK и контекстом предыдущих CVE движка.
https://codeby.net/threads/grav-cms-uyazvimost-path-traversal-0-day-v-formflash-bez-autentifikatsii.93718/