یک محق امنیتی آسیبپذیری حیاتی را بر روی یکی از محبوبترین و پراستفادهترین کلاینتهای رمزنگاری ایمیل که از استاندارد OpenPGP مبتنی بر GnuPG برای رمزنگاری و امضای دیجیتال پیامه استفاده میکند، کشف کرده است. افشای این آسیبپذیری تقریبا یک ماه بعد از افشای مجموعه آسیبپذیریها با نام eFail در PGP و ابزارهای رمزنگاری S/Mime است. بهرهبرداری از آسیبپذیریهای eFail به مهاجم اجازه میداد تا به متن سادهی ایمیلهای رمزنگاریشده دست یابد. این آسیبپذیری برنامههای ایمیل Thunderbird، Apple Mail و Outlook را تحت تاثیر قرار داده است.
این محقق امنیتی کشف کرده که آسیبپذیری مربوط به بررسی ورودیها بوده و آن را SigSpoof نامگذاری کرده است. بهرهبرداری از این آسیبپذیری به مهاجم اجازه میدهد بدون نیاز به دخالت کلید خصوصی و یا عمومی بتواند امضای دیجیتال با کلید عمومی و شناسهی کلید فرد دیگری را جعل کند.
به این آسیبپذیری شناسهی CVE-2018-12020 اختصاص داده شده و برنامههای ایمیل مانند GnuPG، Enigmail، GPGTools و gnupg پایتون را تحت تاثیر قرار داده و در آخرین بهروزرسانیهای نرمافزاری وصله شده است. براساس توضیحات این محقق امنیتی، پروتکل OpenPGP اجازه میدهد تا پارامتری به نام filename مربوط به فایل ورودی اصلی در پیام رمزنگاریشده و یا امضاءشده وجود داشته باشد. این پارامتر با پیام وضعیت GnuPG در یک خط دادهی یکتا با یک سری کلمات کلیدیِ از پیش تعیینشده از هم جدا میشوند.
این پیامهای وضعیت توسط برنامه برای دریافت اطلاعات از gpg در مورد اعتبار یک امضاء و یا پارامترهای دیگر تجزیه و تحلیل میشوند. در طول رمزگشایی پیام در سمت گیرنده، کلاینت مورد نظر براساس کلمات کلیدی مشخص، آنها را از هم جدا میکند و اگر کاربر از آپشن verbose در فایل gpg.conf استفاده کرده باشد، پیام با امضای معتبر نمایش داده میشود.
با این حال این محقق امنیتی متوجه شده است با وجود پارامتر نام فایل که میتواند تا ۲۵۵ نویسه داشته باشد، در ابزارهای تحت تاثیر قرارگرفته به درستی بررسی نمیشود و به مهاجم اجازه میدهد تا بتواند نویسههای کنترلی را در این بخش بگنجاند. این محقق نشان داده چگونه میتواند با بهرهبرداری از این آسیبپذیری، پیامهای وضعیت GnuPG جعلی را در تجزیهی کنندهی برنامه تزریق کرده و اعتبارسنجی امضاءها و نتایج پیامهای رمزگشایی را مسموم کند.
این محقق امنیتی معتقد است این آسیبپذیری پتانسیل تحت تاثیر قرار دادن بخش وسیعی از زیرساخت هسته را دارا است چرا که از GnuPG فقط در رمزنگاری ایمیل استفاده نشده و در پشتیبانگیری امن، بهروزرسانی نرمافزارهای در توزیعها و همچنین در کد منبع سیستمهای کنترل نسخه مانند گیت مورد استفاده قرار گرفته است. شرکتهای توسعهدهندهی بزرگ در زمینهی ایمیل، این آسیبپذیری را وصله کردهاند و به کاربرانی که از این کلاینتهای ایمیل استفاده میکنند، توصیه میشود هرچه سریعتر نرمافزارها را بهروزرسانی کنند.
بهروزرسانی به GnuPG 2.2.8 یا GnuPG 1.4.23 ،Enigmail 2.0.7 و GPGTools 2018.3 توصیه میشود. اگر هم بهعنوان یک توسعهدهنده فعالیت میکنید توصیه میکنیم در تمام فراخوانیهای GPG از آپشن –no-verbose استفاده کرده و به python-gnupg 0.4.3 بهروزرسانی انجام دهید. برنامههایی که از GPGME به عنوان ماشین رمزنگاری استفاده میکنند امن هستند. همچنین GnuPG با پرچم کامپایل –status-fd و تنظیم نبودن آپشن –verbose امن هستند.