Exhibits
CVE-2026-0257: PAN-OS Encrypted GlobalProtect's Auth-Override Cookie With The TLS Certificate. The trust artifact is the X.509 certificate the GlobalProtect portal presents in its TLS handshake. Its purpose is to prove portal identity to a connecting user; the chain ships in plaintext because TLS requires it. PAN-OS's authentication-override-cookie scheme reuses that same certificate's public key as the encryption key for cookies whose decryption authorizes login. The artifact that the portal hands every client to prove "this is the portal" becomes the primitive the client uses to prove "I am any user." The advisory's step-two remediation, "use a dedicated certificate exclusively for authentication override cookies, do not reuse the portal/gateway certificate," is the configuration knob that, when turned wrong, broadcasts the cookie-mint key. Validation on the distrusted lane (the password field on /ssl-vpn/login.esp) was never the gate, because the cookie field on the same endpoint accepts anything the public key encrypted. The credential that authenticates the portal to the world authenticates the world to the portal.
CVE-2026-45321: TanStack's bundle-size.yml Poisoned the Cache. release.yml Restored It.. The trusted artifact is the GitHub Actions cache for the repository. bundle-size.yml's write into a cache key was granted because pull_request_target runs as the base. release.yml's read of the same key was unconditional because the cache service does not partition writes by which trust context produced them. The attacker did not break authentication, did not steal a credential, and did not reach the publish workflow's runner. The cache crossed the trust boundary that workflow permissions tried to maintain, and release.yml ran what the cache restored.
The Trust Inversion. The namesake post lays out the shape. Start there if the category is new, then come back for specifics.
CVE-2026-34220: MikroORM's Raw-SQL Brand Was a Property Name. The trusted artifact is MikroORM's own internal raw-SQL marker. The attacker captures it not by compromising the maintainer, the package, or the database, but by writing nine bytes of JSON into a request body. Every site in the ORM that calls isRaw(x) was downstream-trusting the result and inlining x.sql into a query unquoted. One compromise covers every Custom Type column on every install of every affected version. The cost of capture is a property name and the willingness to send a request, which is the lowest cost-of-capture this catalog has recorded.
CVE-2026-8732: WP Maps Pro's Temp-Access Endpoint Creates Administrators. The Vendor's Email Is Hardcoded.. The wpgmp_temp_access endpoint and its fc_user_* account convention are the Flippercode support team's intended path to administrative access on customer sites: a customer files a ticket, the technician spawns a temporary admin, fixes the issue, calls the check_temp=true cleanup branch when done. The trust the customer extends to the vendor is implemented as a publicly-reachable endpoint that creates the credential out of nothing. The tool that authorizes vendor access to customer systems is the tool an unauthenticated visitor uses to acquire the same access. The cleanup branch the vendor designed for their own workflow is the cleanup branch the PoC calls to remove evidence of a prior attacker before the next exploitation attempt.
CVE-2025-29927: The Recursion Guard Was the Auth Bypass. The recursion guard in Next.js's edge sandbox had authority to skip middleware execution. Its input was a colon-separated string read straight off the inbound HTTP request. The framework's internal control header was the trust artifact; the attacker captured it by knowing its name and writing it on the wire. This is trust inversion one floor below the catalog's usual frame: the authorizer is not a maintainer account or a signing UI, it is a framework's own IPC channel that never modeled the network as hostile.
CVE-2024-22120: Zabbix's Audit Log Is the Read Primitive. The trusted lane is the database credentials Zabbix's audit subsystem uses to write auditlog rows. Those credentials authorize INSERTs on behalf of the system. CVE-2024-22120 turns that authorization into ratification of arbitrary SELECTs against sessions and config, on behalf of a low-privilege user who never held the credentials and never could acquire them. The validation that should have stopped the inversion was abandoned at the dispatcher, by design, with a comment in the same commit that fixed the SQLi sink. The fix closes the lane at the database layer; the comment documents that the input remains untrusted and uncentralized everywhere else.
CVE-2026-41651: Polkit Authorized the Slot, Not the Value. Polkit is the trust artifact every Linux desktop relies on for privileged-action authorization. PackageKit's bug turns polkit's grant into the attacker's primitive. Polkit did its job correctly; the design that called it failed to keep the parameters polkit was authorizing intact long enough for the authorization to mean anything.
CVE-2026-34621 Revisited: The 136-Day Detection Lie. The Adobe case extends Trust Inversion to the meta-layer of detection. The sandbox was inverted, yes; but the vendor's advisory apparatus — the "no known exploits" flag, the PSIRT text, the CVSS exploitation-status field — is also a defender-paid input that the vendor controls, and it ran 136 days behind public VirusTotal evidence. Defenders reading the text as threat detection were reading a legal-and-PR artifact.
Axios, Sapphire Sleet, and 70 Million Weekly Installs. The axios maintainer account was compromised, which meant the next npm publish carried an attacker's code with the maintainer's signature. 70 million weekly downloads downstream, and none of them had authenticated the attacker, because they were authenticating the maintainer. The distrusted lane (a random package) was closed. The trusted lane (the same package you have always used) was wide open.
Bybit: $1.5B via a JavaScript Injection Nobody Was Looking For. The signing surface on the Safe multisig UI displayed one transaction, signed a different one. The cryptographic signature was correct. The signers had reviewed the transaction in the display. The display was the attacker's rendering. The signed bytes were the attacker's payload. One and a half billion dollars, no credential theft, no key exfiltration. The trust boundary lives at the rendering layer, and that is the layer that was poisoned.
tj-actions: Mutable Tags Were Always a Lie. GitHub Actions users reference third-party actions by tag. Tags are mutable. For years the ecosystem treated @v1 as a pinned release. An attacker moved the tag, and every pipeline that imported the action at that tag imported the attacker's code. The thing the ecosystem depended on for immutability was, at the protocol level, mutable by design.
Prompt Injection Is a Supply Chain Attack. Every input to an LLM is interpreted as potential instruction. When the context window contains content from email, a webpage, a PDF, anything the attacker places inside the prompt is, from the model's perspective, coming from the same trusted channel as the user's question. The AI's capability to take your intent and act on it is also the attacker's capability to take the attacker's intent and act on it.
TeamPCP Came for the Scanners. The team's vulnerability scanner was the payload delivery mechanism. A defender's tool, running with defender privileges, reading every repository in the org, became the attacker's read primitive. The scanner is supposed to find attacks. Now it is an attack.
You did not get breached by an attacker. You got breached by the thing you trust.