Audience: Cybersecurity engineer administering database systems & cloud infrastructure in healthcare, also runs homelab with Postgres/Vault PKI/mTLS
Scope: "Database" (exact structure specified)
Output: ONLY final Markdown report, no thinking/reasoning/narration
Structure requirements:
`## Database` header
One-paragraph executive summary, highlighting single most urgent item (CISA KEV-confirmed > high-CVSS)
`### Formal Vulnerabilities` section
Skip systems with no formal vulnerability entries
For each entry: `#### [System Name] — [CVE ID] (CVSS [score or "UNSCORED"] [severity]) [add "🔴 ACTIVELY EXPLOITED (CISA KEV)" if confirmed_exploited_by_cisa_kev is true]`
Summary: 1-3 sentences, plain-English, what it is, how triggered, who can exploit, auth required?, network-reachable? If KEV entry with due_date, state it.
Affected Features / Interoperability: What specific feature/service/module/component impacted, downstream functionality/integrations could break. If raw data doesn't say, state plainly rather than guessing.
Source: List reference URL(s)
Actions: Fix, Workaround, Tradeoff
`### News & Community Mentions` (only if news/forum data below) - bullet list per system, one line per item, 1-sentence gist, source name, link. Label unverified chatter, separate from Formal Vulnerabilities.
Formatting details:
Vulnerability data grouped by system
Entries within each system already sorted (KEV-confirmed first, then CVSS descending) - present in this order, don't re-sort
If system has >10 entries, only top 10 by priority included; say so if relevant, don't imply completeness
Data source provided in the prompt (huge JSON-like structure with MySQL, PostgreSQL, MongoDB systems, plus News/Forum Mentions)
Must NOT fabricate CVE IDs, scores, version numbers, or details beyond what's given
If data too sparse for real summary, say so
2. Examine the Provided Data:
The data is structured as a JSON object with:
`MySQL`: 11 entries (CVE-2026-59971 down to CVE-2026-91851)
`PostgreSQL`: 5 entries (CVE-2026-82028 down to CVE-2026-55650)
`NEWS/FORUM MENTIONS`: PostgreSQL section with 2 items
Wait, let me carefully read the sorting rule: "Entries within each system are ALREADY SORTED (KEV-confirmed first, then CVSS descending) -- present them in this order, do not re-sort."
I need to check if any entries have `confirmed_exploited_by_cisa_kev` flag. Looking at the data, I don't see any field named `confirmed_exploited_by_cisa_kev` in the entries. The descriptions don't mention KEV status either. The prompt says: "a CISA KEV-confirmed entry always outranks a merely high-CVSS entry, since it's confirmed exploitation vs. theoretical severity." But the data doesn't explicitly mark KEV entries. I need to check if any description or reference implies KEV. Looking through: None of the entries mention CISA KEV explicitly. The `CVE-2026-60163` references Oracle CPU Jul 2026, but not KEV. The `CVE-2026-91851` has null CVSS. I should note that if no entry is confirmed KEV, I won't add the 🔴 tag. But the prompt says "a CISA KEV-confirmed entry always outranks..." - this is about priority ordering, not necessarily that there are KEV entries. The data is "already sorted (KEV-confirmed first, then CVSS descending)". Since none seem to be KEV-confirmed in the data, I'll just present them as given, without the KEV tag unless explicitly marked. Wait, the prompt says: "add '🔴 ACTIVELY EXPLOITED (CISA KEV)' if confirmed_exploited_by_cisa_kev is true". The data doesn't have that field. I should probably not add it, or maybe I should check if any reference implies KEV. Safer to not add it if not present. But the prompt might expect me to know or mark based on references? No, it says "if confirmed_exploited_by_cisa_kev is true". Since it's not in the data, I'll omit the tag. However, the executive summary must highlight the single most urgent item, with "a CISA KEV-confirmed entry always outranks a merely high-CVSS entry". If none are KEV-confirmed, then the most urgent would be the highest CVSS among them. I need to identify the highest CVSS score across all systems, or if any is KEV. Looking at CVSS scores: MySQL has 10.0 (CVE-2026-59971), 9.1, 8.6, 8.4, 7.5, 7.5, 7.3, 4.4, 4.3, null. PostgreSQL has 8.8, 8.1, 7.5, 4.4. MongoDB has 7.7, 6.5. The highest is 10.0 for MySQL CVE-2026-59971. But wait, the description for CVE-2026-59971 says "MySQL MCP Server...". It has cvss_score 10.0, severity CRITICAL. No KEV tag mentioned. I'll assume no KEV entries in this dataset, so the most urgent is the highest CVSS, which is 10.0 for MySQL CVE-2026-59971. But the prompt says "highlighting the single most urgent item (a CISA KEV-confirmed entry always outranks a merely high-CVSS entry)". Since there are no KEV-confirmed entries, I'll highlight the highest CVSS entry, but I should note that no KEV entries are present, or just pick the highest CVSS. Actually, the prompt might be testing if I can identify that none are KEV, but still follow the structure. I'll produce the executive summary highlighting the most urgent based on the data: the CVE with CVSS 10.0, noting it's the highest severity, and since no KEV entries are confirmed in the dataset, it's the most urgent by CVSS. But to be precise, I'll state the most urgent item is the CVE-2026-59971 with CVSS 10.0, and mention that no CISA KEV-confirmed entries are present in this batch, so it takes priority as highest CVSS.
Wait, let re-read: "One-paragraph executive summary, highlighting the single most urgent item (a CISA KEV-confirmed entry always outranks a merely high-CVSS entry, since it's confirmed exploitation vs. theoretical severity)." This means if there's a KEV entry, it should be highlighted over a higher CVSS? No, "a CISA KEV-confirmed entry always outranks a merely high-CVSS entry". So if there's any KEV entry, it becomes the most urgent. If multiple KEV entries, probably the highest CVSS among KEV or first sorted. Since none are marked KEV, I'll highlight the highest CVSS entry, but I should probably note the absence of KEV entries. However, the prompt says "Do not fabricate CVE IDs, scores, version numbers, or details beyond what's given above." So I can't invent a KEV status. I'll look at the data again: Is there any field `confirmed_exploited_by_cisa_kev`? Not in the shown data. The data structure in the prompt doesn't include that field. The JSON only has `id`, `description`, `cvss_score`, `cvss_severity`, `published`, `last_modified`, `references`. No KEV flag. So I must assume none are KEV-confirmed for the purpose of this report, unless the references imply it. The references for CVE-2026-60163 include Oracle CPU, which might have KEV, but not explicitly. I'll proceed without KEV tags.
Next: Systems to include: MySQL, PostgreSQL, MongoDB. All have formal vulnerability entries. The prompt says "Skip any system with no formal vulnerability entries." All three have entries.
Sorting: "Entries within each system are ALREADY SORTED (KEV-confirmed first, then CVSS descending) -- present them in this order, do not re-sort." I need to present them in the order given in the data, which appears already sorted by priority (KEV first, but none are KEV, so just the order given). I'll present MySQL entries in the order they appear in the array, same for PostgreSQL, MongoDB.
Limit: "If a system has more than 10 entries, only the top 10 by priority are included; say so if relevant, don't imply completeness." MySQL has 11 entries. So I need to include only top 10, and say so. Let count MySQL entries:
1. CVE-2026-59971
2. CVE-2026-50006
3. CVE-2026-54628
4. CVE-2026-60163
5. CVE-2026-54629
6. CVE-2026-72708
7. CVE-2026-75092
8. CVE-2026-55650
9. CVE-2026-90935
10. CVE-2026-91851
That's 10 entries. Wait, let me count from the data:
CVE-2026-59971 (1)
CVE-2026-50006 (2)
CVE-2026-54628 (3)
CVE-2026-60163 (4)
CVE-2026-54629 (5)
CVE-2026-72708 (6)
CVE-2026-75092 (7)
CVE-2026-55650 (8)
CVE-2026-90935 (9)
CVE-2026-91851 (10)
Actually, there are exactly 10 MySQL entries listed. Let me check the data again:
The MySQL array starts with CVE-2026-59971, then 50006, 54628, 60163, 54629, 72708, 75092, 55650, 90935, 91851. That's 10 entries. But the prompt says "If a system has more than 10 entries, only the top 10 by priority are included; say so if relevant, don't imply completeness." Since there are exactly 10, I include all, no need to say "top 10". However, I should double-check if there might be more not shown? The data shows 10. I'll include all 10.
PostgreSQL has 5 entries. MongoDB has 2. Both under 10, include all.
News & Community Mentions: The prompt says "Only include this subsection if there's news/forum data below." There is a `NEWS/FORUM MENTIONS` section with PostgreSQL entries (2 items). I need to include it if there's data. The structure says: "A short bullet list per system: one line per item with a 1-sentence plain-English gist, the source name, and the link. Label this unverified chatter, separate from the Formal Vulnerabilities above." I'll include a `### News & Community Mentions` subsection, but only for systems that have news data. The provided news data is under "PostgreSQL" with 2 items. I'll format them as bullets per system, but since they're all PostgreSQL, I'll list them. I need to "Label this unverified chatter, separate from the Formal Vulnerabilities above." I'll add a note or prefix that it's unverified chatter.
Now, let's structure the report.
Executive Summary: One paragraph, highlighting single most urgent item. I'll identify the most urgent as the highest CVSS entry across all systems, considering no KEV entries. That's MySQL CVE-2026-59971 with CVSS 10.0 (CRITICAL). I'll mention it's the most urgent, and note that no CISA KEV-confirmed entries are present in this dataset, so it takes priority by CVSS score. I need to be careful: the prompt says "a CISA KEV-confirmed entry always outranks a merely high-CVSS entry". Since there are none, I'll just highlight the highest CVSS, but maybe I should state that no KEV entries are confirmed, so the most urgent is the CVSS 10.0 entry. To align with the prompt's emphasis, I'll structure the summary to highlight that item, and perhaps mention the KEV aspect absent.
Let's draft the executive summary paragraph:
"This digest covers 22 newly identified database vulnerabilities across MySQL, PostgreSQL, and MongoDB, with no CISA KEV-confirmed actively exploited entries detected in the current dataset. The single most urgent item is CVE-2026-59971 affecting the MySQL MCP Server, carrying a CVSS 10.0 (CRITICAL) score and enabling unauthenticated database disclosure, modification, and potential file-level compromise via DNS rebinding or direct SQL execution through the MCP transport. All other entries range from CRITICAL to MEDIUM severity, with the highest non-KEV CVSS scores concentrated in MySQL and PostgreSQL integrations."
Wait, the prompt says "highlighting the single most urgent item (a CISA KEV-confirmed entry always outranks a merely high-CVSS entry, since it's confirmed exploitation vs. theoretical severity)." I need to make sure the executive summary highlights the most urgent item according to that rule. If there's no KEV entry, then the most urgent is the highest CVSS, but I should perhaps note that no KEV entries are present, so the highest CVSS takes the top spot. I'll phrase it carefully.
Now, Formal Vulnerabilities section.
For each system, I'll list entries in the order they appear (already sorted). For each entry, I need:
`#### [System Name] — [CVE ID] (CVSS [score or "UNSCORED"] [severity]) [add "🔴 ACTIVELY EXPLOITED (CISA KEV)" if confirmed_exploited_by_cisa_kev is true]`
Then Summary, Affected Features / Interoperability, Source, Actions (Fix, Workaround, Tradeoff).
Let's process each entry.
MySQL entries (10 total, all 10 included):
1. CVE-2026-59971
Description: MySQL MCP Server... prior to 0.4.2... A network attacker can directly reach execute_sql, or can use DNS rebinding... unauthenticated disclosure and modification... when MySQL account has FILE privileges, read/write server files... fixed in 0.4.2.
cvss_score: 10.0, severity: CRITICAL
confirmed_exploited_by_cisa_kev: not present -> no tag
Summary: 1-3 sentences. "What it is: MySQL MCP Server is a Model Context Protocol server... how triggered: network attacker reaching SSE transport or DNS rebinding... who can exploit: unauthenticated network attacker, no auth required, network-reachable."
Affected Features / Interoperability: "MCP transport (SSE), SQL execution via cursor.execute, FILE privilege on MySQL server, database replication/integration if MCP is used in pipeline. Downstream: database data integrity, potential file system compromise."
Source: references list.
Actions: Fix: 0.4.2; Workaround: disable MCP_TRANSPORT=sse, use stdio transport instead; Tradeoff: stdio transport may limit remote accessibility, functional reduction for MCP-dependent workflows.
2. CVE-2026-50006
anyquery server forwards unauthenticated SQL from MySQL-compatible port to SQLite without restricting ATTACH DATABASE filesystem targets.
cvss_score: 9.1, severity: CRITICAL
Summary: "Anyquery server acts as an SQL query engine on SQLite... remote attacker can cause SQLite to create database file at arbitrary writable path, placing attacker-controlled table content, leading to filesystem integrity loss and DoS; RCE possible if another service interprets written file."
Affected Features: MySQL-compatible server port, SQLite ATTACH DATABASE, anyquery process filesystem.
Source: references.
Actions: Fix: 0.4.5; Workaround: restrict network access to anyquery server port, disable MySQL-compatible port if not needed; Tradeoff: may break legitimate MySQL client connections.
3. CVE-2026-54628
Anyquery exposes URL-capable SQLite virtual table modules (json_reader, log_reader) through unauthenticated MySQL port without restricting outbound destinations.
cvss_score: 8.6, severity: HIGH
Summary: "Remote attacker can provide loopback/private-network/cloud metadata URL, causing go-getter to fetch resource and expose response as queryable table data, permitting internal network probing, internal API access, and cloud credential disclosure."
Affected Features: MySQL port, SQLite virtual tables, go-getter outbound fetching.
MySQL Server, MySQL Cluster: Group Replication Plugin. Easily exploitable, unauthenticated attacker with logon to infrastructure... can result in takeover.
cvss_score: 8.4, severity: HIGH
Published: 2026-07-21, last modified 2026-09-15.
References: Oracle CPU Jul 2026.
Summary: "Vulnerability in MySQL Server Group Replication Plugin... unauthenticated attacker with logon to infrastructure where MySQL Server, MySQL Cluster executes... can compromise and takeover the server. Requires logon to infrastructure, not remote unauthenticated over network."
Affected Features: Group Replication Plugin, MySQL Server, MySQL Cluster. Downstream: replication integrity, cluster availability.
Source: references.
Actions: Fix: patched in Oracle CPU Jul 2026; Workaround: restrict logon access to MySQL infrastructure, apply least privilege; Tradeoff: may impact administrative workflows if logon restrictions are tight.
5. CVE-2026-54629
Anyquery exposes file-backed SQLite virtual table modules (csv_reader, log_reader) through MySQL port without auth/authorization/directory restrictions.
cvss_score: 7.5, severity: HIGH
Summary: "Remote attacker can use CREATE VIRTUAL TABLE with local path, hashicorp/go-getter returns file contents as queryable rows, disclosure limited by server process filesystem permissions, can expose system config, credentials, private keys."
Affected Features: MySQL port, virtual table modules, filesystem of server process.
Source: references.
Actions: Fix: 0.4.5; Workaround: restrict MySQL port, avoid exposing virtual table modules; Tradeoff: may disable legitimate CSV import features.
6. CVE-2026-72708 (SPIP)
SPIP before 4.4.18 unauthenticated blind SQL injection via annee parameter, bypasses escaping for date-type columns across MySQL, SQLite, PostgreSQL backends.
cvss_score: 7.5, severity: HIGH
Published: 2026-09-11, last modified 2026-09-15.
Summary: "Unauthenticated attackers can inject arbitrary SQL by supplying crafted annee parameter matching word character followed by open parenthesis, bypassing escaping for date-type columns... enabling extraction of arbitrary database content including alea_ephemere secret."
Actions: Fix: 4.4.18; Workaround: update SPIP, disable sitemap generation if not needed; Tradeoff: may affect sitemap SEO functionality.
7. CVE-2026-75092 (leapp)
Privilege escalation in scan_mysql actor of leapp-upgrade-el9toel10. During RHEL 9 to RHEL 10 upgrades, runs mysqld --validate-config as root... attacker can write persisted config and malicious shared object into /var/lib/mysql... code execute as UID 0.
cvss_score: 7.3, severity: HIGH
Summary: "Privilege escalation flaw in Leapp actor... during RHEL 9 to 10 upgrades, mysqld runs as root... attacker with mysql OS identity can persist malicious config/SO, and when administrator runs Leapp workflow, attacker-controlled code executes as UID 0."
Actions: Fix: no fixed release mentioned; Workaround: restrict write access to /var/lib/mysql, monitor Leapp upgrade steps; Tradeoff: may complicate upgrade process, operational friction.
8. CVE-2026-55650 (Outerbase Studio)
TextComponent renders unsanitized Text Widget content through dangerouslySetInnerHTML, allowing injected markup with script-capable event handlers to execute (local self-XSS).
cvss_score: 4.4, severity: MEDIUM
Published: 2026-09-15.
Summary: "Outerbase Studio renders unsanitized content via dangerouslySetInnerHTML, enabling local self-XSS when widget displayed. Outerbase Cloud discontinued 2025, current architecture uses local browser dashboard storage, so impact limited to local self-XSS; no backend database access."
Affected Features: Text Widget in chart index, browser dashboard display. Downstream: local XSS, potential credential theft in local context.
Source: references.
Actions: Fix: no fixed release available; Workaround: avoid displaying untrusted text widgets, update if possible; Tradeoff: limited impact, current architecture mitigates backend risk.
9. CVE-2026-90935 (Froxlor)
Fails to validate mysql_server parameter against allowed_mysqlserver allowlist in Mysqls.add API command. Attackers can supply disallowed server index to create databases/users on forbidden servers.
cvss_score: 4.3, severity: MEDIUM
Summary: "Froxlor Mysqls.add API command doesn't validate mysql_server against allowlist, allowing attackers to bypass per-customer access controls, create databases/users on forbidden servers."
Affected Features: Mysqls.add API, per-customer access controls, MySQL server allocation. Downstream: unauthorized database creation, user provisioning bypass.
Source: references.
Actions: Fix: 2.3.7; Workaround: update to 2.3.7; Tradeoff: upgrade may require configuration review.
10. CVE-2026-91851 (MISP)
Affected versions incorrectly filter dashboard templates restricted to specific permission flag. restrict_to_permission_flag is varchar, MySQL numeric coercion makes perm_site_admin = 0 evaluate true, unrestricted branch matches restricted templates.
cvss_score: null, severity: null (not scored)
Summary: "MISP dashboard templates filtering bypassed via MySQL numeric coercion on varchar permission flag, allowing unrestricted access to permission-restricted templates."
Actions: Fix: upgrade to >2.5.45; Workaround: review permission flags, avoid varchar flags that coerce to 0; Tradeoff: may require permission redesign.
Now PostgreSQL entries (5 total):
1. CVE-2026-82028 (Magistrala)
Magistrala before 1.0.0 SQL injection in timescale-reader and postgres-reader HTTP API services, authenticated attackers can inject arbitrary SQL via format query parameter interpolated into FROM clause.
cvss_score: 8.8, severity: HIGH
Summary: "Magistrala HTTP API services (timescale-reader, postgres-reader) suffer SQL injection via format parameter interpolated directly into FROM clause without parameterization or identifier quoting... authenticated attackers with self-registered account can achieve cross-tenant database reads, extract pg_shadow hashes, read/write arbitrary files, execute code as postgres OS user via shared objects, all SQL at superuser privilege due to default PostgreSQL role config."
Affected Features: HTTP API services, format query parameter, PostgreSQL/Timescale backends. Downstream: cross-tenant data access, credential exposure, code execution as postgres user.
Source: references.
Actions: Fix: 1.0.0; Workaround: restrict self-registration, limit API access to trusted IPs; Tradeoff: may reduce flexibility for new user onboarding.
2. CVE-2026-87016 (Open WebUI)
get_user_by_oauth_sub and get_user_by_scim_external_id used JSON contains matching compiled to SQL LIKE substring on SQLite. OAuth subject with percent/underscore wildcards could resolve to different stored identity, potentially admin account, attacker gets that account's session. PostgreSQL deployments not affected.
cvss_score: 8.1, severity: HIGH
Summary: "Open WebUI OAuth/SCIM user lookup uses JSON contains to SQL LIKE substring matching on SQLite... OAuth subject with wildcard characters (%, _) could resolve to a different stored identity, potentially administrator account, issuing attacker that account's session. PostgreSQL not affected."
3. CVE-2026-72708 (SPIP) - duplicate across systems? The data includes it in both MySQL and PostgreSQL sections? Actually, CVE-2026-72708 appears in MySQL entries (item 6) and also in PostgreSQL entries? Let's check: In the provided data, CVE-2026-72708 is listed under MySQL (entry 6), and also under PostgreSQL (entry 3). The prompt says "Entries within each system are ALREADY SORTED... present them in this order, do not re-sort." It also says "Do not fabricate CVE IDs, scores, version numbers, or details beyond what's given above." Since it appears in both MySQL and PostgreSQL arrays as separate entries with the same ID but possibly same or different descriptions? Looking at the data: Under MySQL, CVE-2026-72708 description is about SPIP blind SQL injection across MySQL, SQLite, PostgreSQL backends. Under PostgreSQL, the same CVE-2026-72708 appears with the same description. This is a duplicate entry across systems. The prompt's data structure has it in both arrays. I need to treat them as separate entries per system, because the structure groups by system. The prompt says "For EACH entry:" under each system. So I'll include it under both MySQL and PostgreSQL as they appear. However, I must be careful not to double-count or misrepresent. The prompt says "Do not fabricate... beyond what's given above." Since it's given in both arrays, I'll present it in both, but note that it's the same CVE. Actually, the prompt's data has it in MySQL array and PostgreSQL array. I'll include it in both sections as separate `####` entries, because the structure is per system. The sorting rule says "Entries within each system are ALREADY SORTED... present them in this order". So under MySQL, it's in its position; under PostgreSQL, it's in its position. I'll just follow the data exactly.
4. CVE-2026-55650 (Outerbase Studio) - also appears in PostgreSQL array? Yes, entry 5 under PostgreSQL is also CVE-2026-55650, same description as MySQL entry 8. Again, duplicate across systems. I'll include it under PostgreSQL as given.
5. Wait, let's recount PostgreSQL entries from the data:
CVE-2026-82028 (Magistrala)
CVE-2026-87016 (Open WebUI)
CVE-2026-72708 (SPIP)
CVE-2026-55650 (Outerbase Studio)
That's 4 entries? Let me check the PostgreSQL array in the data:
```
"PostgreSQL": [
{
"id": "CVE-2026-82028",
...
},
{
"id": "CVE-2026-87016",
...
},
{
"id": "CVE-2026-72708",
...
},
{
"id": "CVE-2026-55650",
...
}
]
```
Actually, there are 4 entries in PostgreSQL array. But earlier I thought 5. Let me re-examine the prompt's data block. The PostgreSQL array starts after MySQL, and I see four objects: CVE-2026-82028, CVE-2026-87016, CVE-2026-72708, CVE-2026-55650. Yes, 4 entries. MongoDB has 2. So total systems: MySQL 10, PostgreSQL 4, MongoDB 2. All under limits.
Now, for PostgreSQL entries, I need to generate the same fields.
PostgreSQL 1: CVE-2026-82028 (Magistrala)
cvss: 8.8, HIGH
Summary: as above.
Affected Features: HTTP API services, format query parameter, PostgreSQL/Timescale backends. Downstream: cross-tenant data access, credential exposure, code execution as postgres user.
Source: references.
Actions: Fix: 1.0.0; Workaround: restrict self-registration, limit API access; Tradeoff: may reduce new user onboarding flexibility.
PostgreSQL 2: CVE-2026-87016 (Open WebUI)
cvss: 8.1, HIGH
Summary: OAuth/SCIM user lookup SQLite LIKE substring, wildcard chars could resolve to admin account, attacker gets session. PostgreSQL not affected.
Summary: Same as MySQL version: unauthenticated blind SQL injection via annee parameter, bypasses escaping for date-type columns across MySQL, SQLite, PostgreSQL backends. Exploit via sitemap.xml.html template's annee criterion.
Actions: Fix: 4.4.18; Workaround: update SPIP, disable sitemap if not needed; Tradeoff: may affect sitemap SEO.
PostgreSQL 4: CVE-2026-55650 (Outerbase Studio)
cvss: 4.4, MEDIUM
Summary: Same as MySQL version: TextComponent renders unsanitized content via dangerouslySetInnerHTML, local self-XSS, Cloud discontinued, current architecture local browser dashboard storage, impact limited to local self-XSS.
Affected Features: Text Widget in chart index, browser dashboard display. Downstream: local XSS, potential credential theft in local context.
Source: references.
Actions: Fix: no fixed release available; Workaround: avoid displaying untrusted text widgets; Tradeoff: limited impact, current architecture mitigates backend risk.
Now MongoDB entries (2 total):
1. CVE-2026-55253 (LangChain MongoDB)
cvss: 7.7, HIGH
Summary: LangChain MongoDB integrations... MongoDBSaver.list(), alist(), MongoDBStore.search() incorporate filter dictionaries into MongoDB queries without recursively rejecting keys prefixed with $. Authenticated caller controlling filter argument can inject MQL operators like $regex or $bypass per-user/per-tenant isolation, expose other tenants' checkpoint/store data.
Affected Features: MongoDB query filters in LangChain integrations, per-tenant isolation via filters. Downstream: cross-tenant data exposure in multi-tenant deployments.
Summary: Integer overflow in query planning component... authenticated user with ordinary database-level read/write privileges can bypass internal resource limit... specially crafted query causes server to consume memory without bound during query planning, exhaustion terminates server process, denial of service affecting all databases served by the affected node.
Affected Features: MongoDB Server query planning component, resource limits. Downstream: Denial of service for all databases on affected node.
Cloud Security
Executive Summary: The most urgent items this cycle are two CRITICAL (CVSS 9.8) vulnerabilities in Kubernetes ecosystem components: Apache Camel K (CVE-2026-80352) and Traefik (CVE-2026-88877), both enabling unauthorized access through distinct vectors—YAML-based code injection and authentication bypass, respectively. No CISA KEV-confirmed entries appear in this scope; all threats below represent theoretical severity rather than confirmed active exploitation. Docker also carries a CRITICAL (CVSS 9.6) IBM Langflow SSRF-to-RCE chain and a HIGH (CVSS 7.8) Apache Storm worker-launcher privilege escalation issue that warrant prompt attention.
Formal Vulnerabilities
KubernetesCVE-2026-80352CVSS 9.8 · CRITICAL
Summary: Apache Camel K contains a YAML injection vulnerability in custom resource configuration. An authorized CR author can inject arbitrary Kubernetes objects, potentially enabling unauthorized resource creation with the operator's privileges.
Affected Features / Interoperability: Camel K custom resource definitions and operator reconciliation pipeline. Any workload relying on CR-based configuration (integrations, deployments, routes) could be subverted to create resources outside intended scope.
Workaround: Restrict CR author permissions to trusted principals; validate CR payloads before submission
Tradeoff: Tighter RBAC may slow legitimate self-service integration deployments
KubernetesCVE-2026-88877CVSS 9.8 · CRITICAL
Summary: In Traefik v3.7.0–v3.7.11, the Kubernetes ingress-nginx provider mishandles Ingresses carrying both an authentication annotation and the `nginx.ingress.kubernetes.io/from-to-www-redirect` annotation. A sibling router is created that matches on host alone, lacks terminal redirect handling, and proxies requests to the protected backend with all annotation-derived middlewares (including authentication and source-IP allowlisting) stripped.
Affected Features / Interoperability: Traefik ingress routing for Ingress resources using both auth and redirect annotations. Authentication (e.g., BasicAuth), source-IP filtering, and any other annotation-derived middleware are bypassed for matching requests.
Fix: Upgrade to Traefik v3.7.12 (v2 and v3 before v3.7.0 are not affected)
Workaround: Remove the `from-to-www-redirect` annotation from Ingresses or avoid combining it with authentication annotations
Tradeoff: Loss of the redirect functionality on affected Ingresses until upgraded
KubernetesCVE-2026-53713CVSS 9.1 · CRITICAL
Summary: Envoy Gateway's Lua validator (`to_absolute_normalized_path`) fails to collapse redundant path separators before evaluating critical paths, allowing submitted Lua through `EnvoyExtensionPolicy` during default Strict validation to read arbitrary files from the gateway controller pod—including Kubernetes service-account tokens, TLS certificates, and environment data.
Affected Features / Interoperability: EnvoyExtensionPolicy resource processing, gateway controller security posture. Disclosed credentials can subsequently access the Kubernetes API Server or Gateway xDS server.
Workaround: Tighten network policies to restrict pod-to-controller access; review and rotate exposed credentials
Tradeoff: Network policy changes may require re-evaluation of all gateway pod communication paths
KubernetesCVE-2026-47701CVSS 7.7 · HIGH
Summary: OpenTelemetry Operator's TargetAllocator (with `targetAllocator.prometheusCR.enabled: true`) preserves a ServiceMonitor endpoint's `bearerTokenFile` value as an HTTP authorization credential. A tenant who can create or update a matching ServiceMonitor can point it at a file in the Collector pod (e.g., the service-account token) and direct scraping to a tenant-controlled endpoint, leaking the Collector's credentials.
Affected Features / Interoperability: OpenTelemetry Collector scraping, Prometheus CR integration, ServiceMonitor endpoint configuration. The DenyFSAccessThroughSMs control was absent, enabling disclosure of the Collector's service-account JWT.
Summary: Envoy Gateway's xDS gRPC server in GatewayNamespaceMode installs a JWT StreamInterceptor but no UnaryInterceptor, leaving all unary Fetch RPCs unauthenticated. The streaming interceptor also fails to validate `DiscoveryRequest` (State-of-the-World) messages due to a type assertion failure. Any pod reaching port 18000 can retrieve TLS private keys, all xDS resources, backend endpoints, and routing configuration without authentication.
Affected Features / Interoperability: Envoy Gateway xDS control plane (StreamSecrets, StreamAggregatedResources, StreamClusters, StreamEndpoints, StreamRoutes, StreamListeners). All gateway configuration and credential data exposed via unauthenticated gRPC paths.
Workaround: Restrict network access to port 18000 via NetworkPolicy or firewall rules; rotate all TLS private keys and xDS credentials
Tradeoff: Network restrictions may complicate legitimate multi-namespace gateway deployments
KubernetesCVE-2026-53716CVSS 6.5 · MEDIUM
Summary: Envoy Gateway's controller reads a tenant-controlled Wasm payload URL and decompresses it without limiting output size. A small gzip stream can force a multi-gigabyte memory allocation in the shared controller, causing OOM termination, controller restart, and potentially a persistent cross-tenant control-plane outage.
Affected Features / Interoperability: EnvoyExtensionPolicy Wasm plugin loading, shared gateway controller stability. A single tenant can cause cluster-wide control-plane disruption.
Summary: Envoy Gateway's controller follows tenant-controlled Wasm image URLs and uses untrusted tar-header `h.Size` values to allocate memory before validation. A crafted tar header can claim multi-terabyte size, causing unrecoverable Go runtime OOM. Since the CR persists, the controller repeatedly crash-loops, causing cluster-wide control-plane denial of service.
Workaround: Review and restrict `EnvoyExtensionPolicy` Wasm image sources to trusted registries; monitor controller health
Tradeoff: Same as CVE-2026-53716—limits tenant Wasm plugin flexibility
KubernetesCVE-2026-53719CVSS 6.5 · MEDIUM
Summary: Envoy Gateway's `translateSecurityPolicyForRoute` dereferences a nil authorization value when a namespace-scoped tenant creates a SecurityPolicy targeting a TCPRoute without `spec.authorization`. The persistent object panics on every reconcile; while the process stays alive, the controller stalls xDS and infrastructure IR publishing. The data plane continues serving last-known-good config.
Affected Features / Interoperability: SecurityPolicy resource processing, TCPRoute integration, controller xDS publishing pipeline. Tenant-created objects can stall control-plane configuration distribution cluster-wide.
Workaround: Audit existing SecurityPolicy/TCPRoute combinations for missing authorization specs; delete offending objects if present
Tradeoff: None significant beyond the upgrade itself
KubernetesCVE-2026-53718CVSS 6.4 · MEDIUM
Summary: An HTTPRoute can use an extension-managed `custom backendRef` to reference a backend resource in another namespace without a matching Gateway API ReferenceGrant. The validation logic omits `validateBackendNamespace`, violating the Gateway API cross-namespace authorization model.
Affected Features / Interoperability: HTTPRoute routing, cross-namespace backend references, Gateway API ReferenceGrant authorization model. Routes can bind to backend resources without the backend namespace owner's consent.
Workaround: Audit HTTPRoutes for unauthorized cross-namespace backend references; enforce ReferenceGrant policies at the API level
Tradeoff: None significant beyond the upgrade itself
KubernetesCVE-2026-54246CVSS 5.7 · MEDIUM
Summary: Skipper's routesrv component serves cluster-wide control-plane data without application-layer authentication through `/routes`, `/routes/{zone}`, `/swarm/redis/shards`, and `/swarm/valkey/shards`. A compromised pod reaching routesrv on the cluster network can read Ingress/RouteGroup backend URLs, OAuth/OIDC path details, and Redis/Valkey shard addresses across namespaces.
Affected Features / Interoperability: Skipper routesrv HTTP endpoints, Ingress and RouteGroup configuration data, Redis/Valkey cluster topology. NetworkPolicy can restrict reachability but does not address the missing authentication.
Workaround: Apply NetworkPolicy rules to restrict routesrv reachability; rotate exposed credentials and connection strings
Tradeoff: NetworkPolicy restrictions may require re-architecture of Skipper service mesh communication paths
DockerCVE-2026-12944CVSS 9.6 · CRITICAL
Summary: IBM Langflow OSS 1.0.0–1.10.0 allows attackers to execute arbitrary Python code as root (UID=0) by submitting components containing socket or urllib imports. This enables AWS credential theft via IMDSv1 SSRF, arbitrary file exfiltration, and lateral movement to internal services (PostgreSQL, Redis) within the Docker network. The scanner incorrectly reports "validated": true, providing a false security signal.
Affected Features / Interoperability: Langflow component submission and execution sandbox, Docker network isolation. Internal database and cache services behind the Docker network are directly reachable from compromised Langflow instances.
Fix: Upgrade to a patched Langflow version (specific version not stated in advisory; check IBM support page)
Workaround: Disable component submission for untrusted users; block IMDSv1 access (e.g., via IMDSv2 enforcement or network policies); restrict Docker network access to internal services
Tradeoff: Disabling IMDSv1 may break legacy AWS SDK integrations; network restrictions may limit Langflow's intended connectivity
DockerCVE-2026-69259CVSS 8.8 · HIGH
Summary: Flowise prior to 3.1.3 allows an authenticated attacker to overwrite the SQLite database path via `additionalConfig.database` in the SQLite Record Manager node. Running as root in the published Docker image, the attacker can write a SQLite database to paths like `/etc/chromium/exploit.conf` and inject shell syntax triggered when Puppeteer launches Chromium and sources `/etc/chromium/*.conf`.
Affected Features / Interoperability: Flowise SQLite Record Manager node, Puppeteer/Chromium integration. Arbitrary code execution occurs in the context of browser automation.
Workaround: Restrict Record Manager node access to trusted users; run Flowise containers as non-root
Tradeoff: Non-root execution may break existing Flowise Docker deployments relying on root privileges
DockerCVE-2026-82430CVSS 7.8 · HIGH
Summary: Apache Storm's `worker-launcher` changes ownership of the worker directory to an untrusted topology user before reading the supervisor-written command file. The file is opened without `O_NOFOLLOW` or owner re-verification, allowing a TOCTOU race where the tenant replaces the command file with an attacker-authored root-equivalent container invocation (arbitrary `-v`, `--device`, `--cap-add`, `--security-opt`, `--user`, `--net` flags). The same window applies to OCI workers with structural-only mount validation.
Affected Features / Interoperability: Apache Storm Docker and OCI worker isolation, topology submission. A compromised supervisor can yield root-equivalent container execution with host filesystem access.
Fix: Upgrade to Apache Storm 3.1.0 (command file validated before ownership change and re-verified on open; mount sources/destinations constrained)
Workaround: Disable Docker and OCI worker isolation, or restrict topology submission on affected supervisors to trusted principals
Tradeoff: Disabling worker isolation removes containerized execution benefits; restricting submission limits multi-tenant topology flexibility. Note: launcher must be rebuilt and reinstalled after upgrading.
DockerCVE-2026-53717CVSS 6.5 · MEDIUM
Summary: Envoy Gateway's controller follows tenant-controlled Wasm image URLs and uses untrusted tar-header `h.Size` values to allocate memory before validation. A crafted tar header can claim multi-terabyte size, causing unrecoverable Go runtime OOM. Since the CR persists, the controller repeatedly crash-loops, causing cluster-wide control-plane denial of service.
Workaround: Review and restrict `EnvoyExtensionPolicy` Wasm image sources to trusted registries; monitor controller health
Tradeoff: Limits tenant Wasm plugin flexibility
DockerCVE-2026-54248CVSS 6.5 · MEDIUM
Summary: Doco-CD prior to 0.90.1 has a trust-boundary flaw where OCI artifact contents can influence the verification policy used for that same artifact. An attacker with write access to the OCI tag can publish an unsigned artifact containing `.doco-cd.yml` with `oci.verify: false`, bypassing signature verification.
Affected Features / Interoperability: Doco-CD OCI artifact deployment, GitOps continuous delivery pipeline. Deployment integrity depends on artifact contents being treated as trusted for trust-policy decisions.
Fix: Upgrade to Doco-CD 0.90.1 (enforces strict trust boundary; artifact-contained `.doco-cd.yml` treated as untrusted; per-deployment `oci.verify: false` cannot disable verification when global policy is enabled)
Workaround: Do not source deployment config from untrusted OCI artifact contents; use trusted inline `POLL_CONFIG.deployments`; restrict OCI repository write/push permissions; prefer immutable digest pinning
Tradeoff: Inline deployment configs reduce flexibility of artifact-driven deployment workflows
DockerCVE-2026-50025UNSCORED
Summary: Mousehole's HTTP/WebSocket management boundary is reachable without application-layer authentication. The service stores and reuses a MAM session cookie across state, public API responses, and WebSocket updates. Any client reaching the published port can read cookie-bearing state, replace the stored cookie, or force MAM update side effects. Docker's `5010:5010` publishing syntax can expose this on mixed-trust LAN/VPN interfaces.
Affected Features / Interoperability: Mousehole MAM session management, WebSocket state updates, public API. Cookie hijacking enables unauthorized seedbox IP management.
Workaround: Bind the management port to localhost or a trusted interface only (avoid broad Docker port publishing); add an external reverse proxy with authentication
Tradeoff: Restricting the port to localhost eliminates remote management; a reverse proxy adds infrastructure complexity
DockerCVE-2026-52824UNSCORED
Summary: Kimai prior to 2.58.0 ships the official Docker image with `APP_SECRET` set to the public default `change_this_to_something_unique`, and the entrypoint neither replaces nor rejects it. An unauthenticated attacker who knows a username and can guess the associated account ID (for accounts without 2FA) can forge HMAC-protected authentication artifacts, including `KIMAI_REMEMBER` cookies and login links.
Affected Features / Interoperability: Kimai authentication system, `KIMAI_REMEMBER` cookie integrity, login link validation. All accounts without active 2FA are vulnerable to session forgery.
Fix: Upgrade to Kimai 2.58.0 (entrypoint generates and persists a random secret when no safe operator-provided value exists)
Workaround: Set `APP_SECRET` to a strong random value via environment variable or Docker override; enable 2FA on all accounts
Tradeoff: None significant
DockerCVE-2026-55630CVSS 0.0 · NONE
Summary: Kiwi TCMS prior to 16.1 accepts unsanitized input in `TestCase.extra_link` and `TestPlan.extra_link`, creating a stored XSS opportunity. However, official Docker images and unmodified middleware send a Content-Security-Policy header that blocks inline JavaScript, making exploitation difficult in default deployments.
Affected Features / Interoperability: Test case and test plan link rendering, stored XSS attack surface. Custom deployments with weakened CSP remain vulnerable.
Summary: MCP Gateway 0.21.0–0.42.2 unmarshals attacker-controlled `io.docker.server.metadata` OCI image labels into the broad `catalog.Server` structure. Runtime-shaping fields (Volumes, User, ExtraHosts) are appended to the `docker run` argument vector without an origin allowlist, allowing a malicious image author to request host filesystem or Docker socket mounts and UID 0 execution. Not prevented by no-new-privileges since no in-container privilege escalation is required.
Affected Features / Interoperability: MCP Gateway image pulling and server catalog handling, Docker container creation parameters. Container creation-time boundary bypass enables arbitrary host code execution.
Workaround: Restrict image sources to trusted registries; avoid pulling or selecting images from untrusted authors
Tradeoff: Restricting image sources limits the MCP server ecosystem flexibility
DockerCVE-2026-77179UNSCORED
Summary: On macOS, Docker Sandboxes' virtio-fs host server improperly follows symlinks when reopening an unlinked file from a stored path. A malicious guest can replace a parent directory with a symlink, escape the shared workspace, and read or modify arbitrary host files as the VMM user, potentially achieving host code execution.
Affected Features / Interoperability: Docker Sandbox virtio-fs file sharing, macOS host file system isolation. Guest-to-host boundary is compromised through symlink following.