لیست آسیب‌‌پذیری‌های کشف شده در OpenSSL در سال ۲۰۱۶

OpenSSL

۱  آسیب‌پذیری CVE-2016-7054 (شدت بالا)

ارتباطات TLS ای که از دنباله‌های رمز CHACHA20-POLY1305 استفاده می‌کنند نسبت به حمله DoS از طریق خراب کردن ظرفیت‌های بیشتر(۱) آسیب‌پذیر هستند. این امر می‌تواند منجر به crash کردن OpenSSL شود. این مشکل قابل بهره‌برداری در خارج از محدود حمله DoS در نظر گرفته نمی‌شود. این آسیب‌پذیری در تاریخ ۲۵ سپتامبر ۲۰۱۶ توسط یکی از اعضای تیم امنیتی گوگل به نام Robert Święcki گزارش شده است.

  • این مشکل در OpenSSL 1.0c بر طرف شده است؛ اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۱٫۰b, 1.1.0a, 1.1.0

۲  آسیب‌پذیری CVE-2016-7053  (شدت متوسط)

برنامه‌هایی که ساختارهای CMS نامعتبر را تجزیه می‌کنند، می‌توانند از طریق ارجاع مجدد شاخص NULL(2) دچار crash شوند. این موضوع به علت وجود اشکال در اداره کردن نوع انتخاب ASN.1 در OpenSSL نسخه ۱٫۱٫۰ رخ می‌دهد. فقط ساختارهای انتخابی که از یک تماس متقابل که یک مقدار NULL را اداره نمی‌کند، استفاده می‌کنند نسبت به این آسیب‌پذیری حساس هستند. این آسیب‌پذیری توسط Tyler Nighswander از شرکت ForAllSecure در تاریخ ۱۲ اکتبر ۲۰۱۶ گزارش شد.

  • این مشکل در OpenSSL 1.0c بر طرف شده است؛ اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۱٫۰b, 1.1.0a, 1.1.0

۳  آسیب‌پذیری CVE-2016-7055 (شدت پایین)

یک اشکال carry propagating در طرز عملکرد Broadwell-specific Montgomery multiplication وجود دارد که طول‌های ورودی بیش از ۲۵۶ بیت را بخش‌پذیر می‌کند. آنالیزورها می‌گویند که حملات علیه کلیدهای خصوصی RSA، DAS و DH غیرممکن است. این به این خاطر است کهsubroutine  داخل درخواست در عملکردها توسط خود کلیدهای خصوصی استفاده نمی‌شود. در میان الگوریتم‌های EC فقط منحنی‌های Brainpool P-512 آسیب‌پذیر هستند و مهاجم احتمالا می‌تواند به مذاکره(۳) کلید ECDH حمله کند. تأثیر این آسیب‌پذیری به طور کامل آنالیز نشده است، چراکه پیش‌نیاز‌های این حمله به احتمال زیاد فراهم نمی‌شود. به عبارت دیگر، کاربران متعددی باید این منحنی را در یک درخواست انتخاب کنند و سرور باید کلید خصوصی را مابین آن‌ها به اشتراک گذارد و هیچ‌کدام از این مراحل به صورت پیش فرض رخ نمی‌دهد. حتی پس از آن، فقط کاربرانی که این منحنی را انتخاب کردند تحت تأثیر قرار می‌گیرند.

  • این مشکل در OpenSSL 1.1.0c بر طرف شده است؛ اما  نسخه‌های زیر آسیب‌پذیرند:

۱٫۱٫۰b, 1.1.0a, 1.1.0

۴  آسیب‌پذیری CVE-2016-6309 (شدت بسیار بالا)

این آسیب‌پذیری فقط بر روی OpenSSL نسخه ۱٫۱٫۰a که در تاریخ ۲۲ سپتامبر ۲۰۱۶ منتشر شده است، تأثیرگذار است. وصله‌ای که برای آسیب‌پذیری CVE-2016-6307 منتشر شده بود، دارای اشکالی بود که اگر یک پیام بزرگتر از تقریبا ۱۶k دریافت شود، درنتیجه بافر زمینه برای ذخیره پیام دریافتی مجددا اختصاص داده شده و جابجا می‌شود. متأسفانه شاخص متصل به مکان قدیمی باقی مانده بود، که منجر به تلاشی برای نوشته شدن در مکان آزاد شده گذشته، می‌شد. این امر احتمالا باعث crash شدن می‌شود، اگرچه پتانسیل این را دارد که منجر به اجرای یک کد دلخواه شود. این آسیب‌پذیری در تاریخ ۲۳ سپتامبر ۲۰۱۶ توسط یکی از اعضای تیم امنیتی گوگل به نام Robert Święcki گزارش شده است.

  • این مشکل در OpenSSL 1.0b بر طرف شده است؛ اما نسخه‌ زیر آسیب‌پذیر است:

۱٫۱٫۰a

۵  آسیب‌پذیری CVE-2016-7052 (شدت متوسط)

این آسیب‌پذیری فقط بر روی OpenSSL 1.0.2i تأثیرگذار است که در تاریخ ۲۲ سپتامبر ۲۰۱۶ منتشر شده است. یک رفع اشکال که شامل بررسی CRL sanity می‌شد به OpenSSL 1.1.0 اضافه شده بود اما از OpenSSL 1.1.0 حذف شده بود. در نتیجه هر تلاشی برای استفاده از CRL ها در OpenSSL 1.0.2i توسط یک null pointer exception منجر به crash می‌شد. این آسیب‌پذیری در تاریخ ۲۳ سپتامبر ۲۰۱۶ و توسط Bruce Stephens و Thomas Jakobi گزارش شده است.

  • این مشکل در OpenSSL 1.0j بر طرف شده است؛ اما نسخه‌ زیر آسیب‌پذیر است:

۱٫۱٫۰i

۶  آسیب‌پذیری CVE-2016-6304 (شدت بالا)

یک کاربر بدذات می‌تواند یک ضمیه OCSP درخواست وضعیت(۴) بسیار بزرگ ارسال کند. اگر این کاربر به طور مداوم مذاکره مجدد را درخواست دهد و در هر بار یک ضمیه OCSP درخواست وضعیت بسیار بزرگ ارسال کند، درنتیجه یک رشد حافظه نامحدود بر روی سرور به وجود می‌آید. این امر در نهایت منجر به حمله DoS از طریق فرسودگی حافظه(۵) می‌شود. سرورهایی که دارای تنظیمات پیش‌فرض هستند نسبت به این اشکال آسیب‌پذیر هستند، حتی اگرکه از OCSP پشتیبانی نکنند. ساختارهایی که از گزینه “no-ocsp” build time استفاده می‌کنند، نسبت به این آسیب‌پذیری حساس نیستند. سرورهایی که از نسخه‌های OpenSSL جدیدتر از ۱٫۰٫۱g استفاده می‌کنند حتی با داشتن تنظیمات پیش‌فرض، نسبت به این آسیب‌پذیری حساس نیستند، مگر اینکه یک برنامه صریحا OCSP stapling support را فعال کند. این آسیب‌پذیری توسط یکی از اعضای تیم Gear  در شرکت Qihoo 360 به نام  Shi Leiدر تاریخ ۲۹ آگوست ۲۰۱۶ گزارش شده است.

  • این مشکل در OpenSSL 0.1u بر طرف شده است؛ اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۱t, 1.0.1s, 1.0.1r, 1.0.1q, 1.0.1p, 1.0.1o, 1.0.1n, 1.0.1m, 1.0.1l, 1.0.1k, 1.0.1j, 1.0.1i, 1.0.1h, 1.0.1g, 1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1

  • این مشکل در OpenSSL 0.2iبر طرف شده است؛ اما  نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۲h, 1.0.2g, 1.0.2f, 1.0.2e, 1.0.2d, 1.0.2c, 1.0.2b, 1.0.2a, 1.0.2

  • این مشکل در OpenSSL 1.0a بر طرف شده است؛ اما نسخه‌ زیر آسیب‌پذیر است:

 ۱٫۱٫۰

۷  آسیب‌پذیری CVE-2016-6305 (شدت متوسط)

OpenSSL 1.1.0 SSL/TLS در هنگام فرخوانی SSL_peek() اگر که کاربر رکورد خالی ارسال کند، hang می‌کند. این امر می‌تواند توسط یک کاربر بذدات در یک حمله DoS مورد بهره‌برداری قرار گیرد. این آسیب‌پذیری در تاریخ ۱۰ سپتامبر ۲۰۱۶ توسط Alex Gaynor گزارش شده است.

  • این مشکل در OpenSSL 1.0a بر طرف شده است؛ اما نسخه‌ زیر آسیب‌پذیر است:

 ۱٫۱٫۰

۸  آسیب‌پذیری CVE-2016-6306 (شدت پایین)

در OpenSSL 1.0.2 و نسخه‌هایی که قبل از آن آمدند، بعضی بررسی‌های طول پیام از دست رفته می‌تواند منجر به این شود که OOB 2 بایت بیش از بافر اختصاص داده شده به آن بخواند. در اینجا یک خطر حمله DoS از نظر تئوری وجود دارد اما در عمل و بر روی پلتفرم‌های رایج مشاهده نشده است. این پیام‌های تحت تأثیر قرار گرفته، شامل گواهی‌نامه مشتری، درخواست گواهی‌نامه مشتری و گواهی‌نامه سرور هستند. در نهایت، این حمله تنها می‌تواند علیه یک کاربر یا یک سرور که گزینه احراز هویت کاربر را فعال کردند، انجام شود. این آسیب‌پذیری توسط یکی از اعضای تیم Gear  در شرکت Qihoo 360 به نام  Shi Leiدر تاریخ ۲۲ آگوست ۲۰۱۶ گزارش شده است.

  • این مشکل در OpenSSL 0.1u بر طرف شده است؛ اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۱t, 1.0.1s, 1.0.1r, 1.0.1q, 1.0.1p, 1.0.1o, 1.0.1n, 1.0.1m, 1.0.1l, 1.0.1k, 1.0.1j, 1.0.1i, 1.0.1h, 1.0.1g, 1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1

  • این مشکل در OpenSSL 0.2iبر طرف شده است؛ اما  نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۲h, 1.0.2g, 1.0.2f, 1.0.2e, 1.0.2d, 1.0.2c, 1.0.2b, 1.0.2a, 1.0.2

۹  آسیب‌پذیری CVE-2016-6307 (شدت پایین)

یک پیام TLS شامل ۳ بایت برای طول خود در سرآیندِ(۶) پیام است. این امر به پیام‌ها اجازه می‌دهد تا طولی برابر ۱۶ مگابایت داشته باشند. پیام‌هایی با این طول، بیش از اندازه هستند و OpenSSL یک بررسی انجام می‌دهد تا اطمینان حاصل کند که یک کاربر پیامی با اندازه منطقی ارسال کند به جهت اینکه میزان زیادی حافظه برای برقراری یک ارتباط مصرف نشود. یک اشکال در نسخه ۱٫۱٫۰ بدین معنی است که حافظه برای پیام خیلی زود اختصاص داده شده است و حتی قبل از بررسی بیش از اندازه بودن طول پیام. با توجه به روشی که حافظه در OpenSSL اختصاص داده می‌شود، این می‌تواند بدان معنی باشد که یک مهاجم می‌تواند ۲۱ مگابایت را برای برقراری یک ارتباط اختصاص دهد. این امر می‌تواند منجر به یک حمله DoS از طریق فرسودگی حافظه شود. با این حال، بررسی زیاد بودن طول پیام انجام شده و این امر منجر به قطع شدن ارتباط می‌شود. با فرض اینکه این برنامه SSl_free() را در موقع قطع شدن ارتباط فراخوانی می‌کند، درنتیجه ۲۱ مگابایت حافظه اختصاص داده شده مجددا بلافاصله خالی می‌شود. بنابراین، در حالت طبیعی اختصاص دادن حافظه بیش از حد، زودگذر خواهد بود. این بدان معنی خواهد بود که فقط در صورتی مشکل امنیتی ایجاد می‌شود که: ۱) برنامه SSL_free() را در هنگام قطع شدن ارتباط به موقع فراخوانی نکند یا ۲) برنامه در یک محیط محدود شده کار کند که در این محیط مقدار حافظه آزاد خیلی کم باشد یا ۳) مهاجم، چندین تلاش برای ایجاد ارتباط را راه‌اندازی کند به طوری که چندین ارتباط در یک حالت وجود دارد که حافظه برای آن اختصاص داده شده است؛در این حالت SSL_free() هنوز فراخوانده نشده است و میزان کافی حافظه برای سرویس دادن به چندین درخواست وجود ندارد. به جز حالت شماره ۱، هرگونه حمله DoS ای پایدار نخواهد بود چراکه به محض قطع شدن ارتباط، حافظه متعاقبا با درخواست SSL_free() آزاد خواهد شد. با این حال، احتمال crash کردن برنامه به علت فقدان حافظه وجود دارد که درنتیجه منجر به حملات جدی‌تر DoS خواهد شد. این آسیب‌پذیری توسط یکی از اعضای تیم Gear  در شرکت Qihoo 360 به نام  Shi Leiدر تاریخ ۱۸ آگوست ۲۰۱۶ گزارش شده است.

  • این مشکل در OpenSSL 1.0a بر طرف شده است؛ اما نسخه‌ زیر آسیب‌پذیر است:

 ۱٫۱٫۰

۱۰  آسیب‌پذیری CVE-2016-6308 (شدت پایین)

یک پیام DTLS شامل ۳ بایت برای طول خود در سرآیندِ پیام است. این امر به پیام‌ها اجازه می‌دهد تا طولی برابر ۱۶ مگابایت داشته باشند. پیام‌هایی با این طول، بیش از اندازه هستند و OpenSSL یک بررسی انجام می‌دهد تا اطمینان حاصل کند که یک کاربر پیامی با اندازه منطقی ارسال کند به جهت اینکه میزان زیادی حافظه برای برقراری یک ارتباط مصرف نشود. یک اشکال در نسخه ۱٫۱٫۰ بدین معنی است که حافظه برای پیام خیلی زود اختصاص داده شده است و حتی قبل از بررسی بیش از اندازه بودن طول پیام. با توجه به روشی که حافظه در OpenSSL اختصاص داده می‌شود، این می‌تواند بدان معنی باشد که یک مهاجم می‌تواند ۲۱ مگابایت را برای برقراری یک ارتباط اختصاص دهد. این امر می‌تواند منجر به یک حمله DoS از طریق فرسودگی حافظه شود. با این حال، بررسی زیاد بودن طول پیام انجام شده و این امر منجر به قطع شدن ارتباط می‌شود. با فرض اینکه این برنامه SSl_free() را در موقع قطع شدن ارتباط فراخوانی می‌کند، درنتیجه ۲۱ مگابایت حافظه اختصاص داده شده مجددا بلافاصله خالی می‌شود. بنابراین، در حالت طبیعی اختصاص دادن حافظه بیش از حد، زودگذر خواهد بود. این بدان معنی خواهد بود که فقط در صورتی مشکل امنیتی ایجاد می‌شود که: ۱) برنامه SSL_free() را در هنگام قطع شدن ارتباط به موقع فراخوانی نکند یا ۲) برنامه در یک محیط محدود شده کار کند که در این محیط مقدار حافظه آزاد خیلی کم باشد یا ۳) مهاجم، چندین تلاش برای ایجاد ارتباط را راه‌اندازی کند به طوری که چندین ارتباط در یک حالت وجود دارد که حافظه برای آن اختصاص داده شده است؛در این حالت SSL_free() هنوز فراخوانده نشده است و میزان کافی حافظه برای سرویس دادن به چندین درخواست وجود ندارد. به جز حالت شماره ۱، هرگونه حمله DoS ای پایدار نخواهد بود چراکه به محض قطع شدن ارتباط، حافظه متعاقبا با درخواست SSL_free() آزاد خواهد شد. با این حال، احتمال crash کردن برنامه به علت فقدان حافظه وجود دارد که درنتیجه منجر به حملات جدی‌تر DoS خواهد شد. این آسیب‌پذیری توسط یکی از اعضای تیم Gear  در شرکت Qihoo 360 به نام  Shi Leiدر تاریخ ۱۸ آگوست ۲۰۱۶ گزارش شده است.

  • این مشکل در OpenSSL 1.0a بر طرف شده است؛ اما نسخه‌ زیر آسیب‌پذیر است:

 ۱٫۱٫۰

۱۱  آسیب‌پذیری CVE-2016-6303 (شدت پایین)

یک سرریز(۷) می‌تواند در MDC2_Update() رخ دهد اگر به طور مستقیم یا از طریق تابع EVP_DigestUpdate() که از MDC2 استفاده می‌کند، فراخوانی شود. اگر یک مهاجم قادر باشد مقدار بسیار زیادی از داده‌های ورودی را پس از فرخوانی EVP_EncryptUpdate() با یک partial block تولید کند، درنتیجه، بررسی طول پیام به علت خرابی heap می‌تواند دچار سرریز ‌شود. میزان داده‌های مورد نیاز قابل مقایسه با SIZE_MAX است که در بیشتر پلتفرم‌ها غیرعملی است. این آسیب‌پذیری توسط یکی از اعضای تیم Gear  در شرکت Qihoo 360 به نام  Shi Leiدر تاریخ ۱۱ آگوست ۲۰۱۶ گزارش شده است.

  • این مشکل در OpenSSL 0.1u بر طرف شده است؛ اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۱t, 1.0.1s, 1.0.1r, 1.0.1q, 1.0.1p, 1.0.1o, 1.0.1n, 1.0.1m, 1.0.1l, 1.0.1k, 1.0.1j, 1.0.1i, 1.0.1h, 1.0.1g, 1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1

  • این مشکل در OpenSSL 0.2iبر طرف شده است؛ اما  نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۲h, 1.0.2g, 1.0.2f, 1.0.2e, 1.0.2d, 1.0.2c, 1.0.2b, 1.0.2a, 1.0.2

۱۲  آسیب‌پذیری CVE-2016-6302 (شدت پایین)

اگر یک سرور از SHA512 برای HMAC بلیط(۸) جلسه(۹) TLS استفاده کند، این سرور به یک حمله DoS آسیب‌پذیر خواهد بود که یک بلیط ناقص منجر به خواندن OOB می‌شود و درنهایت منجر به crash می‌شود. استفاده از SHA512 در بلیط‌های جلسه TLS نسبتا نادر است چراکه نیازمند یک سرور سفارشی تماس متقابل(۱۰) و مکانیزم بررسی(۱۱) بلیط است. این آسیب‌پذیری توسط یکی از اعضای تیم Gear  در شرکت Qihoo 360 به نام  Shi Leiدر تاریخ ۱۹ آگوست ۲۰۱۶ گزارش شده است.

  • این مشکل در OpenSSL 0.1u بر طرف شده است؛ اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۱t, 1.0.1s, 1.0.1r, 1.0.1q, 1.0.1p, 1.0.1o, 1.0.1n, 1.0.1m, 1.0.1l, 1.0.1k, 1.0.1j, 1.0.1i, 1.0.1h, 1.0.1g, 1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1

  • این مشکل در OpenSSL 0.2iبر طرف شده است؛ اما  نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۲h, 1.0.2g, 1.0.2f, 1.0.2e, 1.0.2d, 1.0.2c, 1.0.2b, 1.0.2a, 1.0.2

۱۳  آسیب‌پذیری CVE-2016-2179 (شدت پایین)

در یک ارتباط DTLS که پیام‌های handshake به صورت out-of-order تحویل داده می‌شوند، پیام‌هایی که OpenSSL هنوز قادر به پردازش آن‌ها نیست، برای استفاده‌های بعدی بافر می‌شوند. تحت شرایط خاص، اشکالی که بوجود می‌آید به این علت است که پیام‌ها با اینکه handshake کامل شده‌ اند ولی از بافر حذف نمی‌شوند. یک مهاجم می‌تواند ۱۵ پیام را مجبور به باقی ماندن در بافر کند درحالی که دیگر به آن‌ها نیازی نیست. این پیام‌ها در هنگام بسته شدن ارتباط، پاک خواهند شد. حداکثر اندازه پیش‌فرض پیام، ۱۰۰ کیلیوبایت است. بنابراین مهاجم می‌تواند ۱۵۰۰ کیلوبایت اضافی دیگر را مجبور به مصرف شدن در ارتباط کند. با باز کردن تعداد زیادی ارتباط هم‌زمان، مهاجم می‌تواند از طریق فرسایش حافظه یک حمله DoS را رقم بزند. این آسیب‌پذیری توسط Quan Luo در تاریخ ۲۲ ژوئن ۲۰۱۶ گزارش شده است.

  • این مشکل در OpenSSL 0.1u بر طرف شده است؛ اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۱t, 1.0.1s, 1.0.1r, 1.0.1q, 1.0.1p, 1.0.1o, 1.0.1n, 1.0.1m, 1.0.1l, 1.0.1k, 1.0.1j, 1.0.1i, 1.0.1h, 1.0.1g, 1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1

  • این مشکل در OpenSSL 0.2iبر طرف شده است؛ اما  نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۲h, 1.0.2g, 1.0.2f, 1.0.2e, 1.0.2d, 1.0.2c, 1.0.2b, 1.0.2a, 1.0.2

۱۴  آسیب‌پذیری CVE-2016-2181 (شدت پایین)

یک اشکال در مکانیزم محافظت حمله پاسخ DTLS بدین معنی است که سوابقی که برای دوره‌های آتی وارد شده‌اند، پنجره محافظت پاسخ(۱۲) را قبل از اینکه MAC مربوط به این سابقه اعتبارسنجی شود، به روز رسانی می‌کنند. این امر می‌تواند توسط یک مهاجم توسط فرستادن یک سابقه با یک شماره توالی(۱۳) بسیار بزرگ برای دوره بعدی (که نیاز به رمزگشایی ندارد یا دارای یک MAC دارای اعتبار است.)، مورد بهره‌برداری قرار گیرد. این بدان معنی است که تمامی پاکت‌های قانونی بعدی به علت وجود یک DoS برای یک ارتباط DTLS خاص، نادیده گرفته می‌شوند. این آسیب‌پذیری توسط تیم OCAP در تاریخ ۲۱ نووامبر ۲۰۱۶ گزارش شده است.

  • این مشکل در OpenSSL 0.1u بر طرف شده است؛ اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۱t, 1.0.1s, 1.0.1r, 1.0.1q, 1.0.1p, 1.0.1o, 1.0.1n, 1.0.1m, 1.0.1l, 1.0.1k, 1.0.1j, 1.0.1i, 1.0.1h, 1.0.1g, 1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1

  • این مشکل در OpenSSL 0.2iبر طرف شده است؛ اما  نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۲h, 1.0.2g, 1.0.2f, 1.0.2e, 1.0.2d, 1.0.2c, 1.0.2b, 1.0.2a, 1.0.2

۱۵  آسیب‌پذیری CVE-2016-2182 (شدت پایین)

تابع BN_bn2dec() مقدار برگشتی BN_div_word() را بررسی نمی‌کند. این امر موجب نوشتن OOB می‌شود، اگرکه یک برنامه از این تابع با یک BIGNUM بیش از حد بزرگ استفاده کند. این امر می‌تواند مشکل‌ساز شود اگرکه یک گواهی‌نامه بیش از حد بزرگ یا CRL از طریق یک منبع نامطمئن در حافظه گنجانده شود.در این مورد TLS تحت تأثیر قرار نخواهد گرفت چراکه محدودیت‌های سابقه گواهی‌های بزرگ را قبل از اینکه تجزیه شوند، رد می‌کند. این آسیب‌پذیری توسط یکی از اعضای تیم Gear  در شرکت Qihoo 360 به نام  Shi Leiدر تاریخ ۲ آگوست ۲۰۱۶ گزارش شده است.

  • این مشکل در OpenSSL 0.1u بر طرف شده است؛ اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۱t, 1.0.1s, 1.0.1r, 1.0.1q, 1.0.1p, 1.0.1o, 1.0.1n, 1.0.1m, 1.0.1l, 1.0.1k, 1.0.1j, 1.0.1i, 1.0.1h, 1.0.1g, 1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1

  • این مشکل در OpenSSL 0.2iبر طرف شده است؛ اما  نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۲h, 1.0.2g, 1.0.2f, 1.0.2e, 1.0.2d, 1.0.2c, 1.0.2b, 1.0.2a, 1.0.2

۱۶  آسیب‌پذیری CVE-2016-2180 (شدت پایین)

تابع TS_OBJ_print_bio() از OBJ_obj2txt() سوءاستفاده می‌کند؛ این امر منجر به خواندن OOB می‌شود در هنگامی که OID های بزرگ ارائه شده‌اند. این آسیب‌پذیری توسط یکی از اعضای تیم Gear  در شرکت Qihoo 360 به نام  Shi Leiدر تاریخ ۲۱ جولای ۲۰۱۶ گزارش شده است.

  • این مشکل در OpenSSL 0.1u بر طرف شده است؛ اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۱t, 1.0.1s, 1.0.1r, 1.0.1q, 1.0.1p, 1.0.1o, 1.0.1n, 1.0.1m, 1.0.1l, 1.0.1k, 1.0.1j, 1.0.1i, 1.0.1h, 1.0.1g, 1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1

  • این مشکل در OpenSSL 0.2iبر طرف شده است؛ اما  نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۲h, 1.0.2g, 1.0.2f, 1.0.2e, 1.0.2d, 1.0.2c, 1.0.2b, 1.0.2a, 1.0.2

۱۷  آسیب‌پذیری CVE-2016-2178 (شدت پایین)

عملگرهای موجود در الگوریتم امضای DSA باید در یک زمان ثابت اجرا شوند بدین منظور که از حملات کانال جانبی جلوگیری شود. یک اشکال در پیاده‌سازیOpenSSL DSA  بدین معنی است که یک codepath دارای زمان غیرثابت به منظور عملیات‌های خاص دنبال شود. این امر توسط یک حمله cache-timing ثابت می‌شود که برای یک مهاجم کافی است تا یک کلید DSA خصوصی را بازیابی کند. این آسیب‌پذیری توسط César Pereida از دانشگاه Aalto، Billy Brumley از دانشگاه صنعتیTampere  و Yuval Yarom از دانشگاه Adelaide و NICTA در روز ۲۳ می ۲۰۱۶ گزارش شده است.

  • این مشکل در OpenSSL 0.1u بر طرف شده است؛ اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۱t, 1.0.1s, 1.0.1r, 1.0.1q, 1.0.1p, 1.0.1o, 1.0.1n, 1.0.1m, 1.0.1l, 1.0.1k, 1.0.1j, 1.0.1i, 1.0.1h, 1.0.1g, 1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1

  • این مشکل در OpenSSL 0.2iبر طرف شده است؛ اما  نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۲h, 1.0.2g, 1.0.2f, 1.0.2e, 1.0.2d, 1.0.2c, 1.0.2b, 1.0.2a, 1.0.2

۱۸  آسیب‌پذیری CVE-2016-2177 (شدت پایین)

OpenSSL از اشاره‌گرهای محاسباتی به صورت نادرست برای چک کردن محدوده heap-buffer استفاده می‌کند، که این امر ممکن است به مهاجمین راه دور اجازه دهد تا باعث یک حمله DoS (سرریز عدد صحیح و crash شدن نرم‌افزار) شوند یا ممکن است تاثیرات نامشخص دیگری توسط رفتار malloc داشته باشند. این مورد توسط Guido Vranken در چهارم می ۲۰۱۶ گزارش شده است.

  • این مشکل در OpenSSL 1.0.1u برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۱t, 1.0.1s, 1.0.1r, 1.0.1q, 1.0.1p, 1.0.1o, 1.0.1n, 1.0.1m, 1.0.1l, 1.0.1k, 1.0.1j, 1.0.1i, 1.0.1h, 1.0.1g, 1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1

  • این مشکل در OpenSSL 1.0.2i برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۲h, 1.0.2g, 1.0.2f, 1.0.2e, 1.0.2d, 1.0.2c, 1.0.2b, 1.0.2a, 1.0.2

۱۹  آسیب‌پذیری CVE-2016-2108 (شدت بالا)

این موضوع روی نسخه‌های OpenSSL قبل از آوریل ۲۰۱۵ اثر می‌گذارد. این نقص موجب آسیب‌پذیری‌هایی شده که در ۱۸ آوریل ۲۰۱۵ برطرف شدند و در ۱۱ ژوئن ۲۰۱۵ منتشر شدند. تاثیر امنیتی این مشکل در آن زمان شناخته شده نبود. در نسخه‌های قبلی OpenSSL، در کدگذاری ASN.1 مقدار صفر که به عنوان یک عدد منفی ارائه شده بود، می‌تواند باعث یک buffer underflow با یک نوشتن خارج از محدوده در i2c_ASN1_INTEGER شود. در واقع، پیاده سازی ASN.1 در OpenSSL به مهاجمین راه دور اجازه می‌دهد تا کدهای دلخواه را اجرا کنند یا باعث یک حمله DoS از طریق یک فیلد ANY در داده سریال شده‌ای که به طور خاص تدارک دیده شده است، شود که به نام مستعار “negative zero” بیان می‌شود. برنامه‌هایی که گواهی X509 را تجزیه و دوباره کدگذاری می‌کنند، آسیب‌پذیر هستند؛ همچنین برنامه‌هایی که امضاهای RSA را روی گواهی X509 وارسی می‌کنند، ممکن است آسیب‌پذیر باشند. این مورد توسط Sidhpurwala (Red Hat)، Hanno Böck و (Google)David Benjamin در ۳۱ مارچ ۲۰۱۶ گزارش شده است.

  • این مشکل در OpenSSL 1.0.1o برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۱n, 1.0.1m, 1.0.1l, 1.0.1k, 1.0.1j, 1.0.1i, 1.0.1h, 1.0.1g, 1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1

  • این مشکل در OpenSSL 1.0.2c برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۲b, 1.0.2a, 1.0.2

۲۰  آسیب‌پذیری CVE-2016-2107 (شدت بالا)

یک حمله‌کننده MITM در زمانی که اتصال از یک AES CBC استفاده می‌کند و سرویس‌دهنده از AES-NI پشتیبانی می‌کند، می‌تواند از حملهpadding oracle  به منظور رمزگشایی ترافیک استفاده کند. این مورد توسط Juraj Somorovsky در ۱۳ آوریل ۲۰۱۶ گزارش شده است.

  • این مشکل در OpenSSL 1.0.1t برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۱s, 1.0.1r, 1.0.1q, 1.0.1p, 1.0.1o, 1.0.1n, 1.0.1m, 1.0.1l, 1.0.1k, 1.0.1j, 1.0.1i, 1.0.1h, 1.0.1g, 1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1

  • این مشکل در OpenSSL 1.0.2h برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۲g, 1.0.2f, 1.0.2e, 1.0.2d, 1.0.2c, 1.0.2b, 1.0.2a, 1.0.2

۲۱  آسیب‌پذیری CVE-2016-2105 (شدت پایین)

یک سرریز در تابع EVP_EncodeUpdate() (که برای کدگزاری باینری به Base64 استفاده می‌شود) ممکن است رخ دهد. اگر یک مهاجم قادر باشد تا مقادیر بسیار زیادی از داده‌های ورودی را عرضه کند، سپس چک کردن طول می‌تواند منجر به سرریز نتیجه در یک heap شود. در OpenSSL، تابع EVP_EncodeUpdate() در درجه اول توسط خانواده توابع PEM_write_bio* استفاده می‌شود. اینها عمدتا در خط فرمان OpenSSL استفاده می‌شوند. برنامه‌هایی که این APIها را با مقادیر زیادی از داده‌های نامطمئن فراخوانی کنند، ممکن است آسیب‌پذیر باشند. این موضوع توسط Guido Vranken در سوم مارچ ۲۰۱۶ گزارش داده شده است.

  • این مشکل در OpenSSL 1.0.1t برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۱s, 1.0.1r, 1.0.1q, 1.0.1p, 1.0.1o, 1.0.1n, 1.0.1m, 1.0.1l, 1.0.1k, 1.0.1j, 1.0.1i, 1.0.1h, 1.0.1g, 1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1

  • این مشکل در OpenSSL 1.0.2h برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۲g, 1.0.2f, 1.0.2e, 1.0.2d, 1.0.2c, 1.0.2b, 1.0.2a, 1.0.2

۲۲  آسیب‌پذیری CVE-2016-2106 (شدت پایین)

یک سرریز در تابع EVP_EncryptUpdate() می‌تواند رخ دهد. اگر یک مهاجم قادر باشد تا مقادیر بسیار زیادی از داده‌های ورودی را عرضه کند، سپس چک کردن طول می‌تواند منجر به سرریز نتیجه در یک heap شود. بر طبق تجزیه و تحلیل استفاده داخلی تابع EVP_EncryptUpdate() در تمام OpenSSL، تمامی استفاده به صورت یکی از این ۲ حالت است. حالت اول به این صورت است که فراخوانی EVP_EncryptUpdate() به صورت تابع اولیه شناخته شده بعد از EVP_EncryptUpdate() است و بنابراین آن فراخوانی خاص باید امن باشد. حالت دوم به این صورت است که طول انتقال داده شده به EVP_EncryptUpdate() می‌تواند از طریق یک کد که دارای مقدار کوچکی است دیده شود و بنابراین امکان سرریز وجود ندارد. از آنجاکه همه موارد به صورت یکی از این ۲ حالت هستند، اعتقاد بر این است که به خاطر این مشکل هیچ سرریزی در کد داخلی نمی‌تواند باشد. این نکته قابل توجه است که EVP_DecryptUpdate() می‌تواند EVP_EncryptUpdate() را در مسیرهای کد به خصوص فراخوانی کند. تمامی EVP_CipherUpdate() ها یک مترادف برای EVP_EncryptUpdate() هستند. تمامی موارد این فراخوانی‌ها نیز تجزیه و تحلیل شده است و اعتقاد بر این است که موردی در استفاده داخلی وجود ندارد که در آن سرریز رخ دهد. اما این همچنان می‌تواند حاکی از یک مشکل امنیتی برای کاربر نهایی باشد که این تابع را به صورت مستقیم فراخوانی می‌کند. این موضوع توسط Guido Vranken در سوم مارچ ۲۰۱۶ گزارش داده شده است.

  • این مشکل در OpenSSL 1.0.1t برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۱s, 1.0.1r, 1.0.1q, 1.0.1p, 1.0.1o, 1.0.1n, 1.0.1m, 1.0.1l, 1.0.1k, 1.0.1j, 1.0.1i, 1.0.1h, 1.0.1g, 1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1

  • این مشکل در OpenSSL 1.0.2h برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۲g, 1.0.2f, 1.0.2e, 1.0.2d, 1.0.2c, 1.0.2b, 1.0.2a, 1.0.2

۲۳  آسیب‌پذیری CVE-2016-2109 (شدت پایین)

زمانی که داده ASN.1 از یک BIO(14) با استفاده از توابعی مانند d2i_CMS_bio() خوانده می‌شود، یک کدگذاری نامعتبر می‌تواند باعث تخصیص مقادیر زیادی از حافظه شود که به طور بالقوه منابع بیش از حد را مصرف می‌کنند. هر برنامه‌کاربردی، داده‌های نامعتبر را با استفاده از توایع d2i BIO، تجزیه می‌کند. زمانی که توابع مبتنی بر حافظه، توسط کتابخانه TLS استفاده می‌شوند، TLS application متاثر نمی‌شوند. این موضوع توسط Brian Carpenter در چهارم آوریل ۲۰۱۶ گزارش شده است.

  • این مشکل در OpenSSL 1.0.1t برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۱s, 1.0.1r, 1.0.1q, 1.0.1p, 1.0.1o, 1.0.1n, 1.0.1m, 1.0.1l, 1.0.1k, 1.0.1j, 1.0.1i, 1.0.1h, 1.0.1g, 1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1

  • این مشکل در OpenSSL 1.0.2h برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۲g, 1.0.2f, 1.0.2e, 1.0.2d, 1.0.2c, 1.0.2b, 1.0.2a, 1.0.2

۲۴  آسیب‌پذیری CVE-2016-2176 (شدت پایین)

تابع X509_NAME_oneline در crypto/x509/x509_obj.c به مهاجمین راه دور اجازه ‌‌می‌دهد تا اطلاعات حساس را از پروسه حافظه پشته بدست بیاورند و یا سبب یک حمله DoS (buffer over-read) از طریق داده تدارک دیده شده EBCDIC ASN.1 شوند. این مورد توسط Guido Vranken در پنجم مارچ ۲۰۱۶ گزارش شده است.

  • این مشکل در OpenSSL 1.0.1t برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۱s, 1.0.1r, 1.0.1q, 1.0.1p, 1.0.1o, 1.0.1n, 1.0.1m, 1.0.1l, 1.0.1k, 1.0.1j, 1.0.1i, 1.0.1h, 1.0.1g, 1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1

  • این مشکل در OpenSSL 1.0.2h برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۲g, 1.0.2f, 1.0.2e, 1.0.2d, 1.0.2c, 1.0.2b, 1.0.2a, 1.0.2

۲۵  آسیب‌پذیری CVE-2016-0800 (شدت بالا)

حمله‌ cross-protocol در سرورهایی که از پروتکل SSLv2 (که در OpenSSL و دیگر محصولات استفاده می‌شود) استفاده می‌کنند، کشف شده بود که می‌توانست منجر به رمزگشایی جلسه‌های TLS شود. توجه کنید که ترافیک بین سرویس‌گیرنده‌ها و سرویس‌دهنده‌هایی که آسیب‌پذیر نیستند، می‌تواند از طریق سرویس‌گیرنده‌های دیگری که SSLv2 را پشتیبانی می‌کنند و کلیدهای RSA را با سرویس‌دهنده‌هایی که آسیب‌پذیر نیستند به اشتراک می‌گذارند، مورد حمله واقع شوند. این آسیب‌پذیری به عنوان DROWN شناخته می‌شود.

  • این مشکل در OpenSSL 1.0.1s برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۱r, 1.0.1q, 1.0.1p, 1.0.1o, 1.0.1n, 1.0.1m, 1.0.1l, 1.0.1k, 1.0.1j, 1.0.1i, 1.0.1h, 1.0.1g, 1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1

  • این مشکل در OpenSSL 1.0.2g برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۲f, 1.0.2e, 1.0.2d, 1.0.2c, 1.0.2b, 1.0.2a, 1.0.2

۲۶  آسیب‌پذیری CVE-2016-0705 (شدت پایین)

یک مشکل در زمانی که OpenSSL کلیدهای عمومی DSA نادرست را تجزیه می‌کند، کشف شده بود و این مشکل می‌توانست باعث حمله DoS یا باعث مشکلاتی در حافظه برای برنامه‌های که کلیدهای خصوصی DSA را از منابع غیرقابل اعتماد دریافت می‌کنند، شود. البته سناریوی در نظر گرفته شده بسیار کم اتفاق می‌افتد. این مورد توسط Adam Langley در هفتم فوریه ۲۰۱۶ گزارش شده است.

  • این مشکل در OpenSSL 1.0.1s برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۱r, 1.0.1q, 1.0.1p, 1.0.1o, 1.0.1n, 1.0.1m, 1.0.1l, 1.0.1k, 1.0.1j, 1.0.1i, 1.0.1h, 1.0.1g, 1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1

  • این مشکل در OpenSSL 1.0.2g برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۲f, 1.0.2e, 1.0.2d, 1.0.2c, 1.0.2b, 1.0.2a, 1.0.2

۲۷  آسیب‌پذیری CVE-2016-0798 (شدت پایین)

نشت حافظه در پیاده‌سازی SRP_VBASE_get_by_user در OpenSSl به کاربران راه دور اجازه می‌داد تا توسط فراهم آوردن یک نام کاربری نامعتبر (در هنگام اتصال)، موجب یک حمله ممانعت از سرویس(DoS) شوند. به طور خاص، سرویس‌دهنده‌های SRP که یک seed را به منظور مخفی نگه‌داشتن اطلاعات معتبر ورود در نظر می‌گیرند، در برابر نشت حافظه آسیب پذیرند. یک مهاجم که از نام‌کاربری نادرست برای اتصال استفاده می‌کند، می‌تواند موجب نشت ۳۰۰ بایت از حافظه شود. سرویس‌دهنده‌هایی که مقدار seed را در نظر نگرفته‌اند یا اینکه اصلا SRP را پیکربندی نکرده‌اند، در مقابل این حمله، آسیب‌پذیر نیستند. این مورد توسط Emilia Käsper (OpenSSL) در ۲۳ فوریه ۲۰۱۶ گزارش شده است.

  • این مشکل در OpenSSL 1.0.1s برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۱r, 1.0.1q, 1.0.1p, 1.0.1o, 1.0.1n, 1.0.1m, 1.0.1l, 1.0.1k, 1.0.1j, 1.0.1i, 1.0.1h, 1.0.1g, 1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1

  • این مشکل در OpenSSL 1.0.2g برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۲f, 1.0.2e, 1.0.2d, 1.0.2c, 1.0.2b, 1.0.2a, 1.0.2

۲۸  آسیب‌پذیری CVE-2016-0797 (شدت پایین)

در تابع BN_hex2bn، تعداد اعدا hex، با استفاده از مقدار |i| محاسبه شده است. بعدا مقدار |bn_expand| با یک مقدار |i * 4| فراخوانی می‌شود. برای مقادیر زیاد از |i| ممکن است حافظه‌ای تخصیص نیابد زیرا |i * 4| منفی است. این می‌تواند از BIGNUM داخلی به عنوان NULL خارج شود. برای مقادیر زیاد از |i|، مقدار |i * 4| می‌تواند یک مقدار مثبت کوچکتر از |i| باشد. در این مورد، حافظه به فیلد داده BIGNUM تخصیص داده می‌شود اما آن به صورت ناکافی اندازه دهی می‌شود و منجر به اختلال در heap می‌شود. یک موضوع مشابه در BN_dec2bn موجود است. این مورد توسط Guido Vranken در تاریخ ۱۹ فوریه ۲۰۱۶ گزارش شده است.

  • این مشکل در OpenSSL 1.0.1s برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۱r, 1.0.1q, 1.0.1p, 1.0.1o, 1.0.1n, 1.0.1m, 1.0.1l, 1.0.1k, 1.0.1j, 1.0.1i, 1.0.1h, 1.0.1g, 1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1

  • این مشکل در OpenSSL 1.0.2g برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۲f, 1.0.2e, 1.0.2d, 1.0.2c, 1.0.2b, 1.0.2a, 1.0.2

۲۹  آسیب‌پذیری CVE-2016-0799 (شدت پایین)

تابع fmtstr در crypto/bio/b_print.c در OpenSSL، طول رشته را به صورت نادرست محاسبه می‌کند و این امر به کاربران راه دور اجازه می‌دهد تا موجب یک حمله Dos (سرریز و خواندن خارج از محدوده) شوند و یا ممکن است تاثیرات نامشخص دیگری از طریق طول رشته بگذارد. همچنین تابع doapr_outch ممکن است بتواند تا چیزی را در خارج از محدوده بنویسد. اگر برنامه‌ها از توابع BIO_*printf استفاده کنند، می‌توانند آسیب‌پذیر باشند. OpenSSL از این توابع در زمان چاپ کردن داده ASN.1 استفاده می‌کند. بنابراین اگر داده از منابع غیرقابل اعتماد باشد، برنامه‌هایی که این داده را چاپ می‌کنند می‌توانند آسیب‌پذیر باشند. خط فرمان OpenSSL هم در جایی که داده ASN.1 را چاپ می‌کنند ممکن است آسیب‌پذیر باشند و همین‌طور وقتی که داده‌های غیرقابل اعتماد به عنوان پارامترهای خط فرمان ارسال می‌شوند، باز هم این آسیب‌پذیری وجود دارد. Libssl مستقیما آسیب‌پذیر در نظر گرفته نشده است. این مورد توسط Guido Vranken در ۲۳ فوریه ۲۰۱۶ گزارش شده است.

  • این مشکل در OpenSSL 1.0.1s برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۱r, 1.0.1q, 1.0.1p, 1.0.1o, 1.0.1n, 1.0.1m, 1.0.1l, 1.0.1k, 1.0.1j, 1.0.1i, 1.0.1h, 1.0.1g, 1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1

  • این مشکل در OpenSSL 1.0.2g برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۲f, 1.0.2e, 1.0.2d, 1.0.2c, 1.0.2b, 1.0.2a, 1.0.2

۳۰  آسیب‌پذیری CVE-2016-0702 (شدت پایین)

یک حمله کانال جانبی(۱۵) که باعث یک تعارض cache-bank روی CPU شرکت Intrel (Intel Sandy Bridge CPU) می‌شود، پیدا شده است که می‌تواند موجب بازیابی کلید‌های RSA شود. توانایی بهره‌برداری این موضوع محدود به این است که مهاجم کنترل کدی (در یک ریسه(۱۶)) را دارد که روی همان هسته‌ای که ریسه قربانی عملیات رمزگشایی را انجام می‌دهد در حال اجرا است. این مورد توسط Yuval Yarom (دانشگاه Adelaide و NICTA)، Daniel Genkin (دانشگاه Technion و Tel Aviv) و Nadia Heninger (دانشگاه Pennsylvania) در ۸ ژانویه ۲۰۱۶ گزارش شده است.

  • این مشکل در OpenSSL 1.0.1s برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۱r, 1.0.1q, 1.0.1p, 1.0.1o, 1.0.1n, 1.0.1m, 1.0.1l, 1.0.1k, 1.0.1j, 1.0.1i, 1.0.1h, 1.0.1g, 1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1

  • این مشکل در OpenSSL 1.0.2g برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۲f, 1.0.2e, 1.0.2d, 1.0.2c, 1.0.2b, 1.0.2a, 1.0.2

۳۱  آسیب‌پذیری CVE-2016-0703 (شدت پایین)

تابع get_client_master_key در s2_srvr.c در پیاده‌سازی SSLv2، یک مقدار CLIENT-MASTER-KEY CLEAR-KEY-LENGTH غیر صفر برای رمز دلخواه قبول می‌کند، که به حمله کننده مردی در میان (MITM) اجازه می‌دهد تا مقدار MASTER-KEY را تایین کند و  داده رمز شده TLS را توسط یک RSA padding oracle رمزگشایی کند (مرتبط با CVE-2016-0800). این مورد توسط David Adrian و J.Alex Halderman (در دانشگاه میشیگان) در دهم فوریه ۲۰۱۶ گزارش شده است.

  • این مشکل در OpenSSL 0.9.8zf برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۰٫۹٫۸ze, 0.9.8zd, 0.9.8zc, 0.9.8zb, 0.9.8za, 0.9.8y, 0.9.8x, 0.9.8w, 0.9.8v, 0.9.8u, 0.9.8t, 0.9.8s, 0.9.8r, 0.9.8q, 0.9.8p, 0.9.8o, 0.9.8n, 0.9.8m, 0.9.8l, 0.9.8k, 0.9.8j, 0.9.8i, 0.9.8h, 0.9.8g, 0.9.8f, 0.9.8e, 0.9.8d, 0.9.8c, 0.9.8b, 0.9.8a, 0.9.8

  • این مشکل در OpenSSL 1.0.0r برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۰q, 1.0.0p, 1.0.0o, 1.0.0n, 1.0.0m, 1.0.0l, 1.0.0k, 1.0.0j, 1.0.0i, 1.0.0g, 1.0.0f, 1.0.0e, 1.0.0d, 1.0.0c, 1.0.0b, 1.0.0a, 1.0.0

  • این مشکل در OpenSSL 1.0.1m برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۱l, 1.0.1k, 1.0.1j, 1.0.1i, 1.0.1h, 1.0.1g, 1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1

  • این مشکل در OpenSSL 1.0.2a برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۲

۳۲  آسیب‌پذیری CVE-2016-0704 (شدت متوسط)

این مسئله تنها روی OpenSSl قبل از ۱۹ مارچ ۲۰۱۵ تاثیر می‌گذارد. تابع get_client_master_key در s2_srvr.c بایت‌های اشتباه master-key در زمان اعمال محافظت Bleichenbacher برای بیرون کشیدن دنباله‌های رمز را بازنویسی می‌کند که این امر کار رمزگشایی داده رمزشده TLS را برای مهاجمین راه دور آسان‌تر می‌کند.

  • این مشکل در OpenSSL 0.9.8zf برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۰٫۹٫۸ze, 0.9.8zd, 0.9.8zc, 0.9.8zb, 0.9.8za, 0.9.8y, 0.9.8x, 0.9.8w, 0.9.8v, 0.9.8u, 0.9.8t, 0.9.8s, 0.9.8r, 0.9.8q, 0.9.8p, 0.9.8o, 0.9.8n, 0.9.8m, 0.9.8l, 0.9.8k, 0.9.8j, 0.9.8i, 0.9.8h, 0.9.8g, 0.9.8f, 0.9.8e, 0.9.8d, 0.9.8c, 0.9.8b, 0.9.8a, 0.9.8

  • این مشکل در OpenSSL 1.0.0r برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۰q, 1.0.0p, 1.0.0o, 1.0.0n, 1.0.0m, 1.0.0l, 1.0.0k, 1.0.0j, 1.0.0i, 1.0.0g, 1.0.0f, 1.0.0e, 1.0.0d, 1.0.0c, 1.0.0b, 1.0.0a, 1.0.0

  • این مشکل در OpenSSL 1.0.1m برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۱l, 1.0.1k, 1.0.1j, 1.0.1i, 1.0.1h, 1.0.1g, 1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1

  • این مشکل در OpenSSL 1.0.2a برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۲

۳۳  آسیب‌پذیری CVE-2016-0701 (شدت بالا)

از لحاظ تاریخی، OpenSSL معمولا پارامترهای DH را مبتنی بر اعداد اول ایمن تولید نکرده است. اخیرا (در نسخه ۱٫۰٫۲) پشتیبانی برای پارامترهای تولیدی به سبک X9.42 (مانند آن‌هایی که پشتیبانی RFC 5114 را نیاز دارند) ارائه شده بود. اعداد اول استفاده شده در همچین فایل‌هایی ممکن است ایمن نباشد. زمانی که یک برنامه از پیکربندی DH با پارامتر‌های مبتنی بر روی اعداد اولی که ایمن نیستند استفاده ‌کند، سپس یک مهاجم می‌تواند از این اصل برای حمله استفاده کند.

  • این مشکل در OpenSSL 1.0.2f برطرف شده است، اما نسخه‌های زیر آسیب‌پذیرند:

۱٫۰٫۲e, 1.0.2d, 1.0.2c, 1.0.2b, 1.0.2a, 1.0.2

۳۴  آسیب‌پذیری CVE-2015-3197 (شدت کم)

یک سرویس‌گیرنده می‌توانند حتی در صورت غیرفعال بودن SSLv2، باز هم مذاکرات SSLv2 داشته باشد و  SSLv2 handshakes را کامل کند به شرط اینکه پروتکل SSLv2 از طریق SSL_OP_NO_SSLv2 غیر فعال نشده باشد. این آسیب‌پذیری توسط Nimrod Aviram و Sebastian Schinzel در ۲۶ ام دسامبر ۲۰۱۵ گزارش شده است.

  • این مشکل در OpenSSL 1.0.1r برطرف شده است ولی نسخه های زیر آسیب‌پذیرند:

۱٫۰٫۱q, 1.0.1p, 1.0.1o, 1.0.1n, 1.0.1m, 1.0.1l, 1.0.1k, 1.0.1j, 1.0.1i, 1.0.1h, 1.0.1g, 1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1

  • این مشکل در OpenSSL 1.0.2f برطرف شده است ولی نسخه‌های زیر همچنان آسیب‌پذیرند:

۱٫۰٫۲e, 1.0.2d, 1.0.2c, 1.0.2b, 1.0.2a, 1.0.2

منبع

[۱] https://www.openssl.org/news/vulnerabilities.html


(۱) corrupting larger payloads
(۲) NULL pointer dereference
(۳) negotiation
(۴) OCSP Status Request extension
(۵) memory exhaustion
(۶) header
(۷) overflow
(۸) ticket
(۹) session
(۱۰) callback
(۱۱) lookup
(۱۲) replay protection “window”
(۱۳) sequence
(۱۴) BIO یک انتزاع از I/O stream است.
(۱۵) side-channel
(۱۶) thread