[{"data":1,"prerenderedAt":226},["ShallowReactive",2],{"seo-verification":3,"blog-ثغرة-openssh-10-6p2-تجاوز-كلمة-المرور-alpine-فحص-ma-ar":6,"promo-bar-likely":20},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-ثغرة-openssh-10-6p2-تجاوز-كلمة-المرور-alpine-فحص-ma-ar",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":20,"publishedAt":21,"updatedAt":22,"category":23,"categories":29,"featuredImage":31,"bgImage":32,"posterImage":33,"relatedSolution":31,"intro":34,"sections":35,"ctaTitle":166,"ctaBody":167,"ctaButton":168,"ctaUrl":169,"relatedPosts":170},570,"ثغرة-openssh-10-6p2-تجاوز-كلمة-المرور-alpine-فحص",{"fr":12,"en":13,"ar":10,"es":14},"openssh-10-6p2-alpine-contournement-mot-de-passe-verifier","openssh-10-6p2-alpine-password-bypass-check-fix","openssh-10-6p2-alpine-omision-contrasena-verificar","OpenSSH 10.6p2: تجاوز كلمة المرور على Alpine","تصحح OpenSSH 10.6p2 تجاوزًا لمصادقة كلمة المرور على Alpine وmusl: افحص تعرضك، وحدّث، وابحث عن الآثار في السجلات، بما فيها الحاويات والصور.",9,0,false,true,"2026-11-06T00:00:00+00:00","2026-11-08T01:13:02+00:00",{"id":24,"name":25,"slug":26,"color":27,"icon":28},8,"الأمان والمراقبة","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[30],{"id":24,"name":25,"slug":26,"color":27,"icon":28},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fopenssh-10-6p2-alpine-contournement-mot-de-passe-verifier-poster.svg","في 5 نوفمبر 2026 صحّحت OpenSSH 10.6p2 ثغرة تجاوز لمصادقة كلمة المرور تمس أنظمة Linux العاملة بـmusl التي يُترجم فيها `sshd` دون PAM، وفي مقدمتها Alpine. تكفي كلمة مرور من 257 إلى 1024 بايت للدخول إلى حساب لا كلمة مرور له، إذا كان في الجهاز حساب آخر له كلمة مرور. أنظمة Debian وUbuntu وAlmaLinux غير معنية. إليك الشروط الخمسة، وإجراء التحقق، والحزم المصحَّحة بحسب فرع Alpine، والآثار التي يجب البحث عنها في السجلات، بما في ذلك داخل حاوياتك وصورك.",[36,40,49,52,85,88,116,147,150,153,156,163],{"type":37,"title":38,"body":39},"h2","ما تقوله OpenSSH وAlpine وما لا تقولانه","نُشرت OpenSSH 10.6p2 في 5 نوفمبر 2026. تعلن ملاحظات الإصدار تصحيح ثغرة تجاوز لمصادقة كلمة المرور يمكن استغلالها عبر `sshd` على بعض أنظمة Linux المترجمة دون PAM. وفي اليوم نفسه نشرت Alpine Linux نشرة تشرح الآلية والشروط والحزم المصحَّحة. أبلغ عن الثغرة Özgün Kültekin من Wakefield.\n\nتوضيحان مفيدان قبل التحرك. أولًا، لم يكن قد أُسند أي معرّف CVE حتى تاريخ نشرة Alpine؛ تذكر بعض المقالات الصحفية معرّفًا، ولا نعتمده لغياب مصدر أولي. ثانيًا، يرى مشرفو OpenSSH أن السبب الجذري يقع خارج `sshd`، وقد التفّوا على المشكلة داخل `sshd`: فالتصحيح إذن في حزمة OpenSSH وليس في مكتبة C. حتى لحظة كتابة هذه السطور، لا نعلم بأي تقرير علني عن استغلال فعلي، لكن التفاصيل التقنية منشورة: افترض أن عمليات مسح ستتبعها.",{"type":41,"title":42,"items":43},"ul","الشروط الخمسة، وكلها لازمة",[44,45,46,47,48],"**مكتبة C من نوع musl** — وهذا حال Alpine، وأنظمة مدمجة أخرى تستخدم musl مثل OpenWrt. أما Debian وUbuntu وFedora وAlmaLinux فتستخدم glibc وليست معنية.","**`sshd` دون PAM** — حزمة `openssh-server` في Alpine مترجمة دون PAM، وكذلك `openssh-server-pam` مع `UsePAM no`. أما مع `UsePAM yes` فأنت غير معني.","**`PasswordAuthentication yes`** — وهي القيمة الافتراضية في OpenSSH. وإن غيّرتها إلى `no` فلا يمكن بلوغ الثغرة.","**حساب قيمة حقل كلمة المرور فيه `*`** — مستخدم أُنشئ دون كلمة مرور للدخول بالمفتاح، أو مستخدم دليل تديره musl-nscd، أو المستخدم `alpine` في صور السحابة الرسمية.","**حساب آخر واحد على الأقل له كلمة مرور فعلية** (تجزئة `$5$` أو `$6$`) — يكفي حساب واحد لكشف جميع الحسابات التي لا كلمة مرور لها.",{"type":37,"title":50,"body":51},"لماذا تكفي كلمة مرور من 257 بايت","دون PAM، يجزّئ `sshd` كلمة المرور المدخلة بالدالة `crypt()` ويقارن الناتج بالحقل المخزَّن في `\u002Fetc\u002Fshadow`. وفي الحسابات التي يكون حقلها أقصر من أن يتسع لملح، يستعير `sshd` ملح حساب آخر حتى لا يكشف زمن الاستجابة أن اسم المستخدم لا كلمة مرور له.\n\nفي musl، تعيد `crypt()` السلسلة `*` كقيمة خطأ حين يتجاوز المفتاح 256 بايت. و`*` هي أيضًا، في `\u002Fetc\u002Fshadow`، قيمة الحساب الذي لا كلمة مرور له. فتنجح المقارنة: يمر الدخول دون أن يخمّن أحد شيئًا. وتحدد نشرة Alpine النافذة القابلة للاستغلال: كلمة مرور من 257 إلى 1024 بايت. ليس هذا عيبًا تشفيريًا ولا تلفًا في الذاكرة، بل خطأ منطقي: قيمة خطأ عُدّت نتيجة.",{"type":53,"title":54,"headers":55,"rows":59},"comparison","من المعني ومن غير المعني",[56,57,58],"الإعداد","هل هو معني؟","السبب",[60,64,68,71,74,77,81],[61,62,63],"Alpine، `openssh-server`، كلمات المرور مفعّلة، حساب بـ`*` وحساب بـ`$6$`","نعم","الشروط الخمسة مجتمعة",[65,66,67],"Alpine، `openssh-server-pam` مع `UsePAM yes`","لا","المصادقة تمر عبر PAM وليس عبر `crypt()` داخل `sshd`",[69,66,70],"Alpine مع `PasswordAuthentication no`","لا تُجرى أي مصادقة بكلمة مرور",[72,66,73],"Debian وUbuntu وAlmaLinux وRocky (glibc)","المقارنة لا تتلقى قيمة الخطأ `*`",[75,66,76],"حاوية Alpine دون `sshd`","لا توجد خدمة SSH لمهاجمتها",[78,79,80],"حساب مقفل بـ`!` بدل `*`","لا بالنسبة لهذا الحساب","`!` لا تطابق قيمة الخطأ",[82,83,84],"صورة سحابة Alpine رسمية، دون أي كلمة مرور محددة","ليس عند أول إقلاع","تعدّها النشرة قابلة للاستغلال بمجرد ظهور تجزئة `$6$`، مثلًا كلمة مرور تُحدَّد من الطرفية",{"type":37,"title":86,"body":87},"«أنا على Debian أو Ubuntu: هل يمسّني هذا؟»","لا، ليس بالنسبة إلى هذه الثغرة: فهي تشترط musl. لكن الاعتراض يستحق الطرح، لأن السؤال المفيد لأي مجموعة خوادم هو في موضع آخر: أين نجد Alpine دون أن نكون قد اخترناه؟ صورة حاوية تضم `sshd` لأغراض الصيانة، أو جهاز شبكي، أو موجّه يعمل بنظام OpenWrt، أو صورة بُنيت بـBuildroot أو Yocto: كلها قد تقوم على musl بحسب طريقة بنائها. وعلى خادم افتراضي بنظام Debian أو Ubuntu، يأتي التعرض من حاوية Alpine فيها `sshd` تشغّلها عليه، لا من النظام المضيف.\n\nيكفي للجرد أمران لكل جهاز: يبيّن `ls \u002Flib\u002Fld-musl*` هل يستخدم النظام musl، ويبيّن `ps aux | grep sshd` هل تعمل خدمة SSH. نفّذهما كذلك داخل حاوياتك، فصورة أُعيد بناؤها العام الماضي قد تضم الحزمة القديمة.",{"type":89,"title":90,"steps":91},"steps","تحقق من تعرضك ثم أصلح",[92,95,98,101,104,107,110,113],{"title":93,"body":94},"تأكد من أن النظام يعمل بـmusl","نفّذ `ls \u002Flib\u002Fld-musl*` أو `ldd --version 2>&1 | head -1`. على Alpine يذكر الجواب musl. وعلى glibc لا شيء يلزم فعله بشأن هذه الثغرة.",{"title":96,"body":97},"اعرف إصدار OpenSSH ونسخة PAM","يعرض `apk info -vv | grep '^openssh'` الحزم المثبّتة. دوّن هل `openssh-server-pam` موجودة، ثم افحص `UsePAM` في `\u002Fetc\u002Fssh\u002Fsshd_config`.",{"title":99,"body":100},"اقرأ الإعداد المطبَّق فعليًا","يعرض `sshd -T | grep -i -E 'passwordauthentication|usepam|permitrootlogin'` القيم الفعلية، بما فيها قيم كتل `Match` والملفات المضمَّنة. وسطر مقروء من الملف لا يغني عن هذا الفحص.",{"title":102,"body":103},"أحصِ الحسابات ذات `*` والحسابات ذات كلمة المرور الفعلية","يعطي `awk -F: '$2==\"*\" {print $1}' \u002Fetc\u002Fshadow` الحسابات التي لا كلمة مرور لها، ويعطي `awk -F: '$2 ~ \u002F^\\$[56]\\$\u002F {print $1}' \u002Fetc\u002Fshadow` الحسابات التي لها تجزئة. إذا لم تكن القائمتان فارغتين فالشرطان 4 و5 متحققان.",{"title":105,"body":106},"حدّث الحزمة","يثبّت `apk upgrade -U -a` الإصدار المصحَّح. نشرت Alpine حزمًا مصحَّحة لجميع فروعها، حتى 3.16، بما فيها الفروع التي لم تعد مدعومة.",{"title":108,"body":109},"أعد تشغيل الخدمة وإلا فلا شيء مُصلَح","نفّذ `rc-service sshd restart`. تحديث الحزمة لا يستبدل الخدمة العاملة: ما دامت لم تُعد تشغيلها فإن الشيفرة القديمة هي التي تجيب. أبقِ جلسة مفتوحة أثناء إعادة التشغيل، واختبر اتصالًا ثانيًا قبل إغلاقها.",{"title":111,"body":112},"تحقق من النتيجة","أعد قراءة `apk info -vv | grep '^openssh'`، ثم `sshd -T | grep -i passwordauthentication`. بعد ذلك افتح اتصالًا بالمفتاح من جهاز آخر للتأكد من أن الوصول يعمل.",{"title":114,"body":115},"أعد بناء الصور","لا تُصلَح صورة حاوية أو صورة جهاز افتراضي في مكانها: أعد بناءها من قاعدة مصحَّحة ثم أعد نشرها. دوّن تاريخ التصحيح في ملف البيئة.",{"type":53,"title":117,"headers":118,"rows":122},"الحزم المصحَّحة بحسب فرع Alpine",[119,120,121],"الفرع","حزمة openssh المصحَّحة","إصدار الفرع",[123,127,131,135,139,143],[124,125,126],"edge","10.6_p2-r0","—",[128,129,130],"3.24","10.3_p1-r2","3.24.4",[132,133,134],"3.23","10.2_p1-r1","3.23.8",[136,137,138],"3.22","10.0_p1-r11","3.22.8",[140,141,142],"3.21","9.9_p2-r1","3.21.10",[144,145,146],"3.20 والأقدم (حتى 3.16)","9.7_p1-r6 (3.20) ؛ 9.0_p1-r6 (3.16)","فروع خارج الدعم",{"type":37,"title":148,"body":149},"ابحث عن آثار قبل أن تستنتج أن كل شيء سليم","التصحيح يزيل الثغرة، لكنه لا يمحو ما فعله مهاجم قبله. توصي نشرة Alpine بالبحث، في `\u002Fvar\u002Flog\u002Fmessages`، عن أسطر `Accepted password for` المتعلقة بحسابات يفترض ألا تكون لها كلمة مرور: `alpine` أو `root` أو مستخدم مخصص للدخول بالمفتاح. سطر كهذا مؤشر قوي، لأن هذه الحسابات لا ينبغي أن تدخل بكلمة مرور أبدًا.\n\nوبالنسبة إلى الحسابات التي تظهر، افحص بعد ذلك استخدام `doas` والمستخدمين المنشأين حديثًا والملفات المعدَّلة ومحتوى كل ملف `authorized_keys`. ولا تترك النشرة شكًا في المسلك الواجب: إذا تعذر استبعاد أي اتصال، فعامل الجهاز على أنه مخترَق، وأعد بناءه، وجدّد الأسرار التي كان يحتويها. وفي صور السحابة الرسمية يكون الخطر أعلى: يملك المستخدم `alpine` فيها `doas` دون كلمة مرور، مما يتيح الحصول على صلاحيات root بعد الدخول.",{"type":151,"body":152},"tip","لا تستطيع التحديث الآن؟ عطّل المصادقة بكلمة المرور، بعد التأكد من أن الاتصال بالمفتاح يعمل، مع إبقاء الجلسة الحالية مفتوحة. تقترح Alpine ملفًا في `\u002Fetc\u002Fssh\u002Fsshd_config.d\u002F` يحتوي `PasswordAuthentication no` (يُقرأ هذا المجلد افتراضيًا منذ الإصدار 3.19)، بشرط ألا يبقى أي سطر `PasswordAuthentication yes` داخل كتلة `Match`. اختم بـ`sshd -t` ثم إعادة تشغيل، ثم `sshd -T | grep -i passwordauthentication` الذي يجب أن يعرض `passwordauthentication no`. وللتراجع، احذف هذا الملف.",{"type":37,"title":154,"body":155},"استكشاف الأخطاء: ما قد تراه عند تطبيق التصحيح","الرسائل التالية صادرة عن OpenSSH؛ تظهر في جهة العميل داخل الطرفية، وفي جهة الخادم داخل سجل الخدمة.",{"type":41,"title":157,"items":158},"الرسائل وعلاجها",[159,160,161,162],"**`Permission denied (publickey).`** — بعد تعطيل كلمات المرور لا يُقبل مفتاحك. أبقِ الجلسة مفتوحة، وافحص `~\u002F.ssh\u002Fauthorized_keys` للحساب (الصلاحيات `600` والمجلد `700`)، ثم أعد قراءة `sshd -T | grep -i pubkeyauthentication`. لا تغلق الجلسة الأصلية قبل أن يكون لديك اتصال ثانٍ يعمل.","**`Bad configuration option`** متبوعة باسم، مع رقم سطر من `\u002Fetc\u002Fssh\u002Fsshd_config` — خطأ في الكتابة داخل الملف أو داخل الملف المضمَّن. يكشفه `sshd -t` قبل إعادة التشغيل: لا تعد التشغيل أبدًا دون هذا الفحص.","**`sshd: no hostkeys available -- exiting.`** — مفاتيح المضيف غائبة، مثلًا في صورة لم تُولَّد فيها. ولّدها بـ`ssh-keygen -A` ثم أعد تشغيل الخدمة.","**ما زالت الخدمة تجيب بالإصدار القديم** — حدّثت الحزمة دون إعادة التشغيل. نفّذ `rc-service sshd restart` ثم أعد قراءة الإصدار المعلن عند الاتصال.",{"type":37,"title":164,"body":165},"ما تقوله هذه الثغرة عن مجموعة خوادمك","لا تنشأ عن ممارسة سيئة لافتة: حساب بلا كلمة مرور، وآخر بكلمة مرور، وقيمة افتراضية. كل من هذه الخيارات شائع، ومزجها على نظام قليل الاستخدام هو ما يصنع التعرض. والجواب الدائم هو نفسه ما قبل الثغرة: على كل خادم يمكن بلوغه من الإنترنت، صادِق بالمفتاح، وعطّل كلمات المرور، واعرف أي الصور وأي الحاويات تضم `sshd`.\n\nإذا كنت قد شددت وصولك من قبل، فهذا التنبيه يُعالج في عشر دقائق لكل جهاز. وإلا فهو فرصة لفعل ذلك: الإجراء الكامل موصوف في دليلنا لأول وصول عبر SSH، وتحديث OpenSSH 10.6 دون قطع الوصول موصوف في المقال المخصص لذلك الإصدار. يمنحك VPS من ServOrbit وصول root واختيار النظام، مما يترك لك التحكم في هذه الإعدادات.","خادم تتحكم في الوصول إليه","على VPS من ServOrbit لديك وصول root واختيار النظام والتحكم في إعداد SSH: مفاتيح، وكلمات مرور معطّلة، وتحديثات بالإيقاع الذي تريده.","اكتشف خوادم VPS","\u002Fvps-cloud",[171,188,207],{"id":172,"slug":173,"slugs":174,"title":178,"excerpt":179,"readTime":180,"views":181,"isPinned":19,"noindex":19,"publishedAt":182,"updatedAt":183,"category":184,"categories":185,"featuredImage":31,"bgImage":32,"posterImage":187,"relatedSolution":31},494,"تحديث-openssh-10-6-أمان-sshd",{"fr":175,"en":176,"ar":173,"es":177},"openssh-10-6-mise-a-jour-securite-sshd","openssh-10-6-security-update-sshd","openssh-10-6-actualizacion-seguridad-sshd","تحديث OpenSSH 10.6: حدّث sshd دون فقدان الوصول","تحديث OpenSSH الأمني 10.6: تحقّق من الإصدار الفعلي النشط، وما قد يتعطّل (ProxyCommand وCompression)، وأعد تحميل sshd دون مخاطرة.",12,2,"2026-10-22T00:00:00+00:00","2026-11-09T20:55:16+00:00",{"id":24,"name":25,"slug":26,"color":27,"icon":28},[186],{"id":24,"name":25,"slug":26,"color":27,"icon":28},"\u002Fblog\u002Fcovers\u002Fopenssh-10-6-mise-a-jour-securite-sshd-poster.svg",{"id":189,"slug":190,"slugs":191,"title":195,"excerpt":196,"readTime":181,"views":197,"isPinned":19,"noindex":20,"publishedAt":198,"updatedAt":199,"category":200,"categories":204,"featuredImage":31,"bgImage":32,"posterImage":206,"relatedSolution":31},452,"أول-اتصال-ssh-بخادم-vps",{"fr":192,"en":193,"ar":190,"es":194},"premier-acces-ssh-vps","first-ssh-login-vps","primer-acceso-ssh-vps","الاتصال بخادم VPS عبر SSH لأول مرة","استرجع كلمة مرور root لخادم VPS بفضل الرابط أحادي الاستخدام المستلم عبر البريد الإلكتروني، ثم اتصل عبر SSH لأول مرة.",1,"2026-10-16T00:00:00+00:00","2026-10-16T01:57:35+00:00",{"id":180,"name":201,"slug":202,"color":203,"icon":202},"أدلة","guides","bg-emerald-500\u002F10 text-emerald-400",[205],{"id":180,"name":201,"slug":202,"color":203,"icon":202},"\u002Fblog\u002Fcovers\u002Fpremier-acces-ssh-vps-poster.svg",{"id":208,"slug":209,"slugs":210,"title":214,"excerpt":215,"readTime":216,"views":197,"isPinned":19,"noindex":19,"publishedAt":217,"updatedAt":218,"category":219,"categories":220,"featuredImage":31,"bgImage":32,"posterImage":222,"relatedSolution":223},109,"fail2ban-enhanced-على-خادم-vps-حجب-الهجمات-المتكررة",{"fr":211,"en":212,"ar":209,"es":213},"proteger-vps-fail2ban","fail2ban-enhanced-on-vps-blocking-repeated-attacks","fail2ban-en-vps-bloquear-ataques-repetidos","Fail2Ban Enhanced على خادم VPS: حجب الهجمات المتكرّرة","اربط Fail2Ban Enhanced بكتالوج ServOrbit: حظر SSH\u002FNginx، وسجلات مقروءة، ووثائق رسمية.",11,"2026-03-03T00:00:00+00:00","2026-11-01T14:14:36+00:00",{"id":24,"name":25,"slug":26,"color":27,"icon":28},[221],{"id":24,"name":25,"slug":26,"color":27,"icon":28},"\u002Fblog\u002Fcovers\u002Fproteger-vps-fail2ban-poster.svg",{"categorySlug":224,"appSlug":225},"securite","fail2ban-enhanced",1794270281684]