Van detectar una vulnerabilitat a OpenSSH que pot ser explotada de manera remota

vulnerabilitat

Si s'exploten, aquestes falles poden permetre als atacants obtenir accés no autoritzat a informació confidencial o, en general, causar problemes

Es va donar a conèixer informació sobre una vulnerabilitat que va ser detectada a la implementació OpenSSH de agent ssh que permet que el codi s'executi en un sistema que ha proporcionat accés ssh-agent a un host a l'altre extrem d'una connexió ssh.

La vulnerabilitat, ja catalogada sota CVE-2023-38408, és notable pel fet que és explotable de manera remota. l'atac només és possible si l'usuari s'ha connectat mitjançant ssh a un sistema controlat per l'atacant en habilitar el reenviament de sockets a ssh-agent a través de ssh usant l'opció «-A» o la configuració de ForwardAgent al fitxer de configuració.

El procés de ssh-agent, utilitzat per emmagatzemar en memòria cau claus privades per a l'autenticació de clau pública, admet un mode de reenviament opcional que permet que el costat remot d'una connexió ssh accedeixi al ssh-agent al sistema local per no emmagatzemar dades d'autenticació en altres hosts.

la vulnerabilitat està relacionada amb la presència a ssh-agent de suport per carregar mòduls PKCS # 11, que poden iniciar-se, entre altres coses, a través d'un sòcol unix reenviat a un altre sistema a ssh-agent.

aquesta característica permet que un atacant que controla el host al que està connectat carregueu i descarregueu immediatament qualsevol biblioteca compartida dels directoris /usr/lib* al sistema local de la víctima en un procés ssh-pkcs11-helper separat. Aquesta característica apareix a l'ssh-agent compilat amb l'opció ENABLE_PKCS11, que està habilitada per defecte.

Inicialment, la capacitat de carregar biblioteques compartides no es va considerar una amenaça per a la seguretat, ja que la càrrega només és possible des dels directoris del sistema /usr/lib*, que contenen biblioteques proporcionades oficialment per la distribució, i les operacions amb aquestes biblioteques es limiten a trucar a les funcions dlopen() i dlclose(), sense trucar a les funcions de la biblioteca.

No obstant això, s'ha passat per alt que algunes biblioteques tenen funcions constructores i destructores que s'anomenen automàticament en realitzar les operacions dlopen() i dlclose(). Això pot ser suficient per recollir les biblioteques necessàries i organitzar lexecució remota de codi.

La capacitat d'atac es demostra a l'entorn predeterminat de Ubuntu, ja que no provat en altres distribucions, que a més instal·la tres paquets del repositori «universe» (encara que se suposa que en algunes distribucions és possible atacar a la configuració predeterminada).

S'hi van proposar 8 variants de l'atac.

Per exemple, una de les opcions prometedores per crear un exploit funcional es basa en el fet que la biblioteca libgnatcoll_postgres.so, en executar dlopen(), registra una pila de senyals separada utilitzada en els controladors de senyals trucant a la funció sigaltstack(), i després de cridar a dlclose() de l'assignació de memòria de, però no l'assignació de memòria de.

Per explotar la vulnerabilitat, es realitzen les manipulacions següents:

  • Es carreguen diverses biblioteques per canviar el disseny mmap.
  • Es carrega la biblioteca libgnatcoll_postgres.so, es registra una pila de senyals alternativa i s'executa munmap().
  • Les biblioteques es carreguen per canviar el disseny del mmap i reemplaçar la pila de senyal separada amb una altra àrea de memòria en mode d'escriptura (per exemple, la pila de flux o els segments .data/.bss).
  • Carrega una biblioteca que registra el controlador de senyal SA_ONSTACK però no el munmap() quan s'anomena dlclose().
  • La biblioteca que rep el senyal i truca al controlador de senyals SA_ONSTACK es carrega, cosa que fa que l'àrea de memòria reemplaçada se sobreescrigui amb marcs de pila del controlador de senyals.
  • Les biblioteques es carreguen per sobreescriure específicament el contingut de l'àrea de memòria reemplaçada.

Sobre la vulnerabilitat, cal esmentar que aquesta va ser corregida en el llançament d'OpenSSH 9.3p2 publicada fa poc. A la nova versió, les sol·licituds per carregar mòduls PKCS#11 estan deshabilitades per defecte. Com a solució de seguretat, podeu especificar una llista blanca PKCS#11/FIDO buida (ssh-agent -P ») en iniciar ssh-agent, o definir explícitament les biblioteques permeses a la llista blanca.

Finalment si estàs interessat a poder conèixer més sobre això, pots consultar els detalls al següent enllaç.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.