
Exploit de preuve de concept pour CVE-2026-11103 démontrant le contournement de la limite de débit GraphQL via le batching et les alias de champs ; inclut un serveur Node.js vulnérable et un script d'exploitation 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'));
Une API GraphQL applique une limitation de débit basée sur le nombre de requêtes HTTP, et non sur la complexité ou le nombre de champs résolus. En utilisant des alias de champs, un attaquant peut envoyer plusieurs requêtes coûteuses dans une seule requête HTTP, contournant ainsi la limite de débit.
npm install express express-graphql graphql
node graphql_rate_limit_server.js
python exploit_graphql_alias_bypass.py