BETA Shoulder is in beta — Findings may sometimes be wrong. Your feedback shapes what we fix next. Share feedback

Description

Using unvalidated headers, cookies, or query params in context creation allows attackers to bypass authentication and impersonate users.

What Shoulder detects

Context creation uses raw request data without validation. Verify and validate all request data before adding to context.

How to fix

Verify JWT signatures or use session libraries instead of trusting raw headers.

```typescript
import { getServerSession } from 'next-auth';

export async function createContext({ req, res }: CreateNextContextOptions) {
  const session = await getServerSession(req, res, authOptions);
  return {
    user: session?.user ?? null,
    db
  };
}
```

Learn more: https://shoulder.dev/learn/typescript/cwe-20/context-injection

Applies to

Frameworks

trpc

References

Scan for this issue

Detect with Shoulder CLI
npx @shoulderdev/cli trust --rule=trpc-context-injection .

Real-world examples

Known CVEs in the Improper Input Validation vulnerability class that this rule helps detect.

Related rules