Django: виправлення перевірки адрес у EmailValidator і URLValidator

2 хв читання

Команда 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) ваших сервісів, щоб виявити потенційно вразливі місця у валідації даних та забезпечити стійкість вашої інфраструктури до подібних атак.

Використані джерела

  1. djangoproject.com (djangoproject.com)