Ze ontdekten een kwetsbaarheid in OpenSSH die op afstand kan worden misbruikt

kwetsbaarheid

Als deze fouten worden misbruikt, kunnen aanvallers ongeoorloofde toegang krijgen tot gevoelige informatie of in het algemeen problemen veroorzaken

Er is informatie vrijgegeven over een kwetsbaarheid die is ontdekt in de OpenSSH-implementatie van SSH-agens waardoor de code kan worden uitgevoerd op een systeem dat ssh-agent toegang heeft gegeven tot een host aan de andere kant van een ssh-verbinding.

De kwetsbaarheid, al gecatalogiseerd onder CVE-2023-38408, het is opmerkelijk omdat het op afstand kan worden misbruikt. De aanval alleen mogelijk als de gebruiker via ssh verbinding heeft gemaakt met een systeem dat wordt beheerd door de aanvaller door socketforwarding naar ssh-agent via ssh in te schakelen met behulp van de "-A"-optie of de ForwardAgent-instelling in het configuratiebestand.

Het ssh-agentproces, dat wordt gebruikt om privésleutels op te slaan voor authenticatie met openbare sleutels, ondersteunt een optionele doorstuurmodus waarmee de externe kant van een ssh-verbinding toegang heeft tot de ssh-agent op het lokale systeem, zodat er geen authenticatiegegevens op andere hosts worden opgeslagen.

Kwetsbaarheid is gerelateerd aan de aanwezigheid in ssh-agent van ondersteuning voor het laden van PKCS # 11-modules, die onder andere kan worden gestart via een unix-socket die naar een ander systeem wordt doorgestuurd naar ssh-agent.

Deze functie staat een aanvaller toe die de host bestuurt waarop het is aangesloten laad en ontlaad onmiddellijk alle gedeelde bibliotheken uit de /usr/lib*-mappen op het lokale systeem van het slachtoffer in een afzonderlijk ssh-pkcs11-helperproces. Deze functie verschijnt in ssh-agent die is gecompileerd met de optie ENABLE_PKCS11, die standaard is ingeschakeld.

Aanvankelijk werd de mogelijkheid om gedeelde bibliotheken te laden niet als een bedreiging beschouwd om veiligheidsredenen, aangezien laden alleen mogelijk is vanuit de /usr/lib* systeemmappen, die bibliotheken bevatten die officieel door de distributie worden geleverd, en bewerkingen met deze bibliotheken zijn beperkt tot het aanroepen van de functies dlopen() en dlclose() zonder de functies van de bibliotheek aan te roepen.

Echter over het hoofd gezien dat sommige bibliotheken constructor- en destroyer-functies hebben die automatisch worden aangeroepen bij het uitvoeren van de bewerkingen dlopen() en dlclose(). Dit kan voldoende zijn om de benodigde bibliotheken op te halen en de uitvoering van externe code te organiseren.

Het vermogen om aan te vallen wordt gedemonstreerd in de standaardomgeving van Ubuntu, sindsdien niet getest in andere distributies, die ook drie pakketten uit de "universe"-repository installeren (hoewel wordt verondersteld dat het in sommige distributies mogelijk is om aan te vallen in de standaardconfiguratie).

Er werden 8 varianten van de aanval voorgesteld.

Een van de veelbelovende opties voor het creëren van een werkende exploit is bijvoorbeeld gebaseerd op het feit dat de libgnatcoll_postgres.so-bibliotheek, wanneer dlopen() wordt uitgevoerd, een afzonderlijke signaalstapel registreert die wordt gebruikt in signaalhandlers door de functie sigaltstack() aan te roepen, en na het aanroepen van dlclose() geheugen toewijst, maar logboekregistratie (SS_DISABLE) van de signaalstapel niet uitschakelt.

Om de kwetsbaarheid te misbruiken, de volgende manipulaties worden uitgevoerd:

  • Er worden verschillende bibliotheken geladen om de mmap-lay-out te wijzigen.
  • De bibliotheek libgnatcoll_postgres.so wordt geladen, een alternatieve signaalstapel wordt geregistreerd en munmap() wordt uitgevoerd.
  • Bibliotheken worden geladen om de lay-out van mmap te wijzigen en de afzonderlijke signaalstack te vervangen door een ander schrijfmodusgeheugengebied (bijvoorbeeld de streamstack of .data/.bss-segmenten).
  • Laadt een bibliotheek die de SA_ONSTACK-signaalhandler registreert, maar niet registreert met munmap() wanneer dlclose() wordt aangeroepen.
  • De bibliotheek die het signaal ontvangt en de signaalbehandelaar SA_ONSTACK aanroept, wordt geladen, waardoor het vervangen geheugengebied wordt overschreven door stapelframes van de signaalbehandelaar.
  • Bibliotheken worden geladen om specifiek de inhoud van het vervangen geheugengebied te overschrijven.

Met betrekking tot kwetsbaarheid is het vermeldenswaard dat dit is opgelost in de OpenSSH 9.3p2-release onlangs gepubliceerd. In de nieuwe versie zijn verzoeken om PKCS#11-modules te laden standaard uitgeschakeld. Als beveiligingsoplossing kunt u ofwel een lege PKCS#11/FIDO-witte lijst (ssh-agent -P ») specificeren bij het starten van ssh-agent, of expliciet de toegestane bibliotheken op de witte lijst definiëren.

Tot slot, als u geïnteresseerd bent om er meer over te weten, kunt u de details raadplegen in de volgende link.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.