Render, client-RCE, and app authorization boundary batch¶
Signal: GitHub Security Advisories REST fallback also surfaced a 2026-05-08 17:15 UTC app-layer batch where stored/rendered content crossed into privileged UI contexts, action parsers became code execution, and coarse access checks failed on admin-style applications.
Advisories covered¶
- PrestaShop customer-service stored XSS — GHSA-w9f3-qc75-qgx9:
prestashop/prestashop < 8.2.6and>= 9.0.0, < 9.1.1; patch to8.2.6+or9.1.1+. - SiYuan stored XSS to Electron renderer RCE — GHSA-2h64-c999-c9r6: stored XSS via Attribute View name can reach an Electron renderer; no fixed version listed at advisory time.
- ntfy.sh
parseActionsremote code execution — GHSA-pqhx-w72w-m393:heckel.io/ntfy/v2 < 2.22.0; patch to2.22.0+. - Funadmin improper access control — GHSA-qhh7-263p-54r3:
funadmin/funadmin <= 7.1.0-rc6; no fixed version listed at advisory time. - MindsDB improper access control — GHSA-9f6m-65v9-x9g2:
MindsDB <= 26.0.1; no fixed version listed at advisory time.
Why this is durable¶
Admin consoles, notebooks, notification systems, and Electron clients are high-leverage render targets. A stored string is not just HTML when it lands in a customer-service dashboard, desktop renderer, or action parser with filesystem/network privileges. Authorization bugs in these same tools are similarly dangerous because they expose orchestration, data, and credential-bearing workflows.
Immediate triage¶
- Search dependency and deployment inventories for affected PrestaShop, SiYuan, ntfy, Funadmin, and MindsDB versions.
- Patch PrestaShop and ntfy immediately. For advisories without fixed versions, remove internet exposure, restrict to trusted networks/VPN, and disable risky render/action features where possible.
- Hunt stored XSS payloads in ticket/customer-service messages, SiYuan Attribute View names, notification action fields, admin notes, and database-backed UI labels.
- For Electron-backed clients, treat successful stored XSS as possible local code execution: review spawned processes, file reads, credential-store access, and extension/plugin changes.
- For Funadmin and MindsDB, review authorization logs for direct object access, role changes, new admin/API users, unexpected queries, connector creation, and model/database exfiltration.
Durable controls¶
- Escape at the final rendering sink and keep rich-text sanitizers on a deny-by-default allowlist with regression tests for SVG, template, URL, and event-handler contexts.
- Isolate Electron renderers: disable Node integration, enable context isolation, restrict preload bridges, and treat renderer-origin data as untrusted.
- Parse notification/action DSLs with strict schemas; reject shell-like syntax, URLs with dangerous schemes, and unexpected fields before execution.
- Enforce authorization server-side per route, object, and action. UI-hidden buttons are not controls.
- Add content-security policy, Trusted Types where available, and audit logs that tie rendered content to creator, sink, sanitizer version, and resulting action.