
CVE-2026-56164 هي ثغرة أمنية حرجة تتعلق بغياب المصادقة، وتؤثر على Microsoft SharePoint Server المُثبَّت محليًا (On-Premises). تتيح للمهاجمين عن بُعد غير المصادَق عليهم رفع الامتيازات عبر الشبكة.
حرجة (CVSS 9.8) — تصعيد امتيازات بدون مصادقة إلى مسؤول مزرعة الخوادم في Microsoft SharePoint Server
تمثل CVE-2026-56164 ثغرة حرجة تتمثل في غياب المصادقة في Microsoft SharePoint Server، وتسمح لمهاجم عن بُعد غير مصادَق برفع صلاحياته إلى مستوى مسؤول مزرعة الخوادم (Farm Administrator). تكمن الثغرة في تجميع Microsoft.Office.Server.UserProfiles الذي يعالج طلبات SOAP على المسار /_vti_bin/client.svc/ProcessQuery.
من خلال حذف ترويسة X-RequestDigest عمدًا وتزويد الطلب بترويسات توجيه محددة، يتراجع الخادم المتأثر إلى سياق أمني مرفوع الصلاحيات بدلاً من رفض الطلب غير المصادَق. يتيح ذلك للمهاجمين المجهولين تعداد مجموعات المواقع والمستخدمين وإعدادات المزرعة، وإضافة مسؤولين، وتنفيذ أوامر.
CISA KEV: هذه الثغرة مُدرجة في كتالوج الثغرات المستغلة المعروفة لدى CISA بسبب استغلال نشط في البيئات الحقيقية.
| الحقل | القيمة |
|---|---|
| معرف CVE | CVE-2026-56164 |
| الخطورة | حرجة |
| CVSS 3.1 | 9.8 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) |
| CWE | CWE-306: غياب المصادقة لوظيفة حرجة |
| الأثر | رفع صلاحيات غير مصادَق إلى مسؤول مزرعة الخوادم |
| حالة الاستغلال | استغلال نشط (CISA KEV) |
| MITRE ATT&CK | T1190 (استغلال تطبيق مواجه للعام) |
يعالج مُعالِج Microsoft.Office.Server.UserProfiles طلبات SOAP على المسار /_vti_bin/client.svc/ProcessQuery. في ظل الظروف العادية، يتحقق SharePoint من ترويسة X-RequestDigest لتأكيد سياق المصادقة. ومع ذلك، يوجد تجاوز في التحقق:
X-RequestDigest غائبة ووُجدت ترويسات توجيه محددة// Vulnerable: If digest is missing, handler checks routing headers
if (string.IsNullOrEmpty(digest) && CheckSpecialRoutingHeaders(context)) {
// Bypasses standard identity validation → elevated admin session
InitializeElevatedSecurityContext(context);
} else {
ValidateRequestDigest(digest); // Normal path
}
// Patched: Digest validation is unconditional
if (string.IsNullOrEmpty(digest)) {
context.Response.StatusCode = 401;
throw new UnauthorizedAccessException("Missing request digest.");
}
ValidateRequestDigest(digest);
InitializeStandardSecurityContext(context);
| المنتج | الإصدارات المتأثرة | الإصدار المُصحَّح |
|---|---|---|
| SharePoint Enterprise Server 2016 | جميع إصدارات 16.0.x قبل التحديث | 16.0.5561.1001 |
| SharePoint Server 2019 | جميع إصدارات 16.0.x قبل التحديث | 16.0.10417.20175 |
| SharePoint Server Subscription Edition | جميع إصدارات 16.0.x قبل التحديث | 16.0.19725.20434 |
غير متأثر: SharePoint Online (Microsoft 365)
┌─────────────────────────────────────────────────────────────────────┐
│ CVE-2026-56164 Exploit Toolkit │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ┌────────────┐ ┌─────────────────┐ ┌────────────────────┐ │
│ │ scan.py │────▶│ HTTP Fingerprint│ │ payload_gen.py │ │
│ │ Scanner │ │ + Version Check │ │ │ │
│ └────────────┘ └─────────────────┘ │ ┌──────────────┐ │ │
│ │ │ │ CSOM Payloads│ │ │
│ │ Reports: │ │ (detection, │ │ │
│ │ • SharePoint detected? │ │ enum, │ │ │
│ │ • Server version │ │ elevate, │ │ │
│ │ • Vulnerable? │ │ execute) │ │ │
│ │ • Auth bypass confirmed? │ └──────────────┘ │ │
│ ▼ │ ┌──────────────┐ │ │
│ ┌────────────┐ ┌─────────────────┐ │ │ SOAP Payloads│ │ │
│ │ exploit.py │────▶│ HTTP Request │ │ │ (admin, exec)│ │ │
│ │ Exploit │ │ Delivery │ │ └──────────────┘ │ │
│ └────────────┘ └─────────────────┘ │ ┌──────────────┐ │ │
│ │ │ │ Bypass │ │ │
│ │ ┌──────────────────────┐ │ │ Headers │ │ │
│ ├─▶│ MODE: detect │ │ │ (routing) │ │ │
│ │ │ Safe, non-intrusive │ │ └──────────────┘ │ │
│ │ └──────────────────────┘ │ ┌──────────────┐ │ │
│ │ ┌──────────────────────┐ │ │ HTTP Request │ │ │
│ ├─▶│ MODE: enumerate │ │ │ Builder │ │ │
│ │ │ Sites, users, config │ │ └──────────────┘ │ │
│ │ └──────────────────────┘ └────────────────────┘ │
│ │ ┌──────────────────────┐ │
│ ├─▶│ MODE: elevate │ ┌──────────────────────┐ │
│ │ │ Add site/farm admin │ │ Target SharePoint │ │
│ │ └──────────────────────┘ │ /_vti_bin/client.svc │ │
│ │ ┌──────────────────────┐ │ /_vti_bin/SPAdmin │ │
│ └─▶│ MODE: execute │ └──────────────────────┘ │
│ │ System commands │ │
│ └──────────────────────┘ │
│ │ ┌──────────────────────┐ │
│ └─▶│ MODE: full │ detect→enum→elevate→execute │
│ └──────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
┌─────────────┐
│ Start Scan │
└──────┬──────┘
│
▼
┌──────────────────┐ No ┌─────────────┐
│ Target reachable?│──────────▶│ Skip │
└──────┬───────────┘ └─────────────┘
│ Yes
▼
┌──────────────────┐
│ Send HTTP GET │
│ to common ports │
│ (443,80,8080, │
│ 8443) │
└──────┬───────────┘
│
▼
┌──────────────────┐ No ┌─────────────┐
│ SharePoint │──────────▶│ Not SP │
│ fingerprint? │ └─────────────┘
│ (MSST header, │
│ _vti_bin, │
│ suitebar, etc.) │
└──────┬───────────┘
│ Yes
▼
┌──────────────────┐
│ Extract version │
│ from MSST header │
│ / response body │
└──────┬───────────┘
│
▼
┌──────────────────┐ No ┌─────────────┐
│ Version in │──────────▶│ Not │
│ vulnerable │ │ vulnerable │
│ range? │ └─────────────┘
└──────┬───────────┘
│ Yes
▼
┌──────────────────┐
│ Test auth bypass │
│ (CSOM req w/o │
│ digest + bypass │
│ headers) │
└──────┬───────────┘
│
▼
┌──────────────────┐
│ Report: │
│ • VULNERABLE │
│ • Version │
│ • Bypass status │
│ • SSL cert info │
└──────────────────┘