Skip to content

Web app SSRF, auth, and state-boundary batch (GHSA)

Signal: GitHub Security Advisories Atom/REST surfaced a 2026-05-04 batch where web applications and registries crossed XML, SSRF, session, authorization, and destructive-state boundaries.

Advisories in this batch

Why this is durable

The batch is about server-side convenience features performing actions for the attacker: XML parsers fetch entities, previewers fetch metadata, Webmention dispatchers call remote URLs, session middleware trusts stale user state, toggles mutate model fields, and registry APIs delete data despite policy flags.

Immediate triage

  1. Patch affected web apps and libraries or remove internet exposure until fixed.
  2. Disable risky helpers: XML import, URL preview, Webmention, server actions, Nova toggle endpoints, and registry tag deletion where they are not required.
  3. Add compensating controls: WAF/rate limits for WebSocket login, egress allowlists for preview/Webmention workers, and CSRF origin checks for same-site actions.
  4. Revalidate sessions: force logout for deactivated CI4MS users and check whether inactive accounts retained valid cookies.
  5. Verify data integrity: inspect registry tag deletion logs and CI4MS database metadata for unexpected destructive operations.

Hunt ideas

  • Search changedetection.io logs for XML documents containing <!DOCTYPE, <!ENTITY, SYSTEM, file://, or cloud metadata URLs.
  • Query outbound proxy logs for Lemmy requests to RFC1918, link-local, loopback, metadata, or internal service hostnames.
  • Review Signal K WebSocket login failures by username/IP and add lockout telemetry.
  • Inspect CI4MS sessions where active=0, theme deletion requests, and DROP TABLE activity near web requests.
  • Compare registry tag delete events against storage.delete.enabled=false deployments.
  • Check RedwoodSDK server-action POSTs with missing or unexpected Origin/Sec-Fetch-Site headers.

Durable controls

  • Disable external entity resolution and network/file access in XML parsers by default.
  • Run URL preview and Webmention fetches in isolated workers with strict egress policy and response-size limits.
  • Recheck account state on every privileged request, not only at login.
  • Require per-field authorization for generic toggle endpoints.
  • Treat “delete disabled” flags as enforcement points that tests must cover, not documentation hints.
  • Require Origin/Fetch Metadata validation on same-site server actions.

Operator lesson

Any web feature that “helps” by fetching, rendering, toggling, or deleting needs its own boundary. Convenience endpoints are high-value because they often skip the boring checks that core routes already have.