Luka w zabezpieczeniach związana z przepełnieniem bufora w libssh

W bibliotece libssh zidentyfikowano lukę (CVE-2-2) (nie mylić z libssh2021), zaprojektowaną w celu dodania obsługi klienta i serwera dla protokołu SSHv3634 do programów w języku C, co prowadzi do przepełnienia bufora podczas inicjowania procesu ponownego klucza przy użyciu wymiany kluczy, która wykorzystuje inny algorytm mieszający. Problem został rozwiązany w wersji 0.9.6.

Istota problemu polega na tym, że operacja zmiany klucza pozwala na użycie skrótów kryptograficznych o rozmiarze rzutowania różniącym się od oryginalnie użytego algorytmu. W tym przypadku pamięć dla skrótu w libssh została przydzielona w oparciu o oryginalny rozmiar skrótu, a użycie większego rozmiaru skrótu prowadzi do nadpisywania danych poza przydzieloną granicą bufora. Jako awaryjną metodę bezpieczeństwa możesz ograniczyć listę obsługiwanych metod wymiany kluczy tylko do algorytmów o tym samym rozmiarze skrótu. Na przykład, aby powiązać z SHA256, możesz dodać do kodu: rc = ssh_options_set(s->ssh.session, SSH_OPTIONS_KEY_EXCHANGE, "diffie-hellman-group14-sha256,curve25519-sha256,ecdh-sha2-nistp256");

Źródło: opennet.ru

Dodaj komentarz