← Blog
🛡️ ثغرة23 أكتوبر 2026

CVE-2026-114139: تجاوز حرج (bypass) لـ middleware في Sentry لـ Next.js

CVE-2026-114139: ثغرة حرجة (CVSS 9.1) في @sentry/nextjs تتيح تجاوز middleware عبر tunnelRoute. ما الذي يجب فعله الآن.

OCIRIA security team

CVE-2026-114139: تجاوز حرج لـ middleware في Sentry لـ Next.js

باختصار

تم الإعلان عن ثغرة حرجة، تحمل المعرّف CVE-2026-114139، بدرجة CVSS تبلغ 9.1 من 10 [1]، نُشرت في 21 أكتوبر 2026 [1]. تؤثر هذه الثغرة على Sentry-Javascript، مجموعة الـ SDKs الرسمية لـ Sentry، وتحديدًا على تكامل @sentry/nextjs عندما يستخدم تطبيق Next.js وظيفة "tunnel" لإرسال تقارير الأخطاء ويتم بناؤه باستخدام webpack [1]. في هذا السياق، يمكن لطلب غير مصادَق عليه أن يتجاوز middleware التطبيق ويصل إلى مسارات كان يُفترض أن يحميها [1]. إذا كانت شركتك تملك تطبيقات Next.js تستخدم Sentry، فإن الأولوية اليوم هي التحقق من الإصدار المثبّت من @sentry/nextjs والترقية إلى إصدار مصحَّح في أقرب وقت ممكن.

ما هي وما أهميتها

تدمج العديد من تطبيقات Next.js خدمة Sentry لرصد الأخطاء في بيئة الإنتاج. ولتجنّب قطع حاصرات الإعلانات أو إضافات المتصفح لهذا النوع من الحركة، توفّر Sentry وظيفة تُسمى "tunnel"، تعيد توجيه تقارير الأخطاء عبر نفس نطاق التطبيق باستخدام مسار قابل للتهيئة (tunnelRoute) [1].

تكمن المشكلة في طريقة تنفيذ تكامل webpack في @sentry/nextjs لهذه الآلية في الإصدارات المتأثرة: فمن المفترض أن تقوم عملية إعادة الكتابة الخاصة بالـ tunnel بخدمة المسار الدقيق للـ tunnel فقط عند وصول المعاملين الصحيحين "o" و"p"، لكن middleware التطبيق يتم تجاوزه بالنسبة لأي مسار يقع تحت تunnelRoute المهيّأ [1]. فإذا تطابق مسار خاص بالتطبيق مع مسار الـ tunnel هذا، أو إذا أدى مقطع ديناميكي في جذر الموقع إلى الحل تحته، فإن طلبًا غير مصادَق عليه يمكن أن يصل إلى ذلك المسار دون المرور عبر فحص التفويض الخاص بـ middleware [1]. وبالتالي، يتطلب الاستغلال وجود tunnelRoute مهيّأ، وبناء باستخدام webpack، ومسار يتعارض مع الـ tunnel، وأن يكون middleware هو الضابط الوحيد للتفويض على ذلك المسار [1].

يلخّص رادار الاستخبارات التابع لـ OCIRIA الخطر بشكل مباشر: هذه الثغرة "تتيح تجاوز middleware الأمان في @sentry/nextjs عند استخدام مسار Tunnel"، وبالتالي "تؤثر على تطبيقات Next.js التي تستخدم Sentry للمراقبة، مما يسمح بتجاوز ضوابط أمان حرجة" [2]. تصنّف OCIRIA هذه الثغرة ضمن فئة تصعيد الصلاحيات [2]، بما يتوافق مع مستوى الخطورة الحرجة الذي حدّدته أيضًا NVD [1].

من المتأثر

تؤثر هذه الثغرة على تطبيقات Next.js التي تستخدم حزمة @sentry/nextjs في الإصدارات الواقعة بين 9.36.0 وحتى، على التوالي، 9.47.2 و10.75.2 و11.0.0-rc.1 (الإصدارات السابقة للتصحيحات) [1]. ليست كل عملية تثبيت لـ Sentry في Next.js معرّضة للخطر: فوفقًا للوصف الرسمي، يجب أن تكون خاصية tunnelRoute مهيّأة، وأن يتم البناء باستخدام webpack (وليس باستخدام أدوات تجميع أخرى)، وأن يوجد مسار في التطبيق يتعارض مع مسار الـ tunnel هذا، معتمدًا فقط على middleware للحماية [1]. يجدر بفرق المنتج والتطوير والأمان في الشركات التي تستخدم Next.js مع Sentry لأغراض المراقبة مراجعة تهيئتها، بغض النظر عن حجم المؤسسة.

كيف تعرف إذا كنت متأثرًا

1. راجع ملف package.json أو ملف القفل (lockfile) للمشروع وتأكد من الإصدار المثبّت من @sentry/nextjs؛ وقارنه بالنطاقات المتأثرة المذكورة أعلاه [1].

2. تحقق مما إذا كانت تهيئة Sentry لديك تحتوي على tunnelRoute معرّفة، وما إذا كان المشروع مبنيًا باستخدام webpack.

3. حدّد ما إذا كان أي مسار في تطبيقك (بما في ذلك المقاطع الديناميكية في الجذر) قد يتطابق مع المسار المهيّأ كـ tunnel.

4. تحقّق مما إذا كان التفويض لهذه المسارات يعتمد بشكل كامل على middleware في Next.js، دون وجود فحص إضافي داخل المعالج (handler) نفسه أو على مستوى الخادم.

5. بالإضافة إلى هذه المراجعة الداخلية، يُنصح بالتحقق من السطح الظاهر لتطبيقك من الخارج، لرصد مسارات أو نقاط نهاية مكشوفة لم تكن تتوقعها.

كيف تحمي نفسك

  • قم بترقية @sentry/nextjs إلى أحد الإصدارات المصحَّحة: 9.47.2 أو 10.75.2 أو 11.0.0-rc.1، حسب الفرع الذي تستخدمه [1]. ويوصي رادار OCIRIA نفسه بـ "تحديث @sentry/nextjs إلى الإصدار المرقّع فورًا" [2].
  • لا تترك تفويض المسارات الحساسة معتمدًا فقط على middleware: أضف أيضًا فحوصات وصول داخل المعالج نفسه أو مكوّن الخادم، كطبقة دفاع إضافية.
  • راجع ما إذا كنت تحتاج بالفعل إلى تفعيل وظيفة tunnel في بيئة الإنتاج؛ فإذا لم تكن تستخدمها، فإن تعطيلها يقلّص سطح هذه المشكلة.
  • راجع سجلات الوصول للبحث عن طلبات غير معتادة موجهة إلى مسارات تتطابق مع tunnelRoute المهيّأة لديك.
  • أدرج هذا الفحص في دورة التحديث الاعتيادية للتبعيات، وليس كمهمة لمرة واحدة فقط.

أسئلة متكررة

ما هي "tunnelRoute" بالتحديد؟ هي خيار تهيئة في Sentry لـ Next.js يعيد توجيه تقارير الأخطاء عبر مسار خاص بنطاقك، بدلًا من إرسالها مباشرة إلى خوادم Sentry [1].

هل أنا متأثر إذا كنت أستخدم Sentry في Next.js دون تهيئة tunnelRoute؟ وفقًا للوصف الرسمي، يتطلب الاستغلال وجود tunnelRoute مهيّأة والبناء باستخدام webpack، بالإضافة إلى مسار يتعارض معها [1]. إذا لم تستوف هذه الشروط، فإن السيناريو الموصوف لا ينطبق عليك بشكل مباشر، لكن يبقى من المستحسن إجراء الترقية.

هل الترقية عاجلة؟ تحمل هذه الثغرة درجة CVSS تبلغ 9.1، مصنّفة كحرجة من قبل NVD [1]، وتتيح لمهاجم غير مصادَق عليه الوصول إلى مسارات محمية. بالنظر إلى هذا المزيج، ينبغي التعامل معها على أنها ذات أولوية.

ماذا يضيف رادار OCIRIA بشأن هذه الحالة؟ يضع رادارنا هذه الثغرة ضمن فئة تصعيد الصلاحيات، ويتفق على أن الخطر الرئيسي يتمثل في تجاوز ضوابط أمان حرجة في تطبيقات Next.js التي تستخدم Sentry للمراقبة [2].

المصادر

  • [1] https://nvd.nist.gov/vuln/detail/CVE-2026-114139
  • [2] https://github.com/advisories/GHSA-mchm-gjx6-7h55
OCIRIA security team Threat monitoring & response · data from our real-time radar Live radar