← Back to Feed CACHED · 2026-06-30 20:29:25 · CACHE_KEY CVE-2026-53434
CVE-2026-53434 · CWE-390 · Disclosed 2026-06-29

Detection of Error Condition Without Action vulnerability in Apache Tomcat when configuring CRLs for a FFM…

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
Do you agree?
01 · The Real Story

Tomcat's new connector quietly threw away the revocation list and never told anyone

CVE-2026-53434 is a CWE-390 Detection of Error Condition Without Action bug in Apache Tomcat's FFM (Foreign Function & Memory) connector — the modern Panama-based port of the Tomcat Native/OpenSSL TLS stack. When the connector is configured to enforce client-cert validation against a Certificate Revocation List, and the supplied CRL fails to load (malformed, expired, wrong path, unreadable), the FFM code path silently swallows the error instead of failing closed. Net effect: the connector continues to serve mTLS handshakes with no revocation checking at all, so a revoked client certificate can still authenticate. Affected ranges are roughly 9.0.83 → 9.0.118, 10.1.x through 10.1.51-ish, and 11.0.x through 11.0.17, with the FFM connector being mandatory only when operators chose it explicitly.

Apache rated this Low and they're right. The bug doesn't grant code execution, RCE, or unauthenticated access — it degrades the *strength* of an already-optional security feature (client-cert revocation) only on a non-default connector type, and only when CRLs are misconfigured. The realistic victim profile is narrow: organizations doing mTLS with a CRL-based PKI on the FFM connector with a stale or broken CRL file. Vendor severity matches reality.

"Silent CRL ignore on a niche FFM connector — degrades cert revocation enforcement, doesn't break TLS auth outright."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Operator deploys Tomcat with FFM connector + CRL-based mTLS

Defender stands up Tomcat 9.0.83–9.0.118 / 10.1.x / 11.0.x configured with org.apache.coyote.http11.Http11Nio2Protocol or the FFM variant, with SSLHostConfig referencing a certificateRevocationListFile. This is the precondition — APR/JSSE deployments are unaffected.
Conditions required:
  • FFM connector explicitly selected
  • CRL-file path configured on SSLHostConfig
  • mTLS / client-cert auth enforced
Where this breaks in practice:
  • FFM is the newer, less-common connector — most prod Tomcat runs JSSE or APR
  • CRL-based revocation is unusual; OCSP and short-lived certs dominate modern PKI
Detection/coverage: Trivial: grep server.xml and conf/Catalina/*.xml for certificateRevocationListFile + FFM protocol class.
STEP 02

CRL load silently fails

At connector startup or reload, the FFM/Panama TLS glue attempts to parse the CRL bytes through OpenSSL. On any error — malformed PEM, expired CRL no longer accepted, file unreadable — the FFM code path returns without raising, where JSSE and APR would throw. Tomcat logs nothing actionable and the connector comes up handling TLS *as if* CRL enforcement were active.
Conditions required:
  • CRL file is broken, stale, or unreadable
Where this breaks in practice:
  • Many operators run automated CRL fetch jobs (e.g. cron + curl) that catch staleness independently
  • Healthy PKI ops rotate before expiry — broken CRLs are a side-effect bug, not a design
Detection/coverage: Look for absence of CRL-load success log lines on startup; no scanner currently flags this state directly.
STEP 03

Attacker presents revoked client cert

An adversary who previously held a legitimately-issued client certificate that has since been revoked (departed employee, compromised device, decommissioned service account) connects to the mTLS-protected endpoint. The handshake completes because revocation is no longer checked.
Conditions required:
  • Attacker possesses private key for a once-valid, now-revoked cert
  • Endpoint is reachable from attacker's network position
Where this breaks in practice:
  • Requires prior insider access or theft of a real cert + key
  • Most mTLS deployments also bind certs to short TTLs or hardware tokens
  • Application-layer auth (SSO, session, RBAC) frequently sits behind the mTLS layer
Detection/coverage: ssl_client_s_dn accepted that should have been rejected — invisible to NIDS unless CRL state is correlated server-side.
STEP 04

Authenticated as revoked principal

The attacker now holds a session under the revoked identity's permissions. Impact is bounded by what that principal could access; there is no privilege escalation, no code execution, and no lateral pivot inherent to the bug.
Conditions required:
  • Revoked identity had non-trivial application access
Where this breaks in practice:
  • Defenders typically also disable upstream account on revocation
  • Audit pipelines flag use of decommissioned identities
Detection/coverage: Application-layer audit logs of revoked-user activity — but only if SOC correlates with CA revocation events.
03 · Intelligence Metadata

The supporting signals.

In-the-wild exploitationNone observed. No PoC, no incident reports, no campaigns as of 2026-07-01.
Public PoCNone published. Conceptual repro is trivial (malformed CRL file + revoked cert) but no weaponized tooling exists.
EPSSNot yet scored at disclosure; expected <0.1% / sub-5th percentile given Low severity and niche prereqs.
CISA KEVNot listed. Unlikely candidate.
CVSS vectorNo authoritative vendor vector published. Reasonable estimate: CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:L/I:L/A:N3.1 Low.
Affected versionsApache Tomcat 9.0.83 → 9.0.118, 10.1.x ≤ 10.1.51, 11.0.x ≤ 11.0.17 when running the FFM connector with CRL configured.
Fixed versions9.0.119, 10.1.52, 11.0.18 — FFM code now throws on CRL load error, matching JSSE/APR behaviour.
Exposure populationFFM connector adoption is a small minority of Tomcat installs; CRL-based mTLS on top of FFM is a small minority of that. Estimated affected fleet well under 1% of Tomcat deployments.
DisclosureReported to Tomcat security team 2026-06-08; public 2026-06-29.
ReporterApache Tomcat Security Team via private list; no external researcher credit published.
04 · The Call

noisgate verdict.

Final Verdict
= UNCHANGED to LOW (3.1/10)

Assessed at LOW because the single decisive factor is the narrow precondition stack: the FFM connector is a non-default deployment choice, CRL-based mTLS is a non-default PKI choice, and a broken CRL file is itself a misconfiguration state. The bug only degrades — does not remove — defence-in-depth in a population that is well under 1% of the Tomcat install base.

HIGH Severity floor LOW given no RCE / no auth bypass against valid certs
MEDIUM Exposure population estimate based on FFM connector adoption
HIGH Apache vendor-Low rating alignment

Why this verdict

  • Niche connector: FFM is the new Panama-based stack — most production Tomcat is JSSE or APR; FFM-only bug = small affected fleet.
  • Compounding precondition: requires CRL-file mTLS configuration AND a broken CRL AND attacker possession of a previously-valid, now-revoked cert+key. Three independent unlikelies multiply.
  • No primitives gained: no RCE, no auth bypass for never-trusted attackers, no privilege escalation — only weakens revocation against pre-issued, pre-trusted identities.
  • Role multiplier: Tomcat in a low/typical role (LOB app server, microservice host) — chain ends in revoked-identity reuse, bounded by that identity's prior permissions. In a high-value role (Tomcat fronting an IdP, ADFS proxy, internal CA web UI, secrets-manager front-end), the chain ends in impersonation of a revoked admin — but even then the CRL-misconfig precondition keeps the affected installed-base share well below the 1% floor that would force HIGH.
  • No KEV, no EPSS spike, no PoC — threat intel signal is flat.

Why not higher?

Not MEDIUM/HIGH because the bug requires multiple pre-existing conditions to align (FFM, CRL-mTLS, broken CRL, attacker-held revoked cert+key) and produces no new attacker primitives — it only reduces a defence-in-depth control's strength against a population the operator already chose to issue certs to. No KEV, no PoC, no observed exploitation.

Why not lower?

Not IGNORE because there *is* a real security regression: revocation checking is the entire point of CRL configuration, and a silent failure mode violates the operator's explicit security policy. Audit and compliance frameworks (FIPS, PCI-DSS mTLS scopes) will care.

05 · Compensating Control

What to do — in priority order.

  1. Inventory FFM connector + CRL usage across the fleet — Grep server.xml / SSLHostConfig for FFM protocol classes plus certificateRevocationListFile. If the intersection is empty, you're not exposed. Complete within the noisgate remediation window (no mitigation SLA at LOW).
  2. Validate CRL files load cleanly on every Tomcat restart — Pre-flight check the CRL with openssl crl -in <file> -noout -text in your deploy pipeline; fail the deploy if it errors. This neutralises the bug entirely even on unpatched Tomcat — apply opportunistically alongside the next release window.
  3. Switch FFM CRL-mTLS deployments to JSSE or APR temporarily — Both JSSE and APR fail-closed on bad CRLs. If you're on the FFM connector specifically for performance/Panama reasons, this is a 1-line protocol change in server.xml until you upgrade.
  4. Patch to 9.0.119 / 10.1.52 / 11.0.18 — Vendor fix aligns FFM behaviour with JSSE/APR (throws on CRL load error). Roll this in the standard 365-day noisgate remediation SLA for LOW; no fast-track needed.
What doesn't work
  • WAF / NGFW rules — the TLS handshake completes legitimately at the protocol level; no signature distinguishes a revoked-cert handshake from a valid one.
  • Network ACLs — the attacker is already trusted enough to reach the mTLS endpoint; that's the whole premise of mTLS.
  • OCSP stapling — different code path and unrelated bug class (see CVE-2026-24734 for the OCSP analog). Enabling OCSP does NOT fix the CRL load-error swallow.
06 · Verification

Crowdsourced verification payload.

Run on each Tomcat host as the Tomcat service user (read access to $CATALINA_BASE/conf). Example: ./check-cve-2026-53434.sh /opt/tomcat. Exits VULNERABLE if FFM+CRL config is found on an unpatched version, PATCHED if version is fixed or config is absent, UNKNOWN otherwise.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# noisgate verifier: CVE-2026-53434 — Tomcat FFM CRL silent-ignore
# Usage: ./check-cve-2026-53434.sh <CATALINA_BASE>
set -u
BASE="${1:-/opt/tomcat}"
CONF="$BASE/conf"
LIB="$BASE/lib"

if [ ! -d "$CONF" ] || [ ! -d "$LIB" ]; then
  echo "UNKNOWN: $BASE does not look like a Tomcat install"
  exit 2
fi

# 1. Derive Tomcat version
VER=$(java -cp "$LIB/catalina.jar" org.apache.catalina.util.ServerInfo 2>/dev/null \
      | awk -F/ '/Server number/ {print $2}' \
      | tr -d '[:space:]')
if [ -z "$VER" ]; then
  VER=$(ls "$LIB" | grep -oE 'catalina-[0-9.]+\.jar' | head -1 | grep -oE '[0-9.]+')
fi
echo "Tomcat version detected: ${VER:-unknown}"

# 2. Is version fixed?
is_fixed() {
  local v="$1"
  case "$v" in
    9.0.*)  [ "${v#9.0.}" -ge 119 ] && return 0 ;;
    10.1.*) [ "${v#10.1.}" -ge 52 ] && return 0 ;;
    11.0.*) [ "${v#11.0.}" -ge 18 ] && return 0 ;;
  esac
  return 1
}

# 3. Look for FFM connector + CRL config
FFM_HIT=$(grep -RiE 'protocol="[^"]*(OpenSSL|FFM|Panama)[^"]*"' "$CONF" 2>/dev/null | head -5)
CRL_HIT=$(grep -RiE 'certificateRevocationListFile' "$CONF" 2>/dev/null | head -5)

if [ -z "$FFM_HIT" ] || [ -z "$CRL_HIT" ]; then
  echo "PATCHED: FFM connector + CRL configuration not both present — not exposed"
  exit 0
fi

if is_fixed "$VER"; then
  echo "PATCHED: version $VER >= fixed release"
  exit 0
fi

echo "VULNERABLE: FFM connector with CRL on unpatched Tomcat $VER"
echo "--- FFM connector evidence ---"
echo "$FFM_HIT"
echo "--- CRL config evidence ---"
echo "$CRL_HIT"
exit 1
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning: run the verification script across your Tomcat fleet and find the intersection of (FFM connector) ∩ (CRL-file mTLS). For 99%+ of shops this set is empty and you can close the ticket. For the rest: per the noisgate mitigation SLA, LOW has no mandatory mitigation deadline — but a 5-minute fix is to add openssl crl -in <file> -noout to your deploy pre-flight so bad CRLs fail the rollout instead of silently weakening mTLS. Schedule the actual Tomcat upgrade to 9.0.119 / 10.1.52 / 11.0.18 within the noisgate remediation SLA of ≤365 days, bundled with your normal quarterly Tomcat patch train. Do not pull engineers off CRITICAL or HIGH work for this one.

Sources

  1. Apache Tomcat 11 security advisories
  2. Apache Tomcat 10 security advisories
  3. Apache Tomcat 9 security advisories
  4. Apache Tomcat 9.0 Changelog
  5. HeroDevs — Apache Tomcat CVE round-up (April 2026)
  6. MITRE CVE keyword search — Tomcat
  7. OpenCVE — Apache Tomcat tracker
  8. CWE-390: Detection of Error Condition Without Action
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.