Увійти Реєстрація
Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Документація Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти Інструменти Події
Інше
Про нас Реклама
Новини 22 червня 2026

Повідомлення про безпеку: неавтентифіковане ін'єктування команд у Backpack\CRUD

Команда Backpack for Laravel опублікувала повідомлення про безпеку: у телеметрії пакета Backpack\CRUD виявлено вразливість, що дозволяла віддалене виконання коду (RCE) без автентифікації. Дослідник безпеки Vishal Shukla (@therawdev) відповідально повідомив про проблему 16 травня 2026 року, і команда розробників випустила виправлення менш ніж за 24 години.

Які версії під загрозою

Оновитися потрібно, якщо у вас одна з версій нижче за виправлену:

  • CRUD v7 до v7.0.36
  • CRUD v6 до v6.8.13
  • CRUD v5 до v5.6.2

Що робити

Негайно оновіть пакет до пропатченої версії:

composer update backpack/crud

Цього достатньо, щоб закрити вразливість.

Наскільки це небезпечно

За словами команди, «практична експлуатація вимагала рідкісного поєднання умов, яких немає у більшості стандартних розгортань Laravel». Для атаки одночасно мали виконуватися дві передумови:

  1. Увімкнена функція PHP exec() - це типово для VPS та серверів Laravel Forge, але зазвичай вимкнено на шаред-хостингах.
  2. Незмінений заголовок HTTP Host - CDN на кшталт Cloudflare та системи WAF, як правило, нормалізують заголовки ще до того, як запит дійде до PHP.

Іншими словами, проєкти за Cloudflare чи подібним сервісом мали додатковий захист, тоді як «голі» VPS без CDN були під вищим ризиком. Команда не виявила жодних ознак того, що вразливістю скористалися в реальних атаках.

Як перевірити, чи не зламали сервер

В оригінальному повідомленні наведено шість кроків перевірки. Важлива примітка від авторів: Linux за замовчуванням не логує читання файлів, тому виявити факт компрометації постфактум буває складно.

Крок 1. Чи були ви вразливі

Перевірте, чи доступна функція exec() та які функції вимкнено:

php -i | grep disable_functions
php -m | grep curl

Також варто переглянути конфігурацію PHP-FPM на предмет статусу exec().

Крок 2. Спроби «промацування» в логах nginx

Пошукайте підозрілі запити в access-логах і проаналізуйте коди відповідей - це допоможе зрозуміти, чи були запити заблоковані:

grep "'" /var/log/nginx/access.log

Крок 3. Підозрілі файли

Перегляньте нещодавно змінені файли та все незвичне у тимчасових каталогах:

ls -lat /tmp | head -40
find /var/www -name "*.php" -newer /var/www/html/index.php

Крок 4. Несподівані cron-завдання

Переконайтеся, що в розкладі немає сторонніх завдань:

crontab -u www-data -l 2>/dev/null
crontab -u forge -l 2>/dev/null

Крок 5. Несподівані вихідні з'єднання

Перевірте мережеву активність та останні входи:

ss -tnp | grep -v "127.0.0.1"
sudo last | head -30

Крок 6. Гірка правда про .env

Якщо зловмисник зміг виконати команду на вашому сервері, найімовірніше, перше, що він зробив, - прочитав файл .env. Тому за наявності будь-яких ознак компрометації ротуйте всі секрети: ключ застосунку, паролі до бази даних, токени стороніх сервісів та інші чутливі дані.

Хронологія розкриття

  • 16 травня 2026 - отримано повідомлення про вразливість
  • 17 травня 2026 - підтверджено та випущено виправлення
  • 19 травня 2026 - клієнтів сповіщено електронною поштою
  • 15 червня 2026 - опубліковано публічне повідомлення про безпеку
  • 17 червня 2026 - опубліковано пост у блозі

Підсумок

Це гарний приклад відповідального розкриття: швидкий патч, прозоре повідомлення для користувачів та грейс-період у 30 днів перед публічним розкриттям, щоб дати час на оновлення. Якщо ви використовуєте Backpack\CRUD - просто оновіться до останньої версії, а за наявності «голого» VPS без CDN додатково пройдіться кроками перевірки вище.

Подяка досліднику Vishal Shukla (@therawdev) за відповідальне розкриття.

126

Читати в документації

Коментарі

Увійдіть, щоб залишити коментар

Будьте першим, хто залишить коментар!

Читайте також

Fresh Package
Новини 19 вересня 2026

Fresh Package: новий скелет для розробки Laravel-пакетів з Testbench, CI та інтеграцією Boost

Fresh Package від Mazen Touati - це сучасний скелет для створення Laravel-пакетів, який включає тестове середовище, статичний аналіз, CI/CD, workbench-додаток та шаблони навичок для AI-агентів. Підтримує як backend-only, так і full-stack пакети.

6
Jev: модель, яка повертає рішення замість тексту - і вже є в Laravel AI SDK Рекомендовано
Новини 18 вересня 2026

Jev: модель, яка повертає рішення замість тексту - і вже є в Laravel AI SDK

TypeSafe AI випустила Jev - модель, яка не генерує текст, а повертає типізовані рішення з каліброваними ймовірностями за 70-500 мс. Через два дні підтримка приїхала в гілку 1.x пакета laravel/ai у вигляді API Classification з питаннями Boolean, Choice і Score.

Вакансії за темою

N-iX Нова
3 дні тому

Senior/ Lead PHP Engineer (with AI Skills), Toronto time zone

Старший/Lead PHP розробник з глибокою експертизою Laravel для побудови та інтеграції систем штучного інтелекту. Спеціаліст матиме відповідати за складні backend-функції, менторство інших розробників, проектування та впровадження AI-driven automation агентів в продукт. Вимоги: 6+ років досвіду на PHP, 4+ років Laravel, практичний досвід роботи з LLM API, контейнеризацією (Docker) та хмарними платформами, мова English Upper Intermediate+.

SFox
5 днів тому

PHP developer (Middle + with good English)

Розробник Backend для створення нових features, рефакторингу та підтримки legacy-коду. Проектування архітектури, код-ревю, менторинг інших розробників. Вимоги: 4+ років досвіду, PHP-мастер, Laravel буде плюсом, REST/GraphQL, Linux, тести, HTML5/CSS3/JavaScript.

Key2Law
6 днів тому

Full Stack Developer (Laravel)

Full Stack розробник на Laravel для розробки та підтримки веб-додатків. Відповідальний за реалізацію backend (REST APIs, бізнес-логіка, оптимізація БД) і frontend (Blade, Tailwind, Alpine/Livewire/Vue), тестування, деплой та моніторинг. Вимоги: PHP 8.1+, Laravel 10+, знання Eloquent, Queue, Redis, MySQL, JavaScript ES6+, PHPUnit/Pest, Docker, Git, основи AWS. Бажано досвід з Fintech, криптовалютами, high-availability системами.

Пакети за темою

Crud

laravel-backpack/crud

Швидко створюй адміністративні інтерфейси за допомогою Laravel, Bootstrap та JavaScript.

3,373 7.1.20 13 13

Filament

filament/filament

Найпопулярніша адмін-панель для Laravel: ресурси, таблиці, форми та дашборди описуються PHP-класами поверх Livewire, Alpine і Tailwind. Замінює рутину CRUD-інтерфейсів декларативною конфігурацією.

31,852 v5.7.6 8