This release includes 2 security fixes for security teams reviewing exposed deployments.
Topics
+11 more
Affected surfaces
ReleasePort's take
Moderate signalScope `account_id` / `customer_id` to the active workspace on multi‑account backends, preventing cross‑client data access. Guardrails now reject non‑finite or oversized budget values, closing bypasses that allowed unlimited budgets.
Why it matters: These changes block unauthorized data exposure across clients and eliminate a critical path for unbounded budget allocation; operators should verify workspace scoping and budget guardrail configurations immediately after upgrade.
Summary
AI summaryScoped account/customer IDs prevent cross‑client data access and budget guardrails now reject non‑finite or oversized values.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Security | Critical |
Scope `account_id` / `customer_id` to active workspace on multi-account backends, preventing cross‑client data access. Scope `account_id` / `customer_id` to active workspace on multi-account backends, preventing cross‑client data access. Source: llm_adapter@2026-07-14 Confidence: high |
— |
| Security | High |
Guardrails reject non‑finite or oversized budget values, closing bypasses that allowed unlimited budgets. Guardrails reject non‑finite or oversized budget values, closing bypasses that allowed unlimited budgets. Source: llm_adapter@2026-07-14 Confidence: high |
— |
| Feature | Medium |
Adds Creative Studio gallery tab for browsing generated visuals per client on multi‑account backends. Adds Creative Studio gallery tab for browsing generated visuals per client on multi‑account backends. Source: llm_adapter@2026-07-14 Confidence: high |
— |
| Feature | Medium |
Adds plugin budget‑key declarations in MCP metadata for StrategyPolicyGate enforcement. Adds plugin budget‑key declarations in MCP metadata for StrategyPolicyGate enforcement. Source: llm_adapter@2026-07-14 Confidence: high |
— |
| Bugfix | Medium |
Fixes race condition in Configure UI causing credential status to appear unset after reload. Fixes race condition in Configure UI causing credential status to appear unset after reload. Source: llm_adapter@2026-07-14 Confidence: high |
— |
Full changelog
Security
- Meta
account_id/ Google Adscustomer_idare scoped to the active workspace on multi-account backends (#411). These free caller arguments were used with operator-shared credentials without validation, so on an agency backend one client's conversation could read — or with write tools mutate — a sibling client's account by passing its id. New allow-list resolvers enforce the effective id (argument and credentials default alike) before any client is built, fail closed when a multi-account backend declares nothing, and filtergoogle_ads_accounts_list. Standalone installs unaffected. - Budget guardrails can no longer be bypassed with non-finite or oversized values (#419). A
NaN(reachable over the wire) made every cap comparison abstain, and an oversized integer raised anOverflowErrorthe gate swallowed into an allow. Both now fail closed across the built-in scan, the total/increase caps, and the plugin declaration path.
Added
- Creative Studio gallery (#409) — a read-only dashboard tab browsing generated visuals and composed banners per run, browsable per client on multi-account backends, with strict path containment on image serving.
- Plugin budget-key declarations (#414) — a plugin declares its budget argument keys in MCP metadata so the one built-in
StrategyPolicyGateenforces STRATEGY.md Guardrails on its platform, no per-plugin gate.
Fixed
- Configure UI credential status/writes no longer race the credentials path (#406) —
set_hostnow publishes the fully resolvedHostPathsin a single atomic assignment, fixing saved credentials showing as unset after a reload.
Docs
- Japanese trigger phrases on operational skill descriptions (#396);
docs/plugin-authoring.mdrefreshed for #324/#327 and the new budget seam (#414);SECURITY.mdrotation/backup note (#394).
Existing installs: run mureo upgrade (or the configure UI's Reinstall button) if you have not since 0.10.23, to refresh the credential-guard hooks.
Full Changelog: https://github.com/logly/mureo/compare/v0.10.23...v0.10.24
Security Fixes
- Meta `account_id` / Google Ads `customer_id` now scoped to active workspace, preventing cross‑client data access (CVE not specified)
- Budget guardrails reject non‑finite and oversized values, closing bypass vulnerability (CVE not specified)
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About logly/mureo
Framework for AI agents (Claude Code, Cursor, Codex, Gemini) to operate Google Ads, Meta Ads, and Search Console. Grounded in a local STRATEGY.md — not metric-chasing. Defense-in-depth security, local-first. Apache 2.0.
Related context
Related tools
Beta — feedback welcome: [email protected]