CVE-2026-123791: IoA Agent Registry: Milvus query injection via key
HIGHOpenBMB Internet of Agents (IoA) has a query-injection flaw in the Agent Registry: the `key` argument to `_primary_field_query` in `common/utils/milvus_utils.py` is not neutralized before being placed in a Milvus filter expression (CWE-943). It is reachable over the network without authentication or user interaction, scores CVSS 7.3, and a public exploit is referenced in the project's GitHub issue. Even so, the data does not point to broad exploitation: it is not in CISA KEV, no EPSS score is available, no Nuclei template exists, and the package has no tracked dependents. The project is rolling-release with no versioned fixes, and the maintainers have not responded to the report, so do not expect a vendor patch. If you run IoA, keep the Agent Registry off untrusted networks, put an authenticated gateway in front of it, and add input validation on `key` yourself.
What is the risk?
High per CVSS 7.3 (network-reachable, low complexity, no privileges, no user interaction; low confidentiality, integrity and availability impact). Practical risk is moderate. IoA is a niche research-grade multi-agent framework with no tracked downstream dependents, EPSS is unavailable, and there is no KEV listing or SSVC decision. A public proof of concept exists in the project's issue tracker, and the maintainers have not responded, so the exposure is unlikely to be fixed upstream. Impact is limited to the registry's Milvus queries, but registry data feeds agent discovery and routing, so tampering or leakage has knock-on effects.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| Milvus | pip | — | No patch |
| Internet of Agents | — | — | No patch |
How severe is it?
What is the attack surface?
What should I do?
1 step1) No fixed version exists, so track the OpenBMB/IoA repository and issue #19 for a patch and pin to a reviewed commit. 2) Until then, patch
_primary_field_querylocally: validatekeyagainst a strict allowlist (for example, alphanumeric and a limited set of separators) and escape or parameterize values before building the Milvus filter expression. 3) Restrict network access to the Agent Registry using a firewall, VPN or private network, and put it behind an authenticated reverse proxy or API gateway. 4) Run Milvus with least-privilege credentials and read-only access where possible, and avoid exposing the Milvus port directly. 5) Detect: log and alert on registry requests whosekeycontains quote characters, boolean operators, brackets or filter-expression syntax, and watch for unusually large result sets or query errors in Milvus logs. 6) Consider replacing IoA in production-facing roles if the project stays unmaintained.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-123791?
OpenBMB Internet of Agents (IoA) has a query-injection flaw in the Agent Registry: the `key` argument to `_primary_field_query` in `common/utils/milvus_utils.py` is not neutralized before being placed in a Milvus filter expression (CWE-943). It is reachable over the network without authentication or user interaction, scores CVSS 7.3, and a public exploit is referenced in the project's GitHub issue. Even so, the data does not point to broad exploitation: it is not in CISA KEV, no EPSS score is available, no Nuclei template exists, and the package has no tracked dependents. The project is rolling-release with no versioned fixes, and the maintainers have not responded to the report, so do not expect a vendor patch. If you run IoA, keep the Agent Registry off untrusted networks, put an authenticated gateway in front of it, and add input validation on `key` yourself.
Is CVE-2026-123791 actively exploited?
No confirmed active exploitation of CVE-2026-123791 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-123791?
1) No fixed version exists, so track the OpenBMB/IoA repository and issue #19 for a patch and pin to a reviewed commit. 2) Until then, patch `_primary_field_query` locally: validate `key` against a strict allowlist (for example, alphanumeric and a limited set of separators) and escape or parameterize values before building the Milvus filter expression. 3) Restrict network access to the Agent Registry using a firewall, VPN or private network, and put it behind an authenticated reverse proxy or API gateway. 4) Run Milvus with least-privilege credentials and read-only access where possible, and avoid exposing the Milvus port directly. 5) Detect: log and alert on registry requests whose `key` contains quote characters, boolean operators, brackets or filter-expression syntax, and watch for unusually large result sets or query errors in Milvus logs. 6) Consider replacing IoA in production-facing roles if the project stays unmaintained.
What systems are affected by CVE-2026-123791?
This vulnerability affects the following AI/ML architecture patterns: agent frameworks, vector databases, multi-agent orchestration, agent registries.
What is the CVSS score for CVE-2026-123791?
CVE-2026-123791 has a CVSS v3.1 base score of 7.3 (HIGH).
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0036Data from Information RepositoriesAML.T0049Exploit Public-Facing ApplicationAML.T0084Discover AI Agent ConfigurationCompliance Controls Affected
What are the technical details?
Original Advisory
A vulnerability was detected in OpenBMB Internet of Agents up to 9d78e88e47160eb42ee1ee8538c05e1c2c47877a. This affects the function _primary_field_query of the file common/utils/milvus_utils.py of the component Agent Registry. The manipulation of the argument key results in improper neutralization of special elements in data query logic. The attack may be launched remotely. The exploit is now public and may be used. This product operates on a rolling release basis, ensuring continuous delivery. Consequently, there are no version details for either affected or updated releases. The project was informed of the problem early through an issue report but has not responded yet.
Exploitation Scenario
An attacker finds an Internet-reachable IoA Agent Registry and sends a request with a crafted `key` value containing Milvus filter syntax such as quote-breaking and an always-true condition. The registry builds its query with the unsanitized string, so the filter returns every agent record instead of one. The attacker harvests agent identifiers, endpoints and capability descriptions, then uses that knowledge to impersonate or target specific agents in the network. Repeated malformed or expensive filters can also degrade registry availability for the whole agent mesh.
Weaknesses (CWE)
CWE-20Improper Input ValidationCWE-943Improper Neutralization of Special Elements in Data Query LogicCWE-20 — Improper Input Validation: The product receives input or data, but it does not validate or incorrectly validates that the input has the properties that are required to process the data safely and correctly.
- [Architecture and Design] Consider using language-theoretic security (LangSec) techniques that characterize inputs using a formal language and build "recognizers" for that language. This effectively requires parsing to be a distinct layer that effectively enforces a boundary between raw input and internal data representations, instead of allowing parser code to be scattered throughout the program, where it could be subject to errors or inconsistencies that create weaknesses. [REF-1109] [REF-1110] [REF-1111]
- [Architecture and Design] Use an input validation framework such as Struts or the OWASP ESAPI Validation API. Note that using a framework does not automatically address all input validation problems; be mindful of weaknesses that could arise from misusing the framework itself (CWE-1173).
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L/E:P/RL:X/RC:CReferences
- github.com/OpenBMB/IoA/issues/19exploitissue-tracking
- vuldb.com/cve/CVE-2026-123791third-party-advisory
- vuldb.com/submit/1033611third-party-advisory
- vuldb.com/vuln/431935vdb-entrytechnical-description
- vuldb.com/vuln/431935/ctisignaturepermissions-required
Timeline
Related Vulnerabilities
CVE-2026-691117.5Milvus: unauthenticated DoS via /management/stop
Same package: milvusCVE-2026-108147.0Milvus: weak hash allows RBAC grantee impersonation
Same package: milvusCVE-2025-5376710.0Azure OpenAI: SSRF EoP, no auth required (CVSS 10)
Same attack type: Data ExtractionCVE-2023-376510.0MLflow: path traversal allows arbitrary file read
Same attack type: Data ExtractionCVE-2025-282810.0LangChain RequestsToolkit: SSRF exposes cloud metadata
Same attack type: Data Extraction