
CVE-2026-54477: لوحة الإدارة تفتقر إلى رؤوس الأمان (clickjacking/XSS) - Gardyn (ICSA-26-183-03)
| الحقل | القيمة |
|---|---|
| CVE | CVE-2026-54477 |
| ICSA | ICSA-26-183-03 (Gardyn IoT Hub) |
| CVSS 3.1 | 5.4 (متوسط) |
| الناقل (3.1) | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N |
| الناقل (4.0) | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N |
| CWE (المحدد من CISA) | CWE-644 (التحييد غير السليم لترويسات HTTP لبناء جملة البرمجة النصية) |
| CWE (من الباحث) | CWE-693 (فشل آلية الحماية)، CWE-1021 (التقييد غير السليم لطبقات واجهة المستخدم المعروضة) |
| الباحث | Michael Groberman |
| تاريخ النشر | 2026-07-02 |
| الاكتشاف المنسق | Gr0m-043 (لوحة الإدارة تفتقد جميع ترويسات الأمان) |
| الحقل | القيمة |
|---|---|
| المورّد | Gardyn |
| المنتج | Gardyn Home Kit، Gardyn Studio |
| المكوّن | لوحة الإدارة (admin.gardyn.io, Netlify) |
| الإصدارات المتأثرة | Home Firmware < master.627، Studio Firmware < master.627، Cloud API < 2.12.2026 |
تُقدَّم لوحة الإدارة بدون أي ترويسات أمان بخلاف HSTS — لا توجد Content-Security-Policy، ولا X-Frame-Options، ولا X-Content-Type-Options، ولا Permissions-Policy. وهذا يتيح اختطاف النقر (clickjacking) والبرمجة النصية عبر المواقع (XSS) ضد جلسات الإدارة المُصادَق عليها.
| الترويسة | القيمة |
|---|---|
server | Netlify |
strict-transport-security | max-age=31536000 |
cache-control | no-cache |
مع عدم وجود X-Frame-Options أو frame-ancestors في CSP، يمكن لإطار iframe غير مرئي متراكب فوق جلسة إدارة مُصادَق عليها أن يفعّل إجراءات بصلاحيات عالية عند النقر، مثل PiReboot وDeleteUser وSwitchBannedDevice.
بالاقتران مع نقاط الحقن من جانب العميل المُحدَّدة في Gr0m-028 (22 مثيلًا من dangerouslySetInnerHTML و35 إسنادًا إلى innerHTML)، فإن غياب CSP يعني أن أي حمولة ناجحة تُنفَّذ دون أي قيود، مما يتيح تسريب البيانات وسلوك انتشار الجلسة.
| الجانب | التفاصيل |
|---|---|
| Gr0m-043 | لوحة الإدارة تُقدَّم بلا أي ترويسات أمان بخلاف HSTS؛ يتيح اختطاف النقر + XSS |
| التوفيق بين تصنيفات CWE | صنّف الباحث الثغرة على أنها CWE-693 / CWE-1021؛ وحددت CISA الثغرة على أنها CWE-644. كلاهما يصف حالة الترويسات المفقودة |
| ملاحظة | أكّد البائع لدى CERT/CC معالجة هذه النتيجة في مارس 2026؛ ونشرها كـ CVE من قِبل CISA يُثبتها في السجل الفيدرالي كنتيجة صحيحة ومستقلة |
وفقًا لـ ICSA-26-183-03، تؤكد Gardyn أن البنية التحتية لنظام IoT Hub تم تحديثها لمعالجة الثغرات المدرجة. مجموعة الضوابط الموصى بها (Netlify _headers / netlify.toml):
[[headers]]
for = "/*"
[headers.values]
Content-Security-Policy = "default-src 'self'; script-src 'self'; frame-ancestors 'none';"
X-Frame-Options = "DENY"
X-Content-Type-Options = "nosniff"
Referrer-Policy = "strict-origin-when-cross-origin"
Permissions-Policy = "camera=(), microphone=(), geolocation=()"
الباحث: Michael Groberman (Gr0m) · الحالة: CERT/CC VU#653116 · الإعلان الأمني: ICSA-26-183-03
| الترويسة المفقودة | النتيجة |
|---|
| Content-Security-Policy | لا يوجد تقييد على مصادر السكربت؛ السكربت المُحقَن يُنفَّذ بحرية |
| X-Frame-Options | يمكن تضمين اللوحة داخل iframe يتحكم به المهاجم (اختطاف النقر) |
| X-Content-Type-Options | تخمين نوع MIME (MIME sniffing) |
| Permissions-Policy | الكاميرا / الميكروفون / الموقع الجغرافي غير مقيدة |
| Referrer-Policy | قد يتسرب عنوان URL الكامل (بما في ذلك الرموز المميزة) عبر Referer |
| Cross-Origin-Opener/Resource-Policy | لا توجد عزلية عبر الأصول (cross-origin isolation) |