CORE · مفاهیم طبقه‌بندی

CWE — دسته‌بندی ضعف‌های نرم‌افزاری

Common Weakness Enumeration

CWE یک تاکسونومی جامعه‌محور از انواع ضعف‌های نرم‌افزاری و سخت‌افزاری است که MITRE آن را نگهداری می‌کند؛ برخلاف CVE که یک نمونه‌ی مشخص را نام‌گذاری می‌کند، CWE کلاس ضعف را توصیف می‌کند.

تیم فنی پی‌هانتر

CWE چیست؟

CWE مخفف Common Weakness Enumeration است: فهرستی جامعه‌محور از انواع ضعف در نرم‌افزار و سخت‌افزار، که MITRE آن را نگهداری می‌کند و CISA از آن پشتیبانی مالی می‌کند. هر مدخل یک شناسه دارد (مثل CWE-79)، به‌همراه توصیف، پیامدهای معمول، روش‌های تشخیص، نمونه‌های کد و روابطش با سایر ضعف‌ها.

«ضعف» در این تاکسونومی به‌معنای الگوی اشتباه است، نه یک باگ مشخص در یک محصول. مثلاً «خنثی‌سازی نادرست ورودی هنگام تولید صفحه‌ی وب» یک ضعف است؛ هر باگ واقعی که از این الگو پیروی کند، نمونه‌ای از آن است.

نسخه‌ی جاری فهرست، CWE 4.20 است که در خبر رسمی سایت MITRE با تاریخ ۳۰ آوریل ۲۰۲۶ اعلام شده. توجه کنید که برخی صفحات داده در همان سایت پانویس تاریخ قدیمی‌تری نشان می‌دهند؛ عدد نسخه و تاریخ اعلام، مرجع قابل اتکاست.

تفاوت CWE با CVE: کلاس در برابر نمونه

CWECVE
چه چیزی را نام می‌گذاردنوع ضعفنمونه‌ی مشخص در یک محصول
وابسته به محصولنهبله
وابسته به نسخهنهبله
حاوی شدتنهنه (شدت با 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-79Cross-site Scripting60.38
۲CWE-89SQL Injection28.72
۳CWE-352Cross-Site Request Forgery13.64
۴CWE-862Missing Authorization13.28
۵CWE-787Out-of-bounds Write12.68
۶CWE-22Path Traversal8.99
۷CWE-416Use After Free8.47
۸CWE-125Out-of-bounds Read7.88
۹CWE-78OS Command Injection7.85
۱۰CWE-94Code Injection7.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 در گزارش تست نفوذ اهمیت دارد؟

چون یافته را به یک تاکسونومی استاندارد وصل می‌کند: تیم توسعه می‌تواند مرجع فنی و راهنمای رفع را پیدا کند، سازمان می‌تواند الگوهای تکرارشونده را در چند گزارش ردیابی کند، و گزارش‌های پیمانکاران مختلف قابل مقایسه می‌شوند.

کاربرد عملی

برای استفاده‌ی درست از CWE:

  • سطح Base را انتخاب کنید. شناسه‌ی خیلی کلی، اطلاعات را از بین می‌برد و تیم توسعه را سردرگم می‌کند.
  • در هر یافته، CWE را در کنار دسته‌ی OWASP و امتیاز CVSS بنویسید؛ این سه جای هم را نمی‌گیرند.
  • برای پایش روند سازمانی، CWEهای تکرارشونده در چند گزارش را شناسایی کنید — الگوی تکراری یعنی مشکل آموزش یا معماری، نه یک باگ.
  • همان CWEها را به قواعد بازبینی کد و آزمون‌های خودکار تبدیل کنید تا بازنگردند.
  • هنگام ارجاع به Top 25، به آدرس بایگانی نسخه‌ی ۲۰۲۵ لینک دهید و اشاره کنید که امتیازدهی آن بر پایه‌ی CVSS v3.0/3.1 است.
  • امتیاز Top 25 را به‌عنوان شدت یافته‌ی خود نقل نکنید؛ آن یک رتبه‌بندی پژوهشی است.

واژه‌های مرتبط

→ بازگشت به دانشنامه
PUT IT TO THE TEST

امنیت سامانه‌ی شما را
به مهاجمان واگذار نکنید

تیم پی‌هانتر با دیدِ یک مهاجم واقعی، این آسیب‌پذیری‌ها و ده‌ها مورد دیگر را روی دارایی‌های شما می‌سنجد.