
استغلال لإثبات المفهوم لثغرة CVE-2026-11103 يوضح كيفية تجاوز حد معدل الطلبات في GraphQL عبر التجميع والأسماء المستعارة للحقول؛ ويتضمن خادم Node.js قابلًا للاستغلال ونصًا برمجيًا للاستغلال بلغة 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'));
تفرض واجهة برمجة تطبيقات GraphQL حدًا للمعدل استنادًا إلى عدد طلبات HTTP، وليس إلى تعقيد أو عدد الحقول التي تم حلها. باستخدام الأسماء المستعارة للحقول، يمكن للمهاجم إرسال عدة استعلامات مكلفة داخل طلب HTTP واحد، مما يتيح له تجاوز حد المعدل فعليًا.
npm install express express-graphql graphql
node graphql_rate_limit_server.js
python exploit_graphql_alias_bypass.py