Skip to content

YARA · Signature Base (Florian Roth / Nextron)

SIGNATURE_BASE_EXPL_Log4J_CVE_2021_44228_Dec21_Hard

Detects indicators in server logs that indicate the exploitation of CVE-2021-44228

ExploitSignature Base (Florian Roth / Nextron)Detection Rule License 1.1Compiles with YARA-X
Author
Florian Roth
Date
2021-12-10
Modified
2025-03-20
Score / Quality
65 / 85

What this rule detects

Detects indicators in server logs that indicate the exploitation of CVE-2021-44228

It defines 8 patterns (6 text, 0 hex, 2 regex).

Summary generated from the rule's metadata and condition.

Rule source

expl-log4j-cve-2021-44228-dec21-hard.yarDetection Rule License 1.1
rule SIGNATURE_BASE_EXPL_Log4J_CVE_2021_44228_Dec21_Hard : FILE CVE_2021_44228
{
	meta:
		description = "Detects indicators in server logs that indicate the exploitation of CVE-2021-44228"
		author = "Florian Roth"
		id = "5297c42d-7138-507d-a3eb-153afe522816"
		date = "2021-12-10"
		modified = "2025-03-20"
		reference = "https://twitter.com/h113sdx/status/1469010902183661568?s=20"
		source_url = "https://github.com/Neo23x0/signature-base/blob/94a1c48d7ab499879287ff611dfe7f9c56376030/yara/expl_log4j_cve_2021_44228.yar#L118-L140"
		license_url = "https://github.com/Neo23x0/signature-base/blob/94a1c48d7ab499879287ff611dfe7f9c56376030/LICENSE"
		logic_hash = "9a4fc285dd1680ebc8a1042eeb5fbba73b9e2df70678adf3163122d84405325e"
		score = 65
		quality = 85
		tags = "FILE, CVE-2021-44228"

	strings:
		$x1 = /\$\{jndi:(ldap|ldaps|rmi|dns|iiop|http|nis|nds|corba):\/[\/]?[a-z-\.0-9]{3,120}:[0-9]{2,5}\/[a-zA-Z\.]{1,32}\}/
		$x2 = "Reference Class Name: foo"
		$fp1r = /(ldap|rmi|ldaps|dns):\/[\/]?(127\.0\.0\.1|192\.168\.|172\.[1-3][0-9]\.|10\.)/
		$fpg2 = "<html"
		$fpg3 = "<HTML"
		$fp1 = "/QUALYSTEST" ascii
		$fp2 = "w.nessus.org/nessus"
		$fp3 = "/nessus}"

	condition:
		1 of ( $x* ) and not 1 of ( $fp* )
}

Strings (8 patterns)

IdentifierTypeValueModifiers
$x1regex/\$\{jndi:(ldap|ldaps|rmi|dns|iiop|http|nis|nds|corba):\/[\/]?[a-z-\.0-9]{3,120}:[0-9]{2,5}\/[a-zA-Z\.]{1,32}\}/
$x2text"Reference Class Name: foo"
$fp1rregex/(ldap|rmi|ldaps|dns):\/[\/]?(127\.0\.0\.1|192\.168\.|172\.[1-3][0-9]\.|10\.)/
$fpg2text"<html"
$fpg3text"<HTML"
$fp1text"/QUALYSTEST"ascii
$fp2text"w.nessus.org/nessus"
$fp3text"/nessus}"

Condition

1 of ( $x* ) and not 1 of ( $fp* )

In plain words (Heuristic)

  • At least 1 patterns in ( $x* ) must match.
  • At least 1 patterns in ( $fp* ) must match.

Test this rule in your browser

Drop a file to scan it with this rule using YARA-X compiled to WebAssembly. Nothing is uploaded.

Drop a file here or click to chooseScanned locally with YARA-X. Files up to 200 MB.

Open in editor

References

Licence & attribution

Author: Florian Roth

Source repository: Signature Base (Florian Roth / Nextron) @ 94a1c48d7a

Licence: Detection Rule License 1.1 (repository licence)

Original rule

Mirrored via YARA Forge 20260927, which prefixes rule names with the source and adds normalised meta fields.

Rule id: 5297c42d-7138-507d-a3eb-153afe522816

Tags:FILECVE_2021_44228