Команда Django 3 липня 2023 року випустила оновлення версій 4.2.3, 4.1.10 та 3.2.20 для усунення вразливості типу «відмова в обслуговуванні» (ReDoS). Для розробників та системних адміністраторів це оновлення є обов'язковим, оскільки воно запобігає вичерпанню ресурсів сервера при обробці специфічних вхідних даних.
Проблема полягала в неефективній роботі регулярних виразів у EmailValidator та URLValidator. При передачі адрес з надмірною кількістю міток доменних імен регулярні вирази могли споживати надмірну кількість процесорного часу, що призводило до блокування потоку виконання та сповільнення роботи всього застосунку.
Рекомендації:
- Оновіть Django до версій 4.2.3, 4.1.10 або 3.2.20 залежно від вашої поточної гілки.
- Перевірте валідатори вхідних даних у вашому коді, особливо ті, що обробляють URL-адреси та електронні пошти від користувачів.
- Переконайтеся, що налаштування валідації вхідних даних не дозволяють передачу аномально довгих рядків, які можуть бути використані для атак на регулярні вирази.
Що це означає для бізнесу
Вразливість у валідаторах Django може бути використана зловмисниками для вичерпання ресурсів сервера, що призводить до сповільнення або повної недоступності вебзастосунків. Для бізнесу це загроза стабільності онлайн-сервісів, особливо тих, що активно обробляють користувацький контент. Ефективна валідація вхідних даних є критичним елементом захисту від атак, які експлуатують неефективні регулярні вирази.
Практичний крок: Оновіть фреймворк Django до безпечних версій. Замовте у Softline перевірку коду (code review) ваших сервісів, щоб виявити потенційно вразливі місця у валідації даних та забезпечити стійкість вашої інфраструктури до подібних атак.
Використані джерела
- djangoproject.com (djangoproject.com)