VYPR
Low severity3.3NVD Advisory· Published Jun 5, 2026

CVE-2026-11312

CVE-2026-11312

Description

A denial-of-service vulnerability in bytedance InfiniStore allows local attackers to degrade performance by exploiting hash collisions in its KV map handler.

AI Insight

LLM-synthesized narrative grounded in this CVE's description and references.

A denial-of-service vulnerability in bytedance InfiniStore allows local attackers to degrade performance by exploiting hash collisions in its KV map handler.

Vulnerability

A vulnerability exists in the purge_kv_map function within the KV Map Handler of bytedance InfiniStore, specifically in the /src/infinistore.h library. Versions up to and including commit 502490382125803f785c80bf0345e9038df31f88 are affected. The issue arises from the use of the default std::hash<std::string> for a process-wide std::unordered_map<std::string, boost::intrusive_ptr> kv_map, which is susceptible to adversarial collision generation, leading to inefficient algorithmic complexity [1].

Exploitation

An attacker with local access can exploit this vulnerability by submitting a large number of distinct cache keys that intentionally collide under the default std::hash<std::string> implementation. This causes excessive bucket reuse in the global kv_map. The exploit requires the ability to submit cache keys to the InfiniStore service and relies on the internal memory state of the kv_map [1].

Impact

Successful exploitation results in a denial-of-service condition due to inefficient algorithmic complexity. Operations on the kv_map degrade from the expected O(1) to O(n) behavior, blocking the single-threaded server path and negatively impacting all clients sharing the InfiniStore instance. The vulnerable state is in memory and persists until colliding entries are evicted, purge_kv_map() is called, or the server process is restarted [1].

Mitigation

No fixed version has been released at the time of reporting. A potential fix would involve changing the hash scheme, which would require rebuilding or clearing the existing map state. The project was informed early via an issue report but has not yet responded [1]. InfiniStore is an open-source KV store designed for LLM inference clusters [2].

AI Insight generated on Jun 5, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.

Affected products

2

Patches

0

No patches discovered yet.

Vulnerability mechanics

Root cause

"The default std::hash<std::string> implementation is used for a global unordered_map, allowing attackers to craft keys that collide and degrade performance."

Attack vector

An attacker with local access can submit many distinct cache keys that collide under the default std::hash<std::string> implementation. This causes bucket reuse in the global kv_map, leading to algorithmic complexity denial of service. The impact is felt by all clients sharing the InfiniStore instance, as operations degrade from O(1) to O(n) [ref_id=1]. The server binds its listener to all interfaces by default and accepts unauthenticated protocol messages [ref_id=1].

Affected code

The vulnerability resides in the global `std::unordered_map<std::string, boost::intrusive_ptr<PTR>> kv_map` which uses the default `std::hash<std::string>` for bucket placement. This map is utilized in functions such as `tcp_payload_request` for handling PUT and GET operations, and `check_key` and `get_match_last_index` for key lookups [ref_id=1]. The affected code is located in `/src/infinistore.h` and `/src/infinistore.cpp` [ref_id=1].

What the fix does

The advisory does not specify a patch. The recommended remediation is to replace the default unordered_map string hasher with a hash-flood-resistant construction, such as SipHashString, and to rebuild or clear existing map state after deployment. Additional mitigations include canonical serialization, complete field coverage in cache keys, digest schema versioning, and domain separation [ref_id=1].

Preconditions

  • inputAttacker must be able to submit cache keys to the InfiniStore service.
  • networkThe service listens on all interfaces and accepts unauthenticated protocol messages.
  • inputA collision corpus generated for the target libstdc++ std::hash<std::string> implementation is required.

Reproduction

1. Check out the affected version: `git checkout 502490382125803f785c80bf0345e9038df31f88`. 2. Build the standalone PoC: `c++ -O2 -std=c++17 poc_hash_flood.cpp -o poc_hash_flood`. 3. Run the PoC with a collision corpus: `./poc_hash_flood colliding-keys.txt`. 4. Trigger the affected application path by writing colliding keys through `tcp_write_cache()` or `rdma_write_cache_async()`, then calling `check_exist()`, `get_match_last_index()`, `delete_keys()`, TCP get, or RDMA read paths [ref_id=1].

Generated on Jun 5, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

5

News mentions

0

No linked articles in our index yet.