Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-42897 — CVE-2026-42897 - Blinder Fleck des Exchange Health Checkers: ausgehende IIS-URL-Rewrite-Regeln werden stillschweigend ignoriert, wodurch EOMT-Schutzmaßnahmen in Diagnoseberichten unsichtbar bleiben. | Kitploit
Tools/GitHubGitHub/atiilla/cve-2026-42897
Cloud-Infrastruktur-SicherheitSchwachstellenanalyseKonfigurationsprüfungWebsicherheitFehlkonfigurationLernen & Bildung
GitHubatiilla/cve-2026-42897

CVE-2026-42897

CVE-2026-42897 - Blinder Fleck des Exchange Health Checkers: ausgehende IIS-URL-Rewrite-Regeln werden stillschweigend ignoriert, wodurch EOMT-Schutzmaßnahmen in Diagnoseberichten unsichtbar bleiben.

Repository anzeigen
543vor 3 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-42897 - Exchange Health Checker: Blinder Fleck bei ausgehenden Rewrite-Regeln

Schweregrad: Mittel (CVSS 5.3) Komponente: Microsoft CSS-Exchange - Diagnosetool HealthChecker Betroffene Dateien:

  • Diagnostics/HealthChecker/Analyzer/Get-URLRewriteRule.ps1 (L49, L72, L97)
  • Diagnostics/HealthChecker/Analyzer/Invoke-AnalyzerIISInformation.ps1 (L442–459) Gemeldet: 2026-05-15 Anerkennung: Ursprüngliche Entdeckung durch den Forscher, der CSS-Exchange Issue #2539 gemeldet hat Referenzen:
  • CSS-Exchange GitHub: Get-URLRewriteRule.ps1, Invoke-AnalyzerIISInformation.ps1
  • EOMT-Mitigationsskript: Security/src/EOMT/Mitigations/CVE-2026-42897.ps1 (L147–254)

Zusammenfassung

Der Exchange Health Checker (HealthChecker.ps1) meldet IIS-URL-Rewrite-Regeln als Teil seiner Serverkonfigurationsprüfung. Die Regelenumerationsfunktion Get-URLRewriteRule.ps1 liest jedoch nur eingehende Regeln (system.webServer/rewrite/rules) und ignoriert stillschweigend ausgehende Regeln (system.webServer/rewrite/outboundRules).

Die EOMT-Mitigation (Exchange On-premises Mitigation Tool) für CVE-2026-42897 setzt eine Content-Security-Policy-Header-Injection-Regel namens EOMT OWA CSP - outbound als ausgehende IIS-URL-Rewrite-Regel um. Da der Health Checker outboundRules nie liest, ist diese Mitigationsregel in Health-Checker-Berichten vollständig unsichtbar.

Ein Exchange-Administrator, der sich darauf verlässt, dass der Health Checker bestätigt, dass EOMT-Mitigationen vorhanden sind, erhält einen Bericht, der keine ausgehende CSP-Regel zeigt - was zu einem falsch-negativen Ergebnis für den Mitigationsstatus führt und ein falsches Gefühl der Gefährdung oder umgekehrt ein falsches Vertrauen erzeugt, dass keine Mitigation angewendet wurde, obwohl eine vorhanden ist.


Details zur Sicherheitslücke

Grundursache

Drei verschiedene Codepfade in Get-URLRewriteRule.ps1 lesen ausschließlich aus .rewrite.rules:

Pfad 1 - Parsen von web.config (L49):

root@kitploit:~
$rules = $content.configuration.'system.webServer'.rewrite.rules

Pfad 2 - applicationHost.config pro Standort (L72):

root@kitploit:~
$rules = $location.'system.webServer'.rewrite.rules

Pfad 3 - applicationHost.config global (L97):

root@kitploit:~
$rules = $ApplicationHostConfig.configuration.'system.webServer'.rewrite.rules

Keiner dieser Pfade greift auf .rewrite.outboundRules zu. Das zurückgegebene $rules-Objekt wird anschließend in Invoke-AnalyzerIISInformation.ps1 (L442–459) durchlaufen:

root@kitploit:~
$displayRewriteRules = ($currentRewriteRules.rule | Where-Object { $_.enabled -ne "false" }).name |
    Where-Object { $_ -notcontains $excludeRules }

Das .rule-Element ist nur in der eingehenden <rules>-Sammlung vorhanden. Selbst wenn outboundRules gelesen würden, müsste die Anzeigelogik aktualisiert werden, um .rule aus beiden Sammlungen zu durchlaufen.

Betroffene IIS-XML-Struktur

IIS speichert die URL-Rewrite-Konfiguration mit zwei getrennten untergeordneten Elementen unter <rewrite>:

root@kitploit:~
<system.webServer>
  <rewrite>
    <!-- inbound - what Health Checker reads -->
    <rules>
      <rule name="Redirect to HTTPS" enabled="true">
        <match url=".*" />
        <conditions><add input="{HTTPS}" pattern="^OFF$" /></conditions>
        <action type="Redirect" url="https://{HTTP_HOST}/{R:0}" />
      </rule>
    </rules>

    <!-- outbound - INVISIBLE to Health Checker -->
    <outboundRules>
      <rule name="EOMT OWA CSP - outbound" enabled="true">
        <match serverVariable="RESPONSE_Content-Security-Policy" pattern=".*" />
        <action type="Rewrite"
                value="default-src 'self'; script-src 'self' 'unsafe-inline';
                       style-src 'self' 'unsafe-inline';" />
      </rule>
    </outboundRules>
  </rewrite>
</system.webServer>

Auswirkungen

SzenarioAuswirkung
Admin führt den Health Checker nach Anwendung von EOMT ausBericht zeigt keine ausgehende CSP-Regel → Admin glaubt, die Mitigation fehlt
Admin verwendet den Health Checker als einziges Audit-ToolEOMT-Ausgangsregeln können nicht überprüft werden, ohne die IIS-Konfiguration manuell zu prüfen
Vorfallreaktion / Compliance-PrüfungenMitigationsnachweise fehlen in der Health-Checker-Ausgabe
Automatisierte Überwachung, die Health-Checker-JSON parstVorhandensein / Fehlen ausgehender Regeln wird nie sichtbar

Proof of Concept

Siehe poc_cve_2026_42897.ps1 in diesem Verzeichnis.

Das Skript:

  1. Erstellt eine In-Memory-Mock-web.config-XML mit sowohl einer eingehenden Regel als auch der ausgehenden Regel EOMT OWA CSP - outbound.
  2. Führt die verwundbare Health-Checker-Parsinglogik aus (nur eingehend) und zeigt deren Ausgabe.
  3. Führt die gepatchte Parsinglogik aus (eingehend + ausgehend) und zeigt den Unterschied.
  4. Reproduziert alle drei Konfigurationspfade (web.config, applicationHost pro Standort, applicationHost global).
root@kitploit:~
.\poc_cve_2026_42897.ps1

Erwartete Ausgabe bei einem verwundbaren (ungepatchten) Health Checker:

root@kitploit:~
[*] Vulnerable path (inbound only):
    Rules found: Redirect to HTTPS
    MISSING: EOMT OWA CSP - outbound

[*] Patched path (inbound + outbound):
    Rules found: Redirect to HTTPS, EOMT OWA CSP - outbound
    Outbound rule visible: TRUE

Behebung

Korrektur in Get-URLRewriteRule.ps1 - beide Sammlungen an jedem Pfad lesen:

root@kitploit:~
# web.config (L49)
$inbound  = $content.configuration.'system.webServer'.rewrite.rules
$outbound = $content.configuration.'system.webServer'.rewrite.outboundRules
$rules    = @{ inbound = $inbound; outbound = $outbound }

# applicationHost.config per-location (L72)
$inbound  = $location.'system.webServer'.rewrite.rules
$outbound = $location.'system.webServer'.rewrite.outboundRules
$rules    = @{ inbound = $inbound; outbound = $outbound }

# applicationHost.config global (L97)
$inbound  = $ApplicationHostConfig.configuration.'system.webServer'.rewrite.rules
$outbound = $ApplicationHostConfig.configuration.'system.webServer'.rewrite.outboundRules
$rules    = @{ inbound = $inbound; outbound = $outbound }

Korrektur in Invoke-AnalyzerIISInformation.ps1 - beide Sammlungen durchlaufen:

root@kitploit:~
$displayRewriteRules = @()
$displayRewriteRules += ($currentRewriteRules.inbound.rule  |
    Where-Object { $_.enabled -ne "false" }).name |
    Where-Object { $_ -notcontains $excludeRules }
$displayRewriteRules += ($currentRewriteRules.outbound.rule |
    Where-Object { $_.enabled -ne "false" }).name |
    Where-Object { $_ -notcontains $excludeRules }

Zeitleiste

DatumEreignis
2026-05-15Problem im Rahmen der Verifizierungsforschung zur EOMT-Bereitstellung identifiziert
2026-05-15PoC geschrieben und gegen Mock-IIS-Konfiguration getestet

NUR FÜR AUTORISIERTE SICHERHEITSFORSCHUNG. Testen Sie ausschließlich in kontrollierten Laborumgebungen.

Tool herunterladen