CVE-2021-1675 != PrintNightmare (CVE-2021-34527): Proof-of-Concept gelekt voor een kritische Windows Print Spooler kwetsbaarheid

30 juni 2021

Bron: Tenable
Update 30 juni: Update over mogelijke 2e kwetsbaarheid.
Update 2 juli: PrintNightmare informatie toegevoegd om duidelijk te maken dat het gaat om verschillende kwetsbaarheden.

Onderzoekers publiceerden (en verwijderden) proof-of-concept code voor een kwetsbaarheid voor een Remote Code Execution (RCE) kwetsbaarheid in de Windows Print Spooler, genaamd PrintNightmare. Deze kwetsbaarheid is niet gelijk aan de oorspronkelijke kwetsbaarheid CVE-2021-1675.

Achtergrond

Eind juni publiceerden twee verschillende onderzoeksteams informatie over CVE-2021-1675, een kwetsbaarheid voor remote code execution (RCE) in de Windows Print Spooler die de naam PrintNightmare heeft gekregen. Zie hier ook het advies van het NCSC.

Toen de kwetsbaarheid voor het eerst werd onthuld in de Patch Tuesday-update van juni, werd deze omschreven als een kwetsbaarheid met een “beperkte mate van verhoging van privileges”. Die aanduiding werd op 21 juni bijgewerkt tot een kritische kwetsbaarheid en de mogelijkheid van RCE. De ontdekking kwam op naam van Zhipeng Huo van Tencent Security Xuanwu Lab, Piotr Madej van AFINE en Yunhai Zhang van NSFOCUS TIANJI Lab.

Op 27 juni tweette het onderzoeksteam van QiAnXin een GIF waarin succesvolle exploitatie van CVE-2021-1675 werd gedemonstreerd om RCE te verkrijgen zonder enige technische details of proof-of-concept (PoC) code.

Ook andere onderzoekers publiceren Proof of Concepts:

Op 29 juni publiceerden onderzoekers van een ander bedrijf, Sangfor, een volledig technisch verslag met PoC-code op GitHub. Die repository werd echter al na een paar uur weer verwijderd. De onderzoekers beweren deze kwetsbaarheid onafhankelijk te hebben ontdekt van degenen die door Microsoft met de onthulling worden gecrediteerd.

https://twitter.com/edwardzpeng/status/1409810304091889669

Hoewel ze de reden voor het verwijderen van de PoC niet expliciet bevestigden, lijkt het erop dat de onderzoekers bezorgd waren om te veel informatie publiekelijk weg te geven voor hun aankomende Black Hat USA presentatie over deze kwetsbaarheid.

Helaas was de GitHub repository lang genoeg publiekelijk beschikbaar voor anderen om hem te klonen. Nieuwe PoC code is inmiddels beschikbaar op het internet.

De nieuwe en ongepatchte bug wordt nu algemeen beschreven met de bijnaam PrintNightmare: het is een Windows Print Spooler Remote Code Execution Vulnerability, net als CVE-2021-1675, maar het wordt niet voorkomen door de laatste Patch Tuesday update.

Microsoft is op de hoogte van en onderzoekt een kwetsbaarheid voor het op afstand uitvoeren van code die van invloed is op Windows Print Spooler en heeft CVE-2021-34527 toegewezen aan deze kwetsbaarheid. Deze situatie is nog in ontwikkeling en de CVE informatie zal worden bijgewerkt zodra er meer informatie beschikbaar is.

Er is sprake van een kwetsbaarheid voor Remote Code Execution op afstand wanneer de Windows Print Spooler-service op onjuiste wijze privileged file operations uitvoert. Een aanvaller die deze kwetsbaarheid met succes misbruikt, kan willekeurige code uitvoeren met SYSTEM-privileges. Een aanvaller zou dan programma’s kunnen installeren, gegevens kunnen bekijken, wijzigen of verwijderen, of nieuwe accounts aanmaken met volledige gebruikersrechten.

Een aanval moet worden uitgevoerd door een geauthenticeerde gebruiker die RpcAddPrinterDriverEx() aanroept.

Analyse

Exploitatie van CVE-2021-1675 zou aanvallers op afstand volledige controle over kwetsbare systemen kunnen geven. Om een RCE te bereiken, moeten aanvallers zich richten op een gebruiker die geauthenticeerd is voor de spooler service. Zonder authenticatie zou het lek kunnen worden misbruikt om privileges te verhogen, waardoor dit lek een waardevolle schakel in een aanvalsketen wordt.

Windows Print Spooler heeft een lange geschiedenis van kwetsbaarheden en de alomtegenwoordigheid ervan kan ernstige gevolgen hebben voor doelwitten. De kwetsbaarheden in Print Spooler werden meer dan tien jaar geleden met name in verband gebracht met de Stuxnet-aanvallen. Meer recentelijk was CVE-2020-1337 een zero-day in Print Spooler die werd onthuld op de Black Hat en DEF CON evenementen van vorig jaar, wat toevallig een patch bypass was voor CVE-2020-1048, een andere Windows Print Spooler kwetsbaarheid die in mei 2020 werd gepatcht.

Advies

CVE-2021-1675 is gepatcht als onderdeel van Microsofts Patch Tuesday-release op 8 juni 2021. Op moment van schrijven lijkt deze patch echter geen volledige oplossing te bieden voor de nieuwe kwetsbaarheid.Kwetsbaarheden als deze worden hoogstwaarschijnlijk gebruikt in gerichte aanvallen.

Er zijn al wel verschillende methodes om de eventuele exploitatie van CVE-2021-1675 te detecteren:

Workarounds voor PrintNightmare

Determine if the Print Spooler service is running (run as a Domain Admin)

Run the following as a Domain Admin:

Get-Service -Name Spooler

If the Print Spooler is running or if the service is not set to disabled, select one of the following options to either disable the Print Spooler service, or to Disable inbound remote printing through Group Policy:

Option 1 – Disable the Print Spooler service

If disabling the Print Spooler service is appropriate for your enterprise, use the following PowerShell commands:

Stop-Service -Name Spooler -Force

Set-Service -Name Spooler -StartupType Disabled

Impact of workaround Disabling the Print Spooler service disables the ability to print both locally and remotely.

Option 2 – Disable inbound remote printing through Group Policy

You can also configure the settings via Group Policy as follows:

Computer Configuration / Administrative Templates / Printers

Disable the “Allow Print Spooler to accept client connections:” policy to block remote attacks.

Impact of workaround This policy will block the remote attack vector by preventing inbound remote printing operations. The system will no longer function as a print server, but local printing to a directly attached device will still be possible.

For more information see: Use Group Policy settings to control printers.

Kwetsbare systemen identificeren

Een overzicht met Tenable plugins om deze kwetsbaarheid te identificeren kan hier worden gevonden. Deze plugins kunnen gebruikt worden voor o.a. Nessus.

Veel gestelde vragen

Welke kwetsbaarheid wordt publiek benoemd als PrintNightmare?

PrintNightmare is gekoppeld aan CVE-2021-34527.

Is deze kwetsbaarheid gelijk aan de CVE-2021-1675?

Deze kwetsbaarheid is vergelijkbaar met maar verschilt van de kwetsbaarheid CVE-2021-1675, die een andere kwetsbaarheid in RpcAddPrinterDriverEx() aanpakt. Ook de aanvalsvector is anders. CVE-2021-1675 werd verholpen door de beveiligingsupdate van juni 2021.

Heeft de Juni 2021 update deze kwetsbaarheid geintroduceerd?

Nee, de kwetsbaarheid bestond al voor de beveiligingsupdate van juni 2021. Microsoft raadt wel ten zeerste aan om de updates van juni 2021 te installeren.

Welke specifieke rollen zijn bekend geraakt te worden door deze kwetsbaarheid?

Domeincontrollers zijn getroffen. We zijn nog aan het onderzoeken of andere soorten rollen ook getroffen zijn.

Alle versies van Windows worden vermeld bij Microsoft in de tabel met beveiligingsupdates. Zijn alle versies exploiteerbaar?

De code die het lek bevat, zit in alle versies van Windows. Er wordt nog onderzocht of alle versies exploiteerbaar zijn. We zullen deze blog bijwerken zodra die informatie duidelijk is.

Waarom heeft Microsoft nog geen CVSS score toegekend aan deze kwetsbaarheid?

Microsoft is de severity van deze kwetsbaarheid nog aan het onderzoeken.

Meer informatie

Microsoft Advisory for CVE-2021-1675
Microsoft Advisory for CVE-2021-34527

printNightmare