Apache Tomcat Tribes Spawns Suspicious Child Process After Deserialization - STRICT
SIGMA detection rule by Adama ASSIONGBON (SOC & CTI Consultant), https://linkedin.com/in/adama-assiongbon-9029893a · Unknown
Detects a suspicious shell, discovery, download, or scripting process spawned by the Tomcat Java process, consistent with CVE-2026-34486 Tribes EncryptInterceptor fail-open deserialization RCE. SOC L1 should verify the source, affected host, user, process or request fields, timing, and related activity.
Detecte un processus shell, de reconnaissance, de telechargement ou de script suspect lance par le processus Java de Tomcat, coherent avec l'exploitation de CVE-2026-34486. La regression sur EncryptInterceptor fait qu'un message Tribes dont le dechiffrement echoue est quand meme transmis a la deserialisation Java au lieu d'etre rejete, ce qui permet a un attaquant non authentifie d'atteindre ObjectInputStream.readObject() sur le port 4000 par defaut avec une chaine de gadgets comme CommonsCollections6. La chaine de gadgets classique invoque Runtime.exec(), ce qui cree un processus enfant reel observable au niveau OS, meme si le trafic reseau Tribes est chiffre et donc peu inspecte par la plupart des WAF/IDS. Le SOC L1 doit vérifier la source, l’hôte affecté, l’utilisateur, les champs de processus ou de requête, la chronologie et les activités associées.
title: Apache Tomcat Tribes Spawns Suspicious Child Process After Deserialization - STRICT
id: da4c6968-45ec-49ce-8798-bef0b8087197
status: experimental
description: |
Detects a suspicious shell, discovery, download, or scripting process spawned by the Tomcat Java process, consistent with CVE-2026-34486 Tribes EncryptInterceptor fail-open deserialization RCE. SOC L1 should verify the source, affected host, user, process or request fields, timing, and related activity.
Detecte un processus shell, de reconnaissance, de telechargement ou de script suspect lance par le processus Java de Tomcat, coherent avec l'exploitation de CVE-2026-34486. La regression sur EncryptInterceptor fait qu'un message Tribes dont le dechiffrement echoue est quand meme transmis a la deserialisation Java au lieu d'etre rejete, ce qui permet a un attaquant non authentifie d'atteindre ObjectInputStream.readObject() sur le port 4000 par defaut avec une chaine de gadgets comme CommonsCollections6. La chaine de gadgets classique invoque Runtime.exec(), ce qui cree un processus enfant reel observable au niveau OS, meme si le trafic reseau Tribes est chiffre et donc peu inspecte par la plupart des WAF/IDS. Le SOC L1 doit vérifier la source, l’hôte affecté, l’utilisateur, les champs de processus ou de requête, la chronologie et les activités associées.
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-34486
- https://www.striga.ai/research/tomcat-tribes-unauth-rce
- https://socradar.io/blog/cve-2026-34486-apache-tomcat-tribes-rce/
- https://fieldeffect.com/blog/public-exploit-code-apache-tomcat-flaw
- https://tomcat.apache.org/security-11.html
- https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2026-34486
author: Adama ASSIONGBON (SOC & CTI Consultant), https://linkedin.com/in/adama-assiongbon-9029893a
date: 2026-08-06
logsource:
product: linux
category: process_creation
detection:
selection_parent_java_image:
ParentImage|endswith:
- '/java'
- '/javaw'
selection_parent_tomcat_cmd:
ParentCommandLine|contains:
- 'org.apache.catalina.startup.Bootstrap'
- 'catalina.base'
- 'catalina.home'
- 'CATALINA_BASE'
- 'CATALINA_HOME'
- 'tomcat'
selection_parent_tomcat_currentdir:
CurrentDirectory|contains:
- '/tomcat'
- '/catalina'
selection_parent_container_context:
ContainerName|contains: 'tomcat'
selection_parent_kubernetes_context:
KubernetesPodName|contains: 'tomcat'
selection_child_shell_or_tool:
Image|endswith:
- '/sh'
- '/bash'
- '/dash'
- '/zsh'
- '/python'
- '/python3'
- '/perl'
- '/ruby'
- '/curl'
- '/wget'
- '/nc'
- '/ncat'
- '/socat'
- '/busybox'
- '/id'
- '/whoami'
- '/uname'
- '/touch'
- '/env'
- '/printenv'
selection_cli_discovery_or_secret:
CommandLine|contains:
- ' id'
- 'id &&'
- ' id;'
- '/usr/bin/id'
- 'whoami'
- 'uname -a'
- 'printenv'
- ' env'
- '/proc/self/environ'
- 'curl http'
- 'curl -k'
- 'wget http'
- 'nc -e'
- 'ncat -e'
- 'socat '
- 'bash -i'
- '/dev/tcp/'
- 'touch /tmp/'
- 'base64 -d'
- 'base64 --decode'
selection_cli_inline_scripting:
CommandLine|contains:
- 'python -c'
- 'python3 -c'
- 'perl -e'
- 'ruby -e'
selection_child_suspicious_path:
Image|contains:
- '/tmp/'
- '/dev/shm/'
- '/var/tmp/'
filter_main_tomcat_startup_scripts:
CommandLine|contains:
- 'catalina.sh'
- 'setenv.sh'
- 'digest.sh'
filter_main_package_management:
CommandLine|contains:
- 'apt-get'
- 'yum install'
- 'dpkg -'
condition: >
(
selection_parent_java_image
and (selection_parent_tomcat_cmd or selection_parent_tomcat_currentdir or selection_parent_container_context or selection_parent_kubernetes_context)
)
and (
(selection_child_shell_or_tool and (selection_cli_discovery_or_secret or selection_cli_inline_scripting))
or selection_child_suspicious_path
)
and not 1 of filter_main_*
fields:
- UtcTime
- Computer
- User
- Image
- CommandLine
- ParentImage
- ParentCommandLine
- CurrentDirectory
- ProcessId
- ParentProcessId
- ContainerId
- ContainerName
- KubernetesPodName
- KubernetesNamespace
falsepositives:
- Authorized Tomcat administrator running troubleshooting commands under the same service account
- Startup or provisioning scripts that legitimately invoke shell tools from the Tomcat process during container initialization
level: high
tags:
- attack.execution
- attack.discovery
- attack.command-and-control
- attack.t1059
- attack.t1059.004
- attack.t1082
- cve.2026-34486