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.
{
"binaries": [
{
"binary_name": "libzookeeper-java",
"binary_version": "3.4.13-5ubuntu0.1"
},
{
"binary_name": "libzookeeper-mt2",
"binary_version": "3.4.13-5ubuntu0.1"
},
{
"binary_name": "libzookeeper-st2",
"binary_version": "3.4.13-5ubuntu0.1"
},
{
"binary_name": "python3-zookeeper",
"binary_version": "3.4.13-5ubuntu0.1"
},
{
"binary_name": "zookeeper",
"binary_version": "3.4.13-5ubuntu0.1"
},
{
"binary_name": "zookeeper-bin",
"binary_version": "3.4.13-5ubuntu0.1"
},
{
"binary_name": "zookeeperd",
"binary_version": "3.4.13-5ubuntu0.1"
}
]
}{
"binaries": [
{
"binary_name": "libzookeeper-java",
"binary_version": "3.4.13-6ubuntu4.1"
},
{
"binary_name": "libzookeeper-mt2",
"binary_version": "3.4.13-6ubuntu4.1"
},
{
"binary_name": "libzookeeper-st2",
"binary_version": "3.4.13-6ubuntu4.1"
},
{
"binary_name": "python3-zookeeper",
"binary_version": "3.4.13-6ubuntu4.1"
},
{
"binary_name": "zookeeper",
"binary_version": "3.4.13-6ubuntu4.1"
},
{
"binary_name": "zookeeper-bin",
"binary_version": "3.4.13-6ubuntu4.1"
},
{
"binary_name": "zookeeperd",
"binary_version": "3.4.13-6ubuntu4.1"
}
]
}{
"binaries": [
{
"binary_name": "libzookeeper-java",
"binary_version": "3.9.1-1build2"
},
{
"binary_name": "libzookeeper-mt2",
"binary_version": "3.9.1-1build2"
},
{
"binary_name": "libzookeeper-st2",
"binary_version": "3.9.1-1build2"
},
{
"binary_name": "python3-zookeeper",
"binary_version": "3.9.1-1build2"
},
{
"binary_name": "zookeeper",
"binary_version": "3.9.1-1build2"
},
{
"binary_name": "zookeeper-bin",
"binary_version": "3.9.1-1build2"
},
{
"binary_name": "zookeeperd",
"binary_version": "3.9.1-1build2"
}
]
}{
"binaries": [
{
"binary_name": "libzookeeper-java",
"binary_version": "3.9.5-1"
},
{
"binary_name": "libzookeeper-mt2",
"binary_version": "3.9.5-1"
},
{
"binary_name": "libzookeeper-st2",
"binary_version": "3.9.5-1"
},
{
"binary_name": "python3-zookeeper",
"binary_version": "3.9.5-1"
},
{
"binary_name": "zookeeper",
"binary_version": "3.9.5-1"
},
{
"binary_name": "zookeeper-bin",
"binary_version": "3.9.5-1"
},
{
"binary_name": "zookeeperd",
"binary_version": "3.9.5-1"
}
]
}{
"binaries": [
{
"binary_name": "libzookeeper-java",
"binary_version": "3.4.5+dfsg-1ubuntu0.1~esm3"
},
{
"binary_name": "libzookeeper-mt2",
"binary_version": "3.4.5+dfsg-1ubuntu0.1~esm3"
},
{
"binary_name": "libzookeeper-st2",
"binary_version": "3.4.5+dfsg-1ubuntu0.1~esm3"
},
{
"binary_name": "libzookeeper2",
"binary_version": "3.4.5+dfsg-1ubuntu0.1~esm3"
},
{
"binary_name": "python-zookeeper",
"binary_version": "3.4.5+dfsg-1ubuntu0.1~esm3"
},
{
"binary_name": "zookeeper",
"binary_version": "3.4.5+dfsg-1ubuntu0.1~esm3"
},
{
"binary_name": "zookeeper-bin",
"binary_version": "3.4.5+dfsg-1ubuntu0.1~esm3"
},
{
"binary_name": "zookeeperd",
"binary_version": "3.4.5+dfsg-1ubuntu0.1~esm3"
}
]
}{
"binaries": [
{
"binary_name": "libzookeeper-java",
"binary_version": "3.4.8-1ubuntu0.1~esm2"
},
{
"binary_name": "libzookeeper-mt2",
"binary_version": "3.4.8-1ubuntu0.1~esm2"
},
{
"binary_name": "libzookeeper-st2",
"binary_version": "3.4.8-1ubuntu0.1~esm2"
},
{
"binary_name": "libzookeeper2",
"binary_version": "3.4.8-1ubuntu0.1~esm2"
},
{
"binary_name": "python-zookeeper",
"binary_version": "3.4.8-1ubuntu0.1~esm2"
},
{
"binary_name": "zookeeper",
"binary_version": "3.4.8-1ubuntu0.1~esm2"
},
{
"binary_name": "zookeeper-bin",
"binary_version": "3.4.8-1ubuntu0.1~esm2"
},
{
"binary_name": "zookeeperd",
"binary_version": "3.4.8-1ubuntu0.1~esm2"
}
]
}{
"binaries": [
{
"binary_name": "libzookeeper-java",
"binary_version": "3.4.13-3ubuntu0.1~esm1"
},
{
"binary_name": "libzookeeper-mt2",
"binary_version": "3.4.13-3ubuntu0.1~esm1"
},
{
"binary_name": "libzookeeper-st2",
"binary_version": "3.4.13-3ubuntu0.1~esm1"
},
{
"binary_name": "python-zookeeper",
"binary_version": "3.4.13-3ubuntu0.1~esm1"
},
{
"binary_name": "zookeeper",
"binary_version": "3.4.13-3ubuntu0.1~esm1"
},
{
"binary_name": "zookeeper-bin",
"binary_version": "3.4.13-3ubuntu0.1~esm1"
},
{
"binary_name": "zookeeperd",
"binary_version": "3.4.13-3ubuntu0.1~esm1"
}
]
}