---
id: CVE-2026-84501
title: >-
  An unauthenticated attacker can inject arbitrary fake log lines into Apache
  ZooKeeper's operational log by sending a crafted add_auth("ensemble", ...)
  request containing newline characters (\n)
summary: >-
  An unauthenticated attacker can inject arbitrary fake log lines into Apache
  ZooKeeper's operational log by sending a crafted add_auth("ensemble", ...)
  request containing newline characters (\n). When the ensemble name doesn't
  match, Ense…
severity: medium
cvss: 5.3
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N'
cwe:
  - CWE-117
vendor: apache
product: zookeeper
affected:
  - 'zookeeper >= 3.8.0, < 3.8.7'
  - 'zookeeper >= 3.9.0, < 3.9.6'
patched:
  - zookeeper 3.9.6
published: '2026-09-16'
updated: '2026-09-18'
sourceUpdated: '2026-09-18T14:36:51.747'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-84501'
references:
  - url: 'https://lists.apache.org/thread/ohby1g6zjt72p0w79rhbr41nczzvr33y'
    label: security@apache.org
  - url: 'http://www.openwall.com/lists/oss-security/2026/09/15/7'
    label: af854a3a-2127-422b-91ae-364da2661108
tags:
  - nvd
  - cve.org
epss: 0.00781
epssPercentile: 0.54023
ssvc:
  exploitation: none
  automatable: 'yes'
  technicalImpact: partial
  timestamp: '2026-09-16T19:42:27.138755Z'
ingestedAt: '2026-09-16T09:53:11.603Z'
---

## Overview

An unauthenticated attacker can inject arbitrary fake log lines into Apache ZooKeeper's operational log by sending a crafted add_auth("ensemble", ...) request containing newline characters (\n). When the ensemble name doesn't match, EnsembleAuthenticationProvider.handleAuthentication() logs the raw, unsanitized name via LOG.warn(). Because SLF4J's {} placeholder preserves embedded newlines, the attacker can forge complete log entries — with arbitrary timestamps, log levels, class names, and messages — that are visually indistinguishable from genuine ZooKeeper log output.

This issue affects Apache ZooKeeper: from 3.9.0 through 3.9.5, from 3.8.0 through 3.8.6.

Users are recommended to upgrade to version 3.8.7 or 3.9.6, which fixes the issue.

## Affected

- `zookeeper >= 3.8.0, < 3.8.7`
- `zookeeper >= 3.9.0, < 3.9.6`

## Remediation

Upgrade past the affected range:

- `zookeeper 3.9.6`
