دو نئے ظاہر ہونے والے CVEs—React Server Components میں CVE-2025-55182 اور Next.js middleware میں CVE-2025-29927—جدید JavaScript stacks پر remote-code execution اور authentication bypass کا راستہ کھولتے ہیں۔ ایک ہی درخواست ان خامیوں کو متحرک کر سکتی ہے؛ صرف کنفیگریشن انہیں روکنے کے لیے کافی نہیں ہے۔ وہ ٹیمیں جو React Server Components یا Next.js middleware پر انحصار کرتی ہیں، انہیں ان بگز (bugs) کو فوری طور پر حل کرنے کے لیے ضروری سمجھنا چاہیے اور جلد از جلد پیچز (patches) جاری کرنے چاہئیں۔
لاگز (logs) میں شور کیوں گمراہ کن ہے
ہم نے ایک پروڈکشن Next.js سائٹ سے ایک ماہ کے edge logs حاصل کیے۔ اس سیٹ میں 8,900 درخواستیں تھیں جنہیں نقصان دہ (malicious) کے طور پر نشان زد کیا گیا تھا۔ تقریباً ہر ایک پہلی کوشش (hop) پر ہی ناکام ہو گئی۔ سب سے عام URL /wp-admin/install.php تھا، جو 518 بار ہٹ ہوا، باوجود اس کے کہ سائٹ WordPress نہیں چلا رہی، PHP استعمال نہیں کر رہی، اور اس میں کوئی WordPress فائلیں موجود نہیں ہیں۔
خودکار اسکینرز (Automated scanners) یہ ٹریفک پیدا کرتے ہیں۔ وہ انٹرنیٹ پر اندازوں کی بوچھاڑ کرتے ہیں، اور درج ذیل چیزوں کی تلاش میں ہوتے ہیں:
- Secrets اور configuration فائلیں – 64% کوششیں
- PHP پینلز اور شیلز (shells) – 22%
- WordPress کے راستے (paths) – 11%
- ڈیٹا بیس ٹولز – 1%
بلاک شدہ درخواستوں کی زیادہ تعداد صرف آپ کو یہ بتاتی ہے کہ آپ وہ سافٹ ویئر نہیں چلا رہے جس کی بوٹس (bots) توقع کر رہے ہیں۔ یہ اس بات کی ضمانت نہیں دیتا کہ وہ ایپلی کیشن جو آپ چلا رہے ہیں وہ محفوظ ہے۔
خاموش، فریم ورک لیول کے حملے
جب کوئی حملہ آور Next.js ایپ کو نشانہ بناتا ہے، تو ٹریفک عام صارف کی درخواستوں جیسی نظر آتی ہے، جو فریم ورک کے اپنے میکانزم کو اس کے خلاف استعمال کرتی ہے۔
React2Shell (CVE-2025-55182)
React Server Components میں ایک خامی حملہ آور کو ایک خاص طور پر تیار کردہ پے لوڈ (payload) انجیکٹ کرنے کی اجازت دیتی ہے جسے سرور کوڈ کے طور پر پرکھتا (evaluate) ہے۔ اس کا نتیجہ مکمل remote-code execution ہے جس کے لیے فائر وال یا ویب ایپلی کیشن فلٹر کو بائی پاس کرنے کی ضرورت نہیں پڑتی۔ یہ کمزوری فریم ورک کے اندر موجود ہے؛ اس کا واحد حل اس ورژن پر اپ گریڈ کرنا ہے جس میں اس کی اصلاح (fix) موجود ہو۔
Middleware Authorization Bypass (CVE-2025-29927)
Next.js middleware ریکویسٹ ہیڈرز (request headers) کی بنیاد پر سیکیورٹی چیک لاگو کر سکتا ہے۔ یہ CVE ظاہر کرتا ہے کہ ایک حملہ آور ایک خاص اندرونی ہیڈر فراہم کر سکتا ہے اور مڈل ویئر کو ان چیکس کو مکمل طور پر چھوڑنے پر مجبور کر سکتا ہے۔ باہر سے درخواست عام نظر آتی ہے، جس سے اس کی نشاندہی کرنا مشکل ہو جاتا ہے۔
دونوں بگ ظاہر کرتے ہیں کہ سب سے خطرناک ٹریفک روزمرہ کی ٹریفک میں گھل مل سکتی ہے، اور ان الارموں سے بچ سکتی ہے جو شور مچانے والے WordPress پروبز (probes) کو پکڑتے ہیں۔
خطرات کیا ہیں
- Developers جو فریم ورک اپ ڈیٹس کو اختیاری سمجھتے ہیں، وہ اپنے سرورز کے مکمل قبضے کا خطرہ مول لیتے ہیں۔
- Operations teams جو اسٹیک کو مضبوط بنانے کے لیے اسٹیٹک کنفیگریشن پر انحصار کرتی ہیں، وہ اس کوڈ سے نہیں بچ سکتیں جو خود فریم ورک کے اندر چلتا ہے۔
دفاع کے لیے ایک عملی چیک لسٹ
- Deployment hygiene –
.envجیسی فائلوں میں سیکرٹس (secrets) شامل نہ کریں۔ انہیں رن ٹائم پر فراہم کیے گئے انوائرمنٹ ویری ایبلز (environment variables) میں یا کسی مخصوص سیکرٹ مینجمنٹ سسٹم میں محفوظ کریں۔ - Minimal attack surface – فریم ورک کے ان فیچرز کو بند کر دیں جنہیں آپ استعمال نہیں کرتے۔ ایک سخت Content-Security-Policy نافذ کریں جو غیر مجاز اسکرپٹس کی لوڈنگ کو روکتی ہو۔
- Rapid patching – بلڈ پائپ لائن (build pipeline) کو خودکار بنائیں تاکہ ریلیز کے چند گھنٹوں کے اندر نئے فریم ورک ورژن کی جانچ اور تعینل (deployment) کیا جا سکے۔ سیکیورٹی اپ ڈیٹس کو ریلیز کے معمول کے حصے کے طور پر لیں، نہ کہ بعد میں سوچنے والی چیز کے طور پر۔
آگے کیا دیکھنا ہے
- React، Next.js، اور کسی بھی دوسری رن ٹائم لائبریری کے لیے آفیشل سیکیورٹی ایڈوائزری فیڈز کو سبسکرائب کریں۔
- ایسے والی نریبلٹی اسکینرز (vulnerability scanners) کو شامل کریں جو JavaScript پیکیج میٹا ڈیٹا کو سمجھتے ہوں، تاکہ نیا شائع ہونے والا CVE خودکار الرٹ جاری کر سکے۔
- ایک رول بیک کے لیے تیار (rollback-ready) ڈیپلائمنٹ پائپ لائن بنائیں؛ اگر کوئی پیچ ریگریشنز (regressions) کا باعث بنتا ہے، تو آپ سسٹم کو خطرے میں ڈالے بغیر تیزی سے واپس جا سکتے ہیں۔
سبق واضح ہے: آپ کے لاگز میں سب سے زیادہ شور مچانے والے حملے اکثر گمراہ کرنے کے لیے ہوتے ہیں۔ اصل خطرہ اس فریم ورک میں چھپا ہوتا ہے جس پر آپ کا کوڈ بھروسہ کرتا ہے۔ اسٹیک کو ہلکا رکھیں، سیکرٹس کو محفوظ طریقے سے اسٹور کریں، اور پیچز کو معمول کے کام کے طور پر لیں، اور آپ خاموش، فریم ورک لیول کے خطرات کو قابلِ انتظام خطرات میں بدل دیں گے۔
