تیم امنیتی زبان برنامهنویسی Go، آسیبپذیری جدیدی را در بستههای crypto/x509 و crypto/tls شناسایی کرده است که میتواند منجر به جعل هویت (Impersonation) در ارتباطات TLS شود. این آسیبپذیری که با شناسه CVE-2026-111943 ثبت شده است، مربوط به نحوه اعتبارسنجی زنجیره گواهینامههای X.509 در نسخههای خاصی از این زبان است.
جزئیات فنی و سناریوی حمله
در نسخههای آسیبپذیر (پیش از 1.27.3 و 1.26.10)، برنامه ممکن است زنجیرههای گواهینامهای را که شامل مجموعهای از گواهینامههای Intermediate CA مورد بیاعتمادی هستند، به عنوان زنجیره معتبر بپذیرد. برای سوءاستفاده از این نقص، مهاجم باید دو پیشنیاز اصلی داشته باشد:
- کنترل گواهینامه: مهاجم باید گواهینامهای داشته باشد که از طریق یکی از این Intermediate CAهای خاص صادر شده باشد.
- موقعیت شبکه: مهاجم باید در موقعیت Man-in-the-Middle (MITM) قرار داشته باشد تا بتواند ترافیک TLS را رهگیری کرده و گواهینامه جعلی را به کلاینت ارائه دهد.
این آسیبپذیری برخلاف باگهای رایج، یک نقص در اجرای کد (Code Execution) نیست، بلکه یک نقص در سیاستهای اعتماد (Trust-store policy) است که میتواند منجر به نقض محرمانگی (Confidentiality) و یکپارچگی (Integrity) دادهها شود.
راهکارهای مقابله و رفع آسیبپذیری
برای محافظت از زیرساختها، اقدامات زیر ضروری است:
- بهروزرسانی ابزار Go: بلافاصله Go toolchain خود را به نسخههای 1.27.3 یا 1.26.10 ارتقا دهید.
- بازسازی باینریها (Rebuild): بسیار مهم است که پس از بهروزرسانی، تمامی برنامهها و باینریهای ساخته شده با نسخههای قدیمی مجدداً کامپایل و مستقر (Redeploy) شوند. اصلاح در سطح کد به تنهایی برای باینریهای از پیش ساخته شده کافی نیست.
- راهکار جایگزین: اگر بازسازی فوری امکانپذیر نیست، از مکانیزمهای سفارشی مانند
VerifyConnectionیاVerifyPeerCertificateدر تنظیمات TLS استفاده کنید تا زنجیرههای حاوی CAهای مشکوک را به صورت دستی رد کنید.