## https://sploitus.com/exploit?id=5F50944C-454B-5B76-8FD8-EE5EC48E0862
---
## 3. CVE-2026-11103 β GraphQL Batching Alias Rate Limit Bypass
### Program Code (Node.js + Python Exploit)
```javascript
// graphql_rate_limit_server.js - GraphQL with naive rate limiter
const express = require('express');
const { graphqlHTTP } = require('express-graphql');
const { buildSchema } = require('graphql');
const schema = buildSchema(`
type Query {
secret: String
}
`);
let requestCount = 0;
const rateLimit = (req, res, next) => {
requestCount++;
if (requestCount > 5) {
return res.status(429).send('Rate limit exceeded');
}
next();
};
const root = { secret: () => 'SuperSecretData' };
const app = express();
app.use(rateLimit);
app.use('/graphql', graphqlHTTP({ schema, rootValue: root, graphiql: true }));
app.listen(4000, () => console.log('GraphQL on :4000'));
```
# CVE-2026-11103 β GraphQL Batching Alias Rate Limit Bypass

## Overview
A GraphQL API enforces rate limiting based on the number of HTTP requests, not on the complexity or number of resolved fields. By using field aliases, an attacker can issue multiple expensive queries within a single HTTP request, effectively bypassing the rate limit.
## Vulnerability Details
- **Type:** Rate Limit Bypass
- **Impact:** Information disclosure, denial of service.
- **Root Cause:** The rate limiter counts each HTTP request as one operation, ignoring that a single GraphQL document can contain many aliased fields, each consuming server resources.
## Exploit Demonstration
1. Start the server:
```bash
npm install express express-graphql graphql
node graphql_rate_limit_server.js
2. Run the exploit:
```bash
python exploit_graphql_alias_bypass.py