È stata rilasciata la versione 2.4.58 del server HTTP Apache, che include 33 modifiche e risolve tre vulnerabilità, due delle quali sono collegate a potenziali attacchi DoS su sistemi che utilizzano il protocollo HTTP/2.
- CVE-2023-45802 — condizione che porta all'esaurimento della memoria disponibile a causa della liberazione ritardata della memoria dopo il reset di un flusso HTTP/2 con un pacchetto RST. Poiché la memoria non viene liberata immediatamente dopo la gestione del flag RST, ma solo dopo la chiusura della connessione, un attaccante può aumentare significativamente il consumo di memoria inviando nuove richieste e resettandole con il pacchetto RST senza chiudere la connessione.
- CVE-2023-43622 — blocco infinito del processamento delle connessioni HTTP/2, se aperte con una dimensione iniziale della finestra di scorrimento impostata a 0. Questa vulnerabilità può essere sfruttata per provocare un'interruzione del servizio esaurendo il limite massimo di connessioni aperte.
- CVE-2023-31122 — vulnerabilità in mod_macro che consente la lettura di dati al di fuori del buffer allocato.
Tra le modifiche non relative alla sicurezza:
- In mod_http2 è stata aggiunta la supporto per l'uso del protocollo WebSocket sopra il flusso nella connessione HTTP/2 (RFC 8441). Per abilitare WebSocket sopra HTTP/2 è stata proposta la direttiva ‘H2WebSockets on|off’.
- In mod_http2 è stata aggiunta la direttiva ‘H2EarlyHint name value’ per aggiungere intestazioni nella risposta «103 Early Hints».
- In mod_http2 è stata aggiunta la direttiva ‘H2ProxyRequests on|off’ per gestire l'attivazione della gestione delle richieste tramite il protocollo HTTP/2 nella configurazione del proxy.
- In mod_http2 è stata aggiunta la direttiva ‘H2MaxDataFrameLen n’ per limitare la dimensione massima del corpo della risposta in byte, trasmesso in un singolo frame DATA in HTTP/2. Il limite predefinito è impostato a 16KB.
- Il file mime.types è stato aggiornato, in cui l'estensione «.js» è legata al tipo ‘text/javascript’ invece di ‘application/javascript’ e sono state aggiunte le estensioni: «.mjs» (con tipo ‘text/javascript’) e «.opus» (‘audio/ogg’). Sono stati aggiunti tipi MIME e estensioni utilizzati in WebAssembly.
- Il modulo mod_tls (alternativa a mod_ssl scritto in Rust) è stato adattato per utilizzare la libreria rustls-ffi 0.9.2+.
- Nel modulo mod_md è stata aggiunta la direttiva ‘MDMatchNames all|servernames’ per gestire il mapping dei MDomains con il contenuto dei VirtualHosts.
- Nel modulo mod_md è stata aggiunta la direttiva ‘MDChallengeDns01Version’ per selezionare la versione del protocollo ACME utilizzata per la verifica tramite DNS.
- Nel mod_md è consentito l'uso della direttiva MDChallengeDns01 per singoli domini.
- Nel mod_dav è stata aggiunta la direttiva ‘DavBasePath’ per configurare il percorso della radice del repository WebDav.
- Nel mod_alias è stata aggiunta la direttiva ‘AliasPreservePath’ per utilizzare il valore Alias come percorso completo nel blocco Location.
- Nel mod_alias è stata aggiunta la direttiva ‘RedirectRelative’, che consente la reindirizzamento utilizzando percorsi relativi.
- Nella direttiva ErrorLogFormat sono stati aggiunti i specificatori di formato %{z} e %{strftime-format}.
- Nel mod_deflate è stata aggiunta la direttiva ‘DeflateAlterETag’ per gestire la modifica dell'ETag quando viene utilizzata la compressione.
- È stata ottimizzata la performance della funzione send_brigade_nonblocking().
- Nel mod_status è stata garantita la rimozione dei duplicati delle chiavi 'BusyWorkers' e 'IdleWorkers', ed è stato aggiunto un nuovo contatore 'GracefulWorkers'.
Fonte: opennet.ru
