CVE-2026-84700: Pika Unauthenticated Replication Access via Internal Protobuf Port
PikiwiDB (Pika) v3.5.7 exposes an internal protobuf replication server on a port derived from the client port plus 2000 (e.g. 11221 when the default client port 9221 is used) that does not authenticate incoming requests. Although requirepass is intended to gate replication — a slave presents it as masterauth inside its MetaSync request — only the MetaSync handler (HandleMetaSyncRequest) validates it; the frame dispatcher (DealMessage) does not require a completed or attempted MetaSync before routing other message types to their handlers. As a result, an unauthenticated remote attacker can connect directly to the replication port and issue TrySync, DBSync, BinlogSync, and RemoveSlaveNode requests, obtaining the full-sync snapshot and live write stream and removing replica nodes, even when requirepass is configured.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Pikato a version that resolves this vulnerability.Fixed in v3.5.7
Event History
Frequently Asked Questions
Which deployments are exposed to unauthenticated access?
Pika v3.5.7 deployments are exposed when their internally derived protobuf replication port is reachable by an attacker. The replication port is the client port plus 2000; for example, the default client port 9221 results in replication port 11221.
Does configuring requirepass prevent exploitation?
No. requirepass is checked by the MetaSync handler, but other replication message types can be dispatched without completing or attempting MetaSync, allowing unauthenticated requests even when requirepass is configured.
What can an unauthenticated attacker do through the replication port?
An attacker can issue TrySync, DBSync, BinlogSync, and RemoveSlaveNode requests. This can expose the full-sync snapshot and live write stream, and can remove replica nodes.
What is the immediate mitigation if patching is not available?
Restrict network access to the derived replication port so untrusted remote systems cannot connect to it. Ensure this restriction covers the client port plus 2000, such as 11221 when the client port is 9221.