4 березня 2024 року Django випустила оновлення безпеки, що усуває потенційну вразливість типу «відмова в обслуговуванні» (ReDoS) у методі Truncator.words() та фільтрі truncatewords_html, які могли бути використані через спеціально сформовані рядки.
Опублікована 4 березня 2024 року інформація стосується методу django.utils.text.Truncator.words з активованим параметром html=True, а також шаблонного фільтра truncatewords_html. Вразливість типу ReDoS (Regular Expression Denial of Service) виникає через неефективну обробку регулярними виразами певних HTML-структур, що дозволяє зловмисникам викликати значне уповільнення або зупинку роботи застосунку.
Рекомендації:
- Оновіть версію Django до тієї, де вразливість була усунута.
- Перевірте код на наявність використання
truncatewords_htmlабоTruncator.words(html=True)для обробки неперевіреного контенту. - Якщо оновлення неможливе, впровадьте обмеження на довжину вхідного тексту, що передається до цих методів, щоб мінімізувати ризик виникнення DoS.
Захист Django від DoS-атак через вразливі методи обробки тексту
Вразливість типу ReDoS у Django при обробці HTML-контенту може призвести до відмови в обслуговуванні (DoS) через надмірне споживання ресурсів сервера. Для розробників це означає необхідність перевірки коду на використання вразливих методів обробки тексту та своєчасного оновлення фреймворку для запобігання зупинкам роботи застосунків.
Практичний крок: Перевірте свій код на використання вразливих методів обробки HTML. Зверніться до Softline за консультацією щодо оновлення Django та впровадження безпечних практик обробки вхідних даних, щоб мінімізувати ризики DoS-атак на ваші веб-застосунки.
Використані джерела
- djangoproject.com (djangoproject.com)