Identity, build command, and deserialization-boundary batch¶
Source: GitHub Security Advisories REST fallback updated 2026-05-11.
This batch is durable because four different products failed at the same class of boundary: claims, identifiers, build metadata, and serialized objects were treated as authority instead of hostile input. Token exchange, profile ownership, CI branch names, and PHP object graphs all need explicit policy before they touch privileged actions.
Advisories covered¶
- Unity Catalog issuer validation bypass / user impersonation — GHSA-qqcj-rghw-829x, CVE-2026-27478: Maven
io.unitycatalog:unitycatalog-server <=0.4.0accepted JWT token-exchange input where theissclaim selected the OIDC/JWKS source dynamically. Attackers could host their own OIDC metadata/JWKS, sign a token for any knownsuboremail, and exchange it for an internal Unity Catalog access token. The advisory also notes missingaudvalidation. Fixed in0.4.1. - MantisBT global profile authorization bypass — GHSA-68w5-w573-q2r8, CVE-2026-33052: Composer
mantisbt/mantisbt >=2.28.0,<2.28.2allowed a low-privileged authenticated user withadd_profile_thresholdto create a global profile by tampering withuser_id, bypassingmanage_global_profile_threshold. Fixed in2.28.2. - WebdriverIO BrowserStack service command injection — GHSA-5c46-x3qw-q7j7, CVE-2026-25244: npm
@wdio/browserstack-service <=9.23.2interpolated git branch metadata into shell commands during BrowserStack test orchestration / smart selection. A malicious repository or branch name could execute commands on developer or CI hosts. Fixed in9.24.0. - torrentpier PHP serialize injection — GHSA-h29g-c9cx-c73q: Composer
torrentpier/torrentpier <=2.4.3contained PHP object-deserialization injection paths that could enable code execution or arbitrary file access where attacker-controlled serialized data reaches vulnerable sinks. Fixed in2.4.4.
Operator triage¶
- Patch Unity Catalog servers to 0.4.1+ immediately. Treat exposed
/api/1.0/unity-control/auth/tokensendpoints as high priority and review access-token issuance logs for unusual issuer URLs, unfamiliar OIDC discovery hosts, or token exchanges for privileged users. - For Unity Catalog, hard-code trusted issuer and JWKS metadata, require expected
aud,iss, signature algorithm, and subject mapping policy, and invalidate tokens issued during any suspected exploit window. - Patch MantisBT to 2.28.2+ and search profile/audit data for global profiles created by users who lack
manage_global_profile_threshold; remove unauthorized profiles and review any workflow that trusts global profile metadata. - Patch
@wdio/browserstack-serviceto 9.24.0+. Before running untrusted branches or forked PRs, disable BrowserStack smart-selection/test-orchestration features or isolate them in CI jobs with no secrets, read-only checkout tokens, and no deploy credentials. - Patch torrentpier to 2.4.4+. Inventory endpoints, cookies, cache/state files, and queued payloads that may deserialize PHP objects; rotate credentials and inspect web/PHP logs if attacker-controlled serialized strings reached those paths.
Durable controls¶
- Token exchange must bind
iss,aud, JWKS URI, algorithm, and subject mapping to a preconfigured trust relationship; never let an incoming token choose its own trust root. - Authorization checks must evaluate immutable server-side identity and permission state. Client-controlled IDs such as
user_idcan select records, but cannot select the actor or privilege scope. - Build and test automation must treat repository metadata — branch names, tags, commit messages, remote names, and paths — as attacker-controlled. Pass metadata as argv arrays, not shell strings, and run fork/PR jobs without secrets.
- PHP
unserialize()and other object-graph deserializers are code-adjacent. Prefer JSON/schema data formats; if legacy object state is unavoidable, require authenticated integrity, strict type allowlists, and a separate least-privileged worker. - Incident response should tie these findings together: if the boundary crosses from data into identity, shell, or object construction, assume compromise until logs and affected versions prove otherwise.