Three Products, One Bug: Network Reachability Mistaken for Authorization
The AI serving layer is reintroducing deserialization RCE and confused-deputy auth you thought you'd retired, and each shipped as a maximum-severity CVE.
Why pickle over a socket is always RCE
Pickle has no safe mode for untrusted input. __reduce__ lets a payload name any callable. So pickle.loads() on bytes from an unauthenticated socket is remote code execution for anyone with L4 access. SGLang's multimodal runtime binds a ZeroMQ ROUTER socket and does exactly that (CVE-2026-93088, CVSS 9.8). The advisory does not list the default bind address. Check each deployment and treat it as exposed until the bind is confirmed. A GPU inference node holds model weights, prompt and response traffic, and often broad cloud credentials in the same process.
MCP Atlassian is the identity version
The HTTP MCP endpoint runs with operator permissions. Any request without per-user identity inherits the operator's reach into Atlassian (CVE-2026-77244, 10.0; CVE-2026-77254, 9.1). This failure was predictable once MCP servers moved from single-user local processes to shared network services: the server's credential becomes everyone's credential. Upgrading to 0.22.0 closes this endpoint; the authorization model is unchanged. The class fix is mechanical. Every HTTP-transport MCP server now holding production tokens has to authenticate the caller and act with that caller's scoped token.
Unsloth: a UI click crossed a trust boundary
CSO reports that in Unsloth Studio, selecting a model in the picker could run that repo's Python. A picker is for browsing. Wiring the click to repo code turns looking into running. The mechanism isn't disclosed. The shape matches the familiar trust_remote_code and pickle-checkpoint paths. A model repository is a code dependency, and the loader inherits its risk. Fine-tuning workstations are usually the most over-privileged machines in an ML org. Per CSO, the exposure covered credentials, data and model artifacts.
Strip the vendor names and all three treat reachability or a UI event as authorization. These are boring trust boundaries that teams already know how to build.
What the pattern means for the triage queue
SANS makes a quieter point that changes triage: 11 of the 16 KEV-listed flaws in its ledger are scored CVSS 0 (unscored, not low), including the Apple zero-day and both Citrix NetScaler entries. A dashboard sorted by score puts confirmed exploitation below theoretical 9.8s. Sort on KEV membership first, then reachability, and use score as the tiebreaker. The AI-tier CVEs here are high-scored and loud. The entries that get skipped are the quiet, exploited ones, and in this ledger that is 11 of the 16.
What to do
Block the SGLang ZeroMQ listener at the pod/node boundary (NetworkPolicy or security groups) today, then upgrade per the CVE-2026-93088 advisory; add a CI rule (Bandit B301 or Semgrep) that fails on pickle.loads of network-sourced bytes.
Upgrade mcp-atlassian to >=0.22.0 this sprint and adopt a standing policy that every HTTP-transport MCP server authenticates callers and uses caller-scoped downstream credentials, not a shared operator token.
Inventory Unsloth Studio usage, rotate credentials reachable from any environment where untrusted-repo models were selected, and move model fetch into a sandboxed resolver that pins by commit hash and prefers safetensors.