Megjelent az OpenSSH 9.2 kiadása, amely egy kliens és szerver nyílt megvalósítása az SSH 2.0 és SFTP protokollok használatával történő munkavégzéshez. Az új verzió kiküszöböl egy biztonsági rést, amely a memória kétszeres felszabadításához vezet a hitelesítés előtti szakaszban. Csak az OpenSSH 9.1 kiadás érintett, a probléma a korábbi verziókban nem jelentkezik.
A sebezhetőség megnyilvánulásának feltételeinek megteremtéséhez elegendő az SSH-kliens szalaghirdetését „SSH-2.0-FuTTYSH_9.1p1”-re módosítani az „SSH_BUG_CURVE25519PAD” és „SSH_OLD_DHGEX” jelzők beállításához, amelyek az SSH verziójától függenek. ügyfél. A jelzők beállítása után az „options.kex_algorithms” puffer memóriája kétszer szabadul fel - a do_ssh2_kex() függvény végrehajtásakor, amely a compat_kex_proposal() függvényt, valamint a do_authentication2() függvényt, amely az input_userauth_request(), mmlow(getpwnamal) függvényt hívja. ), copy_set_server_options() a lánc mentén , assemble_algorithms() és kex_assemble_names().
A sérülékenységhez működő exploit létrehozását valószínűtlennek tartják, mivel a kihasználási folyamat túl bonyolult – a modern memóriafoglalási könyvtárak védelmet nyújtanak a memória kétszeres felszabadulása ellen, és a hitelesítés előtti folyamat, amelyben a hiba fennáll, csökkentett jogosultságokkal fut le egy elszigetelt helyen. homokozó környezet.
A megemlített sebezhetőségen kívül az új kiadás két további biztonsági problémát is javít:
- Hiba történt a „PermitRemoteOpen” beállítás feldolgozása során, ami miatt a rendszer figyelmen kívül hagyta az első argumentumot, ha az eltér az „any” és a „none” értékektől. A probléma az OpenSSH 8.7-nél újabb verziókban jelentkezik, és az ellenőrzés kihagyását okozza, ha csak egy engedély van megadva.
- A nevek feloldására használt DNS-kiszolgálót irányító támadó elérheti a speciális karakterek (például „*”) helyettesítését az ismert_hosts fájlokban, ha a CanonicalizeHostname és a CanonicalizePermittedCNAMEs beállítások engedélyezve vannak a konfigurációban, és a rendszerfeloldó nem ellenőrzi a válaszokat a DNS-kiszolgálótól. A támadás valószínűtlen, mert a visszaadott neveknek meg kell felelniük a CanonicalizePermittedCNAMEs által megadott feltételeknek.
Egyéb változások:
- Egy EnableEscapeCommandline beállítás került hozzáadásra az ssh_config for ssh számára annak szabályozására, hogy a parancssort biztosító "~C" escape szekvencia kliensoldali feldolgozása engedélyezve van-e. Alapértelmezés szerint a "~C" kezelés most le van tiltva, hogy szigorúbb sandbox-elszigetelést használjon, ami potenciálisan megszakítja azokat a rendszereket, amelyek "~C"-t használnak a porttovábbításhoz futás közben.
- A ChannelTimeout direktíva hozzáadásra került az sshd_config fájlhoz, hogy az sshd beállítsa a csatorna inaktivitási időtúllépését (azok a csatornák, amelyeken az irányelvben meghatározott ideig nem rögzítenek forgalmat, automatikusan bezáródnak). Különböző időtúllépések állíthatók be a munkamenethez, az X11-hez, az ügynökhöz és a forgalom átirányításához.
- Az UnusedConnectionTimeout direktíva hozzáadásra került az sshd_config for sshd állományához, amely lehetővé teszi, hogy időtúllépést állítson be az olyan ügyfélkapcsolatok megszakításához, amelyek egy bizonyos ideig aktív csatornák nélkül voltak.
- A „-V” opció hozzáadásra került az sshd-hez a verzió megjelenítéséhez, hasonlóan az ssh kliens hasonló opciójához.
- Hozzáadta a "Host" sort az "ssh -G" kimenetéhez, ami a hostname argumentum értékét tükrözi.
- A "-X" opció hozzáadásra került az scp-hez és az sftp-hez az SFTP protokoll paramétereinek, például a másolási puffer méretének és a függőben lévő kérelmek számának vezérléséhez.
- Az ssh-keyscan lehetővé teszi a teljes CIDR-címtartományok vizsgálatát, például "ssh-keyscan 192.168.0.0/24".
Forrás: opennet.ru