Podatność w module mod_verto systemu FreeSWITCH umożliwia przepełnienie bufora na stercie (heap buffer overflow) przez nieuwierzytelnionego atakującego. Ze względu na brak wymagań autoryzacji i sieciowy wektor ataku, luka jest sklasyfikowana jako krytyczna z wynikiem CVSS 9.8.
▸ Pokaż oryginał (EN)
FreeSWITCH is a Software Defined Telecom Stack enabling the digital transformation from proprietary telecom switches to a software implementation that runs on any commodity hardware. Prior to version 1.11.1, the mod_verto HTTP request handler allocates a fixed 2 MiB buffer for a POST application/x-www-form-urlencoded body but accepts Content-Length up to just under 10 MiB. The body-read loop is bounded by Content-Length rather than the buffer size, producing an attacker-controlled heap overflow of up to ~8 MiB -- before the HTTP basic-auth check runs. This issue has been patched in version 1.11.1.
Procedura obsługi żądań HTTP POST w module mod_verto alokuje stały bufor o rozmiarze 2 MiB do przechowywania treści żądania typu application/x-www-form-urlencoded. Jednocześnie akceptuje wartość nagłówka Content-Length sięgającą prawie 10 MiB. Pętla odczytująca dane z ciała żądania jest ograniczona wartością Content-Length, a nie rozmiarem bufora, co pozwala atakującemu na kontrolowane przepełnienie bufora na stercie (heap overflow) o rozmiar do około 8 MiB. Co istotne, przepełnienie następuje przed wykonaniem jakiegokolwiek sprawdzenia uwierzytelnienia HTTP Basic Auth, więc exploit nie wymaga żadnych poświadczeń.
Atakujący zdalny, nieuwierzytelniony może doprowadzić do wykonania dowolnego kodu (RCE), ujawnienia poufnych danych lub niedostępności usługi poprzez kontrolowane przepełnienie bufora na stercie.
Należy zaktualizować FreeSWITCH do wersji 1.11.1, w której błąd został naprawiony. Patch dostępny jest w oficjalnym repozytorium projektu: https://github.com/signalwire/freeswitch/releases/tag/v1.11.1. Do czasu aktualizacji zaleca się ograniczenie dostępu sieciowego do interfejsu HTTP modułu mod_verto za pomocą firewall lub wyłączenie tego modułu, jeśli nie jest wymagany.
FreeSWITCH w wersjach wcześniejszych niż 1.11.1 z aktywnym modułem mod_verto i dostępnym interfejsem HTTP.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HFreeswitch
APPFreeswitch< 1.11.1
Powiązane podatności
FreeSWITCH libesl: heap buffer overflow przez ujemny Content-Length w ESL
FreeSWITCH 1.6.10 through 1.10.1 has a default password in event_socket.conf.xml.
FreeSWITCH is a Software Defined Telecom Stack enabling the digital transformation from proprietary telecom sw...
FreeSWITCH is a Software Defined Telecom Stack enabling the digital transformation from proprietary telecom sw...
FreeSWITCH is a Software Defined Telecom Stack enabling the digital transformation from proprietary telecom sw...