6 critical advisoriessshhole OpenSSH bypass·Linux CVE-2026-98432·ClickHouse CVE-2026-116366·LiteLLM 1.107.0·PHP2Shell·GitLab CVE-2026-110264All advisories→
All security advisoriesSecurity advisory

ClickHouse Server unauthenticated remote code execution: CVE-2026-116366

On 30 October 2026 ClickHouse disclosed CVE-2026-116366, an integer overflow that under certain conditions lets an unauthenticated attacker with network access run code on a self-hosted ClickHouse server. Upgrade to 26.10.3.7-stable, 26.9.27.3-stable, 26.8.36.3-lts or 26.3.62.3-lts. Releases 26.7 and older get no fix. ClickHouse Cloud and BYOC are already patched.

Status
Reviewed 5 November: no exploitation reported and not in CISA KEV. Public code labelled with this CVE targets the separate Brotli flaw. The patch becomes public after 13 November 2026.
Affects
Self-hosted ClickHouse Server: 26.3, 26.8, 26.9 and 26.10 before the fixed releases, and every unsupported release
Severity
Critical, CVSS 4.0 9.5. Network, no authentication, high attack complexity.
Published
Updated

Reflects what was publicly known on the last updated date. Every fact links to a primary source at the end of the page.

On this page
  1. Are you affected?
  2. What to do
  3. Fixed versions
  4. What we know
  5. If you cannot upgrade
  6. Look for signs
  7. Timeline
  8. Questions
  9. Sources

Are you affected?

If you run ClickHouse yourself, yes. Cloud and BYOC customers are not.

  • You self-host ClickHouse on 26.3, 26.8, 26.9 or 26.10

    Packages, Docker, Kubernetes operator, bare binary

    Act now

    Upgrade to the fixed release for your line. Fixed versions

  • You self-host ClickHouse 26.7 or older

    Any unsupported release, including 25.3 and 25.8 LTS

    Act now

    No fix is coming for your release. Move to 26.8.36.3-lts or a newer supported line, and restrict network access until you do.

  • Your ClickHouse ports are reachable from the internet

    Public IP, published Docker port, open security group

    Act now

    Upgrade these first. If you cannot today, close the ports now. How

  • You embed or ship ClickHouse in a product or appliance

    Bundled binary or image in your own release

    Update needed

    Rebuild with a fixed ClickHouse release and tell your customers which version of your product carries it.

  • You use ClickHouse Cloud or BYOC

    Managed by ClickHouse

    Protected

    No action. ClickHouse has already patched every managed service.

What to do

The upgrade is the fix. ClickHouse lists no workaround.

  1. Find every ClickHouse node and its version

    Check each replica and shard, not just the one your application talks to. Include Keeper-adjacent and test clusters.
    Shell
    # From any client that can log in
    clickhouse-client --query "SELECT version()"
    
    # Every node in a cluster at once (replace <cluster> with your cluster name)
    clickhouse-client --query "SELECT hostName(), version()
      FROM clusterAllReplicas('<cluster>', system.one) ORDER BY 1"
    
    # Docker: the image tag on each running container
    docker ps --format '{{.Names}}\t{{.Image}}' | grep -i clickhouse
    
    # Kubernetes: the image on every ClickHouse pod
    kubectl get pods -A -o jsonpath='{range .items[*]}{.metadata.namespace}/{.metadata.name}{"\t"}{.spec.containers[*].image}{"\n"}{end}' \
      | grep -i clickhouse
  2. Find which nodes are reachable from untrusted networks

    A listener on 0.0.0.0 or :: is reachable from wherever the host is. The official Docker image listens on all interfaces by default, so a published port is an exposed port. Confirm from outside with your cloud security group or an external port scan.
    Shell
    # Which addresses and ports the server listens on
    sudo ss -ltnp | grep clickhouse
    
    # Any listen_host overrides in the server config
    grep -rn "listen_host" /etc/clickhouse-server/
  3. Upgrade, exposed nodes first

    Move to the fixed release for your line in the table below, from packages.clickhouse.com or the Docker image. Restart the server; the old binary stays loaded until you do.
  4. Confirm the running version

    Rerun SELECT version() on every node. A Docker tag like 26.8 only moves when you pull it again.

Fixed versions

Any later release on the same line also contains the fix.

Fixed ClickHouse version for each release line
If you runUpgrade toNotes
26.1026.10.3.7-stableSupported stable
26.926.9.27.3-stableSupported stable
26.826.8.36.3-ltsSupported LTS
26.326.3.62.3-ltsSupported LTS
26.7 and olderNoneUnsupported. Move to 26.8.36.3-lts or newer

ClickHouse only fixes the release lines listed as supported in SECURITY.md. The CVE record marks every version outside the four fixed ranges as affected by default, and the vendor has not said that any older release is safe. If you are on 26.7, 25.8 LTS or anything earlier, 26.8 LTS is the shortest supported step.

What we know

ClickHouse has published very little detail, deliberately, while self-hosted users patch.

  • No login needed. The CVE record says an unauthenticated user with network access can run arbitrary code on the server under certain conditions.
  • The bug is an integer overflow (CWE-190). ClickHouse has not named the component, protocol or port.
  • Hard, not impossible. The CVSS 4.0 vector rates attack complexity high, which usually means the attacker must defeat memory protections such as ASLR. Every other metric is at its worst: network reachable, no privileges, no user interaction, high impact on the server and on systems beyond it.
  • Code runs as the server. Whoever succeeds runs as the clickhouse user, which can read every table on disk, the server configuration and any credentials it holds for S3, Kafka, dictionaries or remote databases.
  • The patch is still private. ClickHouse says the pull request will be made public after 13 November 2026. Once it is, anyone can study the fix to locate the bug.
  • Not known to be exploited. No in-the-wild use is reported, and the CVE was not in CISA KEV as of 4 November 2026. ClickHouse says it has no evidence of exploitation in ClickHouse Cloud. The bug was reported by Elshad Toklayev through ClickHouse's bug bounty.
  • Public code carries this CVE number, but targets a different flaw. A third-party proof of concept and a Nuclei template labelled CVE-2026-116366 send a crafted Brotli-compressed body to the HTTP interface. That is the bundled Brotli decoder bug, which ClickHouse publishes as a separate CVE-2026-111497 with its own notice, while it classes CVE-2026-116366 as an integer overflow. The public code shows a denial of service, not code execution. ClickHouse has not confirmed the root cause of CVE-2026-116366, so a server that passes these checks is not proven safe. Only the fixed version is.

If you cannot upgrade today

ClickHouse lists no workaround. Restricting who can connect narrows the attack. It does not fix the bug.

  • Block every ClickHouse port, not two. Because the vulnerable interface is undisclosed, restrict all of them at the firewall or security group: 8123 and 8443 (HTTP), 9000 and 9440 (native), 9004 (MySQL), 9005 (PostgreSQL), 9009 and 9010 (interserver), 9100 (gRPC) and any custom port in your config. See ClickHouse's port list.
  • Allow only known clients. Permit the application hosts, other replicas and shards, and your administrators' network. Deny everything else, including other workloads in the same VPC that have no reason to connect.
  • Bind to private addresses. Set listen_host to a private interface instead of 0.0.0.0, and stop publishing ClickHouse ports from Docker hosts that do not need them.
  • Do not count on user-level controls. Passwords and the networks setting in users.xml apply when a user logs in. This bug needs no login, so only a network-level block helps.

For the previous unauthenticated native-interface bug, CVE-2024-6873, ClickHouse's own workaround was to lock the native interface down to trusted IP addresses until patched. The advice here extends that to every listener because this time the interface is not named.

Look for signs

ClickHouse has published no indicators of compromise. These are general checks for a memory-corruption attack on a database server, not vendor-supplied detections.

1. Unexplained server crashes

Exploits rated high complexity often take several tries, and a failed try against a memory bug usually crashes the process. Crashes with no matching query in your application logs, especially on exposed nodes, deserve a closer look.

Shell
# Fatal signals in the server error log, including rotated files
zgrep -h -E "Received signal|<Fatal>" /var/log/clickhouse-server/clickhouse-server.err.log*

# The same crashes from inside ClickHouse, if crash_log is enabled
clickhouse-client --query "SELECT event_time, signal, query_id, version
  FROM system.crash_log ORDER BY event_time DESC LIMIT 50"

2. Processes the server should not start

A successful attack runs code as the clickhouse user. Shells, downloaders or network tools running as that user are a strong sign.

Shell
# Everything running as the clickhouse user. Expect clickhouse-server (often
# twice: watchdog and server) and any configured odbc or library bridge.
ps -u clickhouse -o pid,ppid,etime,args

3. Connections from unexpected sources

Review firewall or flow logs for connections to ClickHouse ports from addresses outside your application and cluster ranges. Because the attack needs no login, it may not appear in system.session_log or system.query_log.

If you find signs of compromise, treat the host as lost: rebuild it from a fixed release, and rotate every credential the server held, including ClickHouse user passwords, S3 and cloud keys, Kafka and remote database credentials, and interserver secrets.

Timeline

Dates are UTC.

  1. 2026-10-25

    2026-10-25

    ClickHouse merges an upgrade of its bundled Brotli decoder for CVE-2026-111497, with backports labelled for 26.10, 26.9, 26.8 and 26.3.

    ctxsec

  2. 2026-10-26

    2026-10-26

    ClickHouse, as CNA, reserves CVE-2026-116366.

    CVE record

  3. 2026-10-30

    2026-10-3011:00 UTC

    ClickHouse publishes CVE-2026-116366: unauthenticated RCE, CVSS 4.0 9.5, fixed in 26.3.62.3-lts, 26.8.36.3-lts, 26.9.27.3-stable and 26.10.3.7-stable. Cloud and BYOC already patched.

    ClickHouse Trust Center

  4. 2026-10-31

    2026-10-3106:32 UTC

    A public proof of concept labelled CVE-2026-116366 appears on GitHub. It exercises the bundled Brotli decoder flaw (CVE-2026-111497) and demonstrates a denial of service, not code execution.

    GitHub

  5. 2026-11-02

    2026-11-02

    ProjectDiscovery adds a Nuclei template under CVE-2026-116366 that sends the same Brotli payload to the HTTP interface.

    nuclei-templates

  6. 2026-11-13

    2026-11-13

    Earliest date ClickHouse will make the pull request containing the patch public.

    ClickHouse Trust Center

Questions

Which ClickHouse version fixes CVE-2026-116366?

26.10.3.7-stable, 26.9.27.3-stable, 26.8.36.3-lts or 26.3.62.3-lts, or any later release on the same line. These are the only supported lines, so anyone on another release must move to one of them.

I run ClickHouse 26.7 or older. Am I affected?

Assume so. ClickHouse's CVE record lists only the four supported lines and marks every other version affected by default, and SECURITY.md lists 26.7, 26.4 to 26.6, 26.1, 26.2 and all of 25.x and earlier as unsupported. No fix will be released for them. Move to 26.8 LTS or a newer supported line.

Do I need to do anything on ClickHouse Cloud or BYOC?

No. ClickHouse says all managed deployments, including ClickHouse Cloud and BYOC, are already patched and that it has no evidence the flaw was exploited in ClickHouse Cloud.

Which port or protocol is vulnerable?

ClickHouse has not said. The public description says only an unauthenticated user with network access can trigger it under certain conditions. ClickHouse says the pull request with the patch will be made public after 13 November 2026. Until then, treat every ClickHouse listener as a possible entry point, not just 9000 and 8123.

Does a password on the default user protect me?

Do not rely on it. The CVE says no authentication is needed, so the bug is reached before or without a login. Passwords and per-user network restrictions in users.xml still matter for everything else, but only the upgrade or a network-level block addresses this flaw.

Is CVE-2026-116366 being exploited?

No exploitation has been reported, and the CVE was not in CISA KEV as of its 4 November 2026 release. A public proof of concept and a Nuclei scanner template labelled CVE-2026-116366 appeared on 31 October and 2 November, but both target the bundled Brotli decoder flaw that ClickHouse tracks separately as CVE-2026-111497, and they demonstrate a denial of service, not code execution. Expect real exploit work once the patch is public after 13 November, so upgrade before then.

Is there a workaround if I cannot upgrade today?

ClickHouse lists none. The practical stopgap is to block every ClickHouse port at the firewall or security group so only trusted application hosts and cluster peers can connect. That narrows who can attack but does not fix the bug.

Sources

When an advisory like this lands, we test your exposure as soon as it's public.

Vulneron matches new vulnerabilities and public exploits against your live surface, confirms what is actually exploitable for you, and alerts in real time only when it is critical.