CVE-2023-24538

Kritik

Təsvir

Şablonlar geri dırnaqları (`) Javascript sətir ayırıcısı kimi düzgün nəzərə almır və onları gözlənilən şəkildə ekranlaşdırmır (escape etmir). ES6-dan başlayaraq geri dırnaqlardan JS şablon literalları üçün istifadə olunur. Əgər bir şablonda Javascript şablon literalı daxilində Go şablon hərəkəti varsa, həmin hərəkətin məzmunundan literalı sonlandırmaq və Go şablonuna ixtiyari Javascript kodu yerləşdirmək üçün istifadə edilə bilər. ES6 şablon literalları kifayət qədər mürəkkəb olduğu və özləri sətir interpolasiyası edə bildiyi üçün, bu davranışa icazə verməyin aşkar təhlükəsiz yolu olmadığından, onların daxilində Go şablon hərəkətlərinin istifadəsinə sadəcə icazə verilməməsi qərarına gəlindi (məsələn, "var a = {{.}}"). Bu, github.com/google/safehtml ilə eyni yanaşmadır. Düzəlişlə birlikdə, Template.Parse belə şablonlarla qarşılaşdıqda dəyəri 12 olan ErrorCode ilə Xəta (Error) qaytarır. Bu ErrorCode hazırda ixrac olunmayıb (unexported), lakin Go 1.21 buraxılışında ixrac olunacaqdır. Əvvəlki davranışdan asılı olan istifadəçilər bunu GODEBUG bayrağı jstmpllitinterp=1 vasitəsilə yenidən aktivləşdirə bilərlər, lakin burada geri dırnaqların artıq ekranlaşdırılacağı qeyd edilməlidir. Bundan ehtiyatla istifadə edilməlidir.

CiddilikKritik
CVSS9.8
İstismar ehtimalı83. faiz dərəcəsi2,3%
MəhsulGo
Dərc6 apr 2023
İlk görülmə6 apr 2023
Zəiflik növüCWE-94Kod inyeksiyası

Necə düzəltmək olar

Yeniləyin
  • golang go1.19.8, 1.20.3 və ya daha yeni versiya
  • stdlib1.19.8, 1.20.3 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
golang gov < 1.19.8, 1.20.0 ≤ v < 1.20.31.19.8, 1.20.3
stdlibGov < 1.19.8, 1.20.0-0 ≤ v < 1.20.31.19.8, 1.20.3

Versiyanızı yoxlayın

Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.

Intelligence 360 paketində

Attack Surface Management

Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.