
Exploit proof-of-concept per CVE-2026-11103 che dimostra il bypass del rate-limit di GraphQL tramite batching e alias di campi; include un server Node.js vulnerabile e uno script di exploit in Python.
// 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'));
Un'API GraphQL applica un rate limit basato sul numero di richieste HTTP, non sulla complessità o sul numero di campi risolti. Utilizzando gli alias dei campi, un attaccante può inviare più query dispendiose in un'unica richiesta HTTP, aggirando di fatto il rate limit.
npm install express express-graphql graphql
node graphql_rate_limit_server.js
python exploit_graphql_alias_bypass.py