Tradicionalmente os ataques DoS (Denial of Service) envolvem fazer uma grande quantidade de pedidos de modo a saturar o servidor ao ponto de não conseguir funcionar normalmente. Tendo em conta a diferença de hardware dos computadores pessoais, ligações de internet, e da capacidade dos servidores, é algo que raramente se pode fazer com um único computador, tendo levado aos ataques DDoS (Distributed Denial of Service) que usam redes com centenas ou milhares de computadores e equipamentos infectados, que pode ser usados em conjunto pelo atacante para fazerem milhares de pedidos simultâneos ao alvo.
O problema é que com o HTTP/2, o desejo de versatilidade fez com que fosse permitido comunicar secções de dados de grandes dimensões em blocos fragmentados sinalizados com um código "CONTINUATION", e o ponto fulcral é que não foi definido nenhum limite para tal. Isso permite este ataque CONTINUATION Flood, que se limita a enviar uma secção interminável, com blocos contínuos que continuam até que o servidor acabe por dar algum tipo de erro.
A falha afecta grande parte dos sistemas HTTP/2, incluindo o Apache HTTP Server Project, nghttp2, Node.js, Go, Red Hat, SUSE Linux, e outros:
- CVE-2024-27983: Affects Node.js HTTP/2 server. Sending a few HTTP/2 frames can cause a memory leak due to a race condition, leading to a potential DoS.
- CVE-2024-27919: Affects Envoy's oghttp codec. Unlimited memory consumption due to not resetting a request when header map limits are exceeded.
- CVE-2024-2758: Relates to Tempesta FW. Its rate limits are not effectively preventing empty CONTINUATION frames attacks, potentially allowing DoS.
- CVE-2024-2653: Affects amphp/http. It collects CONTINUATION frames in an unbounded buffer, risking an OOM crash if the header size limit is exceeded.
- CVE-2023-45288: Affects Go's net/http and net/http2 packages. Allows an attacker to send an arbitrarily large set of headers, causing excessive CPU consumption.
- CVE-2024-28182: Involves an implementation using nghttp2 library, which continues to receive CONTINUATION frames, leading to a DoS without proper stream reset callback.
- CVE-2024-27316: Affects Apache Httpd. Continuous stream of CONTINUATION frames without the END_HEADERS flag set can be sent, improperly terminating requests.
- CVE-2024-31309: Affects Apache Traffic Server. HTTP/2 CONTINUATION DoS attack can cause excessive resource consumption on the server.
- CVE-2024-30255: Affects Envoy versions 1.29.2 or earlier. Vulnerable to CPU exhaustion due to a flood of CONTINUATION frames, consuming significant server resources.
Para complicar, este tipo de ataque torna-se difícil de detectar por parte dos administradores de sistemas, já que os pedidos maliciosos não serão visíveis nos logs a não ser que o servidor tenha activado opções de análise avançadas, o que normalmente não acontece.
Torna-se de importância crítica aplicar as devidas correcções para que se fique protegido contra este ataque, que permite que qualquer equipamento básico ligado à internet possa interferir com o funcionamento de um servidor.
Sem comentários:
Enviar um comentário (problemas a comentar?)