CWE چیست؟
CWE مخفف Common Weakness Enumeration است: فهرستی جامعهمحور از انواع ضعف در نرمافزار و سختافزار، که MITRE آن را نگهداری میکند و CISA از آن پشتیبانی مالی میکند. هر مدخل یک شناسه دارد (مثل CWE-79)، بههمراه توصیف، پیامدهای معمول، روشهای تشخیص، نمونههای کد و روابطش با سایر ضعفها.
«ضعف» در این تاکسونومی بهمعنای الگوی اشتباه است، نه یک باگ مشخص در یک محصول. مثلاً «خنثیسازی نادرست ورودی هنگام تولید صفحهی وب» یک ضعف است؛ هر باگ واقعی که از این الگو پیروی کند، نمونهای از آن است.
نسخهی جاری فهرست، CWE 4.20 است که در خبر رسمی سایت MITRE با تاریخ ۳۰ آوریل ۲۰۲۶ اعلام شده. توجه کنید که برخی صفحات داده در همان سایت پانویس تاریخ قدیمیتری نشان میدهند؛ عدد نسخه و تاریخ اعلام، مرجع قابل اتکاست.
تفاوت CWE با CVE: کلاس در برابر نمونه
| CWE | CVE | |
|---|---|---|
| چه چیزی را نام میگذارد | نوع ضعف | نمونهی مشخص در یک محصول |
| وابسته به محصول | نه | بله |
| وابسته به نسخه | نه | بله |
| حاوی شدت | نه | نه (شدت با CVSS) |
| مثال | CWE-89 — تزریق SQL | یک CVE مشخص در یک افزونهی مشخص |
دو اشتباه پرتکرار: «CWE و CVE یکی هستند» و «شمارهی CWE شدت را نشان میدهد». هیچکدام درست نیست. CWE کلاس ضعف است و CVE نمونه؛ یک CWE واحد میتواند به هزاران CVE نگاشت شود (مثلاً CWE-79 با بیش از ۳۰٬۰۰۰ CVE). و CWE هیچ سنجهی شدتی ندارد — امتیاز شدت با CVSS بیان میشود. امتیازهایی که در فهرست CWE Top 25 میبینید هم رتبهبندی پژوهشی بر پایهی فراوانی و شدت در یک بازهی زمانیاند، نه شدت یافتهی شما.
سلسلهمراتب و نمایها
CWE یک فهرست تخت نیست؛ ساختاری با سطوح انتزاع دارد که از کلی به جزئی میرود:
- Pillar — بالاترین سطح انتزاع، بسیار کلی.
- Class — ضعفی که مستقل از زبان یا فناوری توصیف میشود.
- Base — سطحی که برای کار عملی مناسبترین است: مشخص، قابل تشخیص و قابل رفع.
- Variant — وابسته به یک فناوری، زبان یا زمینهی خاص.
در کنار اینها، مدخلهای Category (گروهبندی موضوعی) و ضعفهای Compound (ترکیبی) هم وجود دارند. علاوه بر ساختار سلسلهمراتبی، CWE مفهوم View را دارد: زیرمجموعههای سازمانیافتهای که برای یک مخاطب یا هدف خاص انتخاب شدهاند — و شناختهشدهترین نمای آن، همان فهرست CWE Top 25 است.
قاعدهی عملی برای گزارشنویسی: تا حد امکان از سطح Base استفاده کنید. اختصاص یک شناسهی خیلی کلی (سطح Class یا Pillar) به یک یافته، اطلاعات را از بین میبرد و تیم توسعه نمیفهمد چه چیزی را باید تغییر دهد. همین مسئله در روششناسی MITRE هم مشکل شناختهشدهای است — در فهرست ۲۰۲۵، حدود ۲۴٪ رکوردهای CVE بررسیشده بهدلیل نگاشت بیشازحد کلی یا نامنطبق، نیازمند بازنگاشت علامت خوردند.
فهرست CWE Top 25 نسخهی ۲۰۲۵
آخرین نسخهی این فهرست، 2025 CWE Top 25 Most Dangerous Software Weaknesses است که در ۱۵ دسامبر ۲۰۲۵ منتشر شد. مجموعهدادهی آن ۳۹٬۰۸۰ رکورد CVE منتشرشده بین ۱ ژوئن ۲۰۲۴ و ۱ ژوئن ۲۰۲۵ است و امتیازدهی، ترکیبی از فراوانی × شدت است — به بیان خود MITRE: «ضعفهایی که هم رایجاند و هم آسیب چشمگیری ایجاد کردهاند بالاترین امتیاز را میگیرند». نکتهی مهم برای دقت فنی: شدت در این محاسبه منحصراً از امتیازهای پایهی CVSS v3.0/3.1 گرفته شده، نه نسخهی ۴٫۰.
ده مدخل نخست:
| رتبه | CWE | نام | امتیاز |
|---|---|---|---|
| ۱ | CWE-79 | Cross-site Scripting | 60.38 |
| ۲ | CWE-89 | SQL Injection | 28.72 |
| ۳ | CWE-352 | Cross-Site Request Forgery | 13.64 |
| ۴ | CWE-862 | Missing Authorization | 13.28 |
| ۵ | CWE-787 | Out-of-bounds Write | 12.68 |
| ۶ | CWE-22 | Path Traversal | 8.99 |
| ۷ | CWE-416 | Use After Free | 8.47 |
| ۸ | CWE-125 | Out-of-bounds Read | 7.88 |
| ۹ | CWE-78 | OS Command Injection | 7.85 |
| ۱۰ | CWE-94 | Code Injection | 7.57 |
نکتهای که برای یک تیم امنیت وب گفتنی است: هشت مورد از ده مدخل نخست، ضعفهای مستقیم برنامههای وب هستند و چهار مدخل اول همه یافتههای کلاسیک آزمون وباند. در رتبههای ۱۱ تا ۲۵ هم مواردی مثل CWE-434 (آپلود فایل با نوع خطرناک)، CWE-502 (deserialization دادهی غیرقابلاعتماد)، CWE-918 (SSRF) و CWE-639 (دور زدن مجوزدهی با کلید تحت کنترل کاربر — الگوی IDOR) قرار دارند.
دو فهرست همراه هم منتشر شده است: «2025 CWE Top 25 Weaknesses On the Cusp» با تاریخ ۲۹ ژانویه ۲۰۲۶، و «2025 CWE Top 10 KEV Weaknesses». هنگام ارجاع، به آدرس بایگانی نسخهی ۲۰۲۵ لینک دهید؛ صفحهی عمومی /top25/ در برخی نمایشها محتوای قدیمیتری نشان میدهد.
CWE در گزارش تست نفوذ و نگاشت OWASP
دستههای OWASP Top 10 روی CWE ساخته شدهاند، نه برعکس. در نسخهی ۲۰۲۵، از میان ۶۴۳ CWE یکتا که به CVE نگاشت شده بودند (در برابر ۲۴۱ مورد در ۲۰۲۱)، ۲۴۸ CWE در ده دستهی نهایی توزیع شدهاند. چند نمونه:
- A01:2025 کنترل دسترسی شکسته — ۴۰ CWE، از جمله
CWE-862(مجوزدهی غایب)،CWE-285،CWE-918(SSRF) وCWE-352(CSRF). - A05:2025 تزریق — ۳۷ CWE، از جمله
CWE-79،CWE-89وCWE-78. - A02:2025 پیکربندی نادرست — ۱۶ CWE، از جمله
CWE-611که XXE را پوشش میدهد.
نگاشتها همیشه بین مراجع همراستا نیستند. مثال روشن: SSRF در Top 10:2025 زیر A01 قرار دارد، اما در راهنمای آزمون WSTG همچنان یکی از آزمونهای اعتبارسنجی ورودی است. در گزارش، هر دو ارجاع را بدهید و ادعا نکنید که این دو تاکسونومی یکی هستند.
در عمل، هر یافته در یک گزارش حرفهای این چهار عنصر را دارد: شناسهی CWE (نوع ضعف)، دستهی OWASP Top 10:2025 (ردهبندی ریسک)، امتیاز CVSS با ذکر نسخه، و یک PoC قابل تکرار. ساختار کامل در گزارش تست نفوذ و پوشش آزمون در متدولوژی تست نفوذ شرح داده شده است.
پرسشهای متداول
تفاوت CWE و CVE به زبان ساده چیست؟
CWE میگوید چه نوع اشتباهی رخ داده (مثلاً تزریق SQL) و CVE میگوید کدام نمونهی مشخص در کدام محصول و نسخه. یک CWE میتواند به هزاران CVE نگاشت شود. در گزارش تست نفوذ، یافتههای کد اختصاصی CWE دارند اما CVE ندارند.
آخرین نسخهی CWE کدام است؟
CWE 4.20، که در خبر رسمی سایت MITRE با تاریخ ۳۰ آوریل ۲۰۲۶ اعلام شده است. برخی صفحات داده در همان سایت پانویس تاریخ قدیمیتری دارند؛ عدد نسخه و تاریخ اعلام مرجع قابل اتکاست و تعداد کل ضعفها را باید از یادداشت انتشار جاری گرفت.
آخرین فهرست CWE Top 25 مربوط به چه سالی است؟
نسخهی ۲۰۲۵، منتشرشده در ۱۵ دسامبر ۲۰۲۵، بر پایهی ۳۹٬۰۸۰ رکورد CVE از ۱ ژوئن ۲۰۲۴ تا ۱ ژوئن ۲۰۲۵. صدر فهرست CWE-79 (XSS) با امتیاز 60.38 و پس از آن CWE-89 (تزریق SQL) با 28.72 است.
چرا شناسهی CWE در گزارش تست نفوذ اهمیت دارد؟
چون یافته را به یک تاکسونومی استاندارد وصل میکند: تیم توسعه میتواند مرجع فنی و راهنمای رفع را پیدا کند، سازمان میتواند الگوهای تکرارشونده را در چند گزارش ردیابی کند، و گزارشهای پیمانکاران مختلف قابل مقایسه میشوند.