Megjelent az OpenSSH 9.2 az előzetes hitelesítési sebezhetőség javításával

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

Hozzászólás