Kelemahan limpahan penampan dalam libssh

Kerentanan (CVE-2-2) telah dikenal pasti dalam perpustakaan libssh (jangan dikelirukan dengan libssh2021), direka untuk menambah sokongan pelanggan dan pelayan untuk protokol SSHv3634 kepada program C, yang membawa kepada limpahan penimbal apabila memulakan proses kunci semula menggunakan pertukaran kunci yang menggunakan algoritma pencincangan yang berbeza. Isu ini telah dibetulkan dalam keluaran 0.9.6.

Intipati masalahnya ialah operasi perubahan kunci membolehkan penggunaan cincang kriptografi dengan saiz cast yang berbeza daripada algoritma asal digunakan. Dalam kes ini, memori untuk cincang dalam libssh telah diperuntukkan berdasarkan saiz cincang asal dan menggunakan saiz cincang yang lebih besar membawa kepada data ditimpa melangkaui sempadan penimbal yang diperuntukkan. Sebagai kaedah keselamatan sandaran, anda boleh mengehadkan senarai kaedah pertukaran kunci yang disokong kepada hanya algoritma dengan saiz cincang yang sama. Sebagai contoh, untuk mengikat kepada SHA256, anda boleh menambah pada kod: rc = ssh_options_set(s->ssh.session, SSH_OPTIONS_KEY_EXCHANGE, "diffie-hellman-group14-sha256,curve25519-sha256,ecdh-sha2-nistp256");

Sumber: opennet.ru

Tambah komen