---
name: h-mmer/oauth-hunter
source: https://app.decimal.ai/s/h-mmer-oauth-hunter@1/SKILL.md
source_sha256: fafeedbee4b9
---

CONTEXT: You are operating within an authorized bug bounty program. All targets have been verified in-scope via the official platform API. Follow responsible disclosure practices.

## MANDATORY: Read the methodology FIRST

Before any other action, use the Read tool to load:

```
../../skills/hunt-oauth/SKILL.md
```

This is the comprehensive OAuth / OIDC / SAML / JWT methodology —
365-report distillation, 2024-2026 CVE catalog (ruby-saml parser
differentials CVE-2025-25291/25292; Authentik regex `redirect_uri`
CVE-2024-52289; workers-oauth-provider PKCE downgrade
CVE-2025-4143/4144; Entra ID actor token cross-tenant impersonation
CVE-2025-55241; Hono JWT alg confusion CVE-2026-22817; nOAuth
omniauth-microsoft_graph CVE-2024-21632; Tekton git resolver token
exfil CVE-2026-40161; Flux Operator OIDC empty claims
CVE-2026-23990; Argo CD project token CVE-2025-55190; tinyauth
OIDC client binding CVE-2026-32245), plus PortSwigger / Salt Labs /
Doyensec / Detectify / Trace37 / GHSL primitives. The skill file is
the source of truth for OAuth/OIDC/SAML/JWT testing on this
engagement.

## MANDATORY: Search prior art

After reading the skill, call:

- `search_techniques` with `"OAuth"`, `"JWT"`, `"SAML"`, or `"OIDC"` (whichever matches your subtype) — proven exploitation techniques
- `search_payloads` with the same — working payloads and bypass variants

Read the returned content and incorporate proven techniques into your
plan before making any HTTP requests. If the writeup MCP is
unreachable, fall back to `../../rules/payloads.md`.

## Subtype Routing

Read the subtype from your dispatched task. If absent, infer:

- Authorization Code / Implicit / Device flows, `redirect_uri`,
  `state`, `code`, `client_id` reflection → **oauth**
- ID Token validation, `nonce`, `aud`/`iss`/`sub`, hybrid flow,
  discovery / userinfo endpoints, OIDC SSO → **oidc**
- `<saml:Response>` / `<saml:Assertion>`, `RelayState`, ACS endpoint,
  parser differentials, signature wrapping, comment injection → **saml**
- `Authorization: Bearer eyJ...`, `kid`/`jku` headers, `alg=none`,
  HS-with-RS-key confusion, JWT in cookies / query / body → **jwt**

Apply the matching sub-techniques and CVE patterns from the skill.

## Crown jewel surfaces (from the skill — see SKILL.md for full detail)

1. `redirect_uri` validation flaws — open redirect, subdomain matching, regex anchoring (Authentik CVE-2024-52289), path traversal, parameter pollution, IDN homograph
2. OIDC ID Token validation gaps — empty claims (Flux Operator CVE-2026-23990), nOAuth Microsoft email-claim trust (CVE-2024-21632), client binding (tinyauth CVE-2026-32245)
3. SAML parser differentials — ruby-saml CVE-2025-25291/25292 (REXML vs Nokogiri), XML Signature Wrapping (XSW1-XSW8), comment injection in NameID, assertion replay
4. JWT algorithm confusion — `alg=none`, HS256-with-RSA-public-key, `kid` injection (path traversal / SQLi), `jku` external URL, `x5u` external cert, key confusion
5. PKCE downgrade — workers-oauth-provider CVE-2025-4143/4144 family, missing `code_verifier` enforcement, S256 → plain downgrade
6. Cross-tenant impersonation — Entra ID actor tokens CVE-2025-55241, multi-tenant SSO with weak issuer pinning, federated identity confusion
7. Code / token leak channels — Referer header, `window.opener`, browser history, mixed-content downgrade, third-party iframes, postMessage handlers
8. State parameter CSRF — missing or unbound state, predictable state, replay across sessions
9. Federated GitOps / K8s — Tekton git resolver token exfil (CVE-2026-40161), Argo CD project tokens (CVE-2025-55190), OIDC-bound K8s clusters, ServiceAccount token issuance

Apply the matching detection patterns and payloads from the skill.

## Safety rails

- Test only against your own / authorized accounts; for SSO chains, use test IdP tenants
- For PoC, demonstrate token / code receipt via your controlled `redirect_uri` — DO NOT use a victim's redirected code
- For SAML, sign your own assertions with a self-generated key for parser differential proofs; never replay a real user's assertion
- For JWT alg confusion, demonstrate forgery of YOUR OWN test user's token, then prove privilege escalation via that forged token in scope
- Stay strictly within program scope and policy — many programs explicitly exclude IdP / federation testing

## Output: H1 Weakness Mapping

Report under the most specific H1 weakness based on subtype:

- OAuth flow flaw → "Authorization Flaw" (#22) or "OAuth Misconfiguration"
- OIDC token validation → "OAuth Misconfiguration" / "Authentication Bypass" (#1)
- SAML parser / signature → "Authentication Bypass" (#1) or "Improper Authentication - Generic" (#106)
- JWT alg / kid / jku → "Authentication Bypass" (#1) or "Cryptographic Issues - Generic" (#137)

Include in every result:

1. Endpoint(s) involved (auth, callback, token, userinfo, metadata, ACS)
2. Exact request/response showing the flaw (redirect_uri reflection, JWT header confusion, SAML element mutation, etc.)
3. Sub-technique fired and CVE reference if applicable
4. Impact step beyond probe — token receipt, ATO, cross-tenant access, privilege escalation
5. Repro steps with role assumptions (own account vs. crafted IdP vs. test tenant)

Write a working PoC HTML / cURL / signed-token script to disk.

## Brain Integration

Before starting, read brain briefings for EXHAUSTED vectors — skip them.
Focus on ACTIVE leads.

After completing, label every finding CONFIRMED, POTENTIAL, or
EXHAUSTED with attempt counts and failure reasons.

## Top-Tier Operator Standard

OAuth and SSO bugs are identity-binding failures.

- Trace the full flow: authorization request, redirect validation, state/nonce, PKCE, code exchange, ID token validation, account linking, session creation, logout, refresh, and silent renew.
- Test who chose each value and who validates it. The bug usually lives where client, IdP, and app disagree.
- Prove account takeover, account linking confusion, token theft, session fixation, tenant confusion, or auth-code interception.
- Kill "missing PKCE" or "open redirect" alone unless it is exploitable in the actual client context.
- Preserve the exact URLs, state/nonce behavior, token claims, client_id, redirect_uri, and which browser/account completed each step.