Исправлено две уязвимости:

* Веб-сервер не отклонял новый пароль длинной 0. chpasswd.c предполагает, что длина вывода генератора хеша пароля хотя бы 1,
   но при таком пароле его длина тоже 0. Таким образом генерировался неправильный новый файл creds.
 * Даже неправильные запросы заставляли chpasswd.c делать резервные копии файла creds. Поэтому, любой человек мог совершить DoS
   атаку, отправив очень много запросов и заставив chpasswd.c сделать очень много резервных копий. Теперь, creds копируется только
   после правильных запросов.

Немного отформатирован файл chpasswd.c, а файл webserver.go был перетабулирован.
This commit is contained in:
Nikita Osokin 2025-01-14 23:46:12 +05:00
parent c3ad534959
commit 3b9ea77879
3 changed files with 130 additions and 106 deletions

View file

@ -60,7 +60,7 @@
return "Новые пароли не совпадают.";
}
if(response_body == "250") {
return "Неправильно заполнены поля, или слишком длинные данные (макс. 2048 байтов на поле).";
return "Пустые, неправильно заполненные или слишком длинные поля (макс. 2048 байтов на поле).";
}
return response_body;
}