Executive brief
Central Dogma is a configuration management system used by LINE for storing and distributing versioned configuration data across microservices. When ZooKeeper replication is enabled for high availability without explicitly setting a replication secret, the system silently falls back to a hard-coded default credential "ch4n63m3" (leetspeak for "change me") that is visible in public source code. An attacker with local or network access to a Central Dogma replica can use this known credential to read the entire replication log—exposing all configuration changes, secrets, and encryption key rotations—or to impersonate a cluster member and inject malicious commands that execute on all replicas, effectively compromising the entire configuration infrastructure.
Technical details
The vulnerability exists in `ZooKeeperReplicationConfig.secret()`, which uses `firstNonNull(convertValue(secret, "replication.secret"), DEFAULT_SECRET)` to silently substitute the hard-coded constant `"ch4n63m3"` when the configuration parameter is missing or null. Central Dogma embeds an Apache ZooKeeper instance in each replica (via `EmbeddedZooKeeper extends QuorumPeer`), creating a distributed ensemble across the cluster's inter-replica network. The same default secret is wired into both the client-port SASL context (used for local authentication) and the quorum/learner SASL contexts (used for inter-replica peer communication). The credential is public in the GitHub repository, discoverable within seconds. An attacker with local host access (Surface A) can authenticate to the loopback-bound client port (127.0.0.1:2381) and read `/dogma/logs` and `/dogma/log_blocks`, obtaining all replicated commands—including master-key rotations and encryption metadata. An attacker with network access to a replica (Surface B, multi-tenant Kubernetes or shared VPC scenarios) can reach the quorum/election ports (not loopback-bound), impersonate a legitimate peer, receive all commits in real time, and inject forged log entries that are auto-replayed on every replica via `ZooKeeperCommandExecutor.replayLogs()`, enabling arbitrary command execution across the cluster. The patch, released in version 0.84.0, removes the default constant and enforces an explicit non-empty, non-placeholder secret via `checkArgument()` at startup, causing the process to fail closed if replication.secret is missing.
Affected products
- LINE Central Dogma < 0.84.0
Timeline
- 2026-06-22: disclosed: Advisory published on GitHub
- 2026-06-22: patched: Fixed in version 0.84.0
- 2026-09-11: advisory: CVE-2026-11746 assigned