Ниже выдержки из статьи которая объясняет возможность атаки Denial Of Service (DoS) из-за неслучайных хеш-функций, используемых в Hash Data Structures.
[...] условие может быть использовано за счет использования предсказуемых столкновений в базовых алгоритмах хэширования.
Чтобы проверить это, я прошел через ссылочную реализацию Java HashMap из Oracle и действительно нашел используемые статические хэш-функции:
static int hash(int h) {
h ^= (h >>> 20) ^ (h >>> 12);
return h ^ (h >>> 7) ^ (h >>> 4);
}
В другой статье по этой теме говорится:
Сервер Tomcat 6.0.32 анализирует строку встречных ключей объемом 2 МБ 44 минуты времени процессора i7, поэтому атакующий со скоростью около 6 кбит/с может поддерживать одно ядро i7 постоянно занятый. Если злоумышленник имеет соединение Gigabit, он может поддерживать занятость около 100 000 ядер i7
Как мы можем защитить от этой уязвимости. Более того, с таким количеством программного обеспечения мы используем open source (Tomcat и т.д.), Которые полагаются на эту реализацию.