CVE-2023-26158

Yüksək

Təsvir

mockjs paketinin bütün versiyaları, atributun obyekt prototipinə həvailə edib-etmədiyini yoxlamadığı üçün Util.extend funksiyası vasitəsilə Prototype Pollution zəifliyinə məruzdur. Obyekt prototipinin atributlarını əlavə etməklə və ya dəyişdirməklə hər bir obyektdə mövcud olan atributlar yaratmaq və ya kritik atributları zərərli olanlarla əvəz etmək mümkündür. Əgər proqram təminatı müəyyən atributların mövcudluğundan və ya mövcud olmamasından asılıdırsa və ya obyekt prototipinin öncədən təyin edilmiş atributlarından (məsələn, hasOwnProperty, toString və ya valueOf) istifadə edirsə, bu problem yarada bilər. Mock.Handler, Mock.Random, Mock.RE.Handler və ya Mock.Util daxilindəki extend() metoduna ötürülən istifadəçi tərəfindən idarə olunan girişlər hücumçuya bu zəiflikdən istifadə etməyə imkan verəcəkdir. Müvəqqəti həll yolu Təhlükəli atributların qara siyahısından (denylist) istifadə etməklə bu zəiflik aradan qaldırıla bilər. Util.extend funksiyasına aşağıdakı sətri əlavə edin: js if (["__proto__", "constructor", "prototype"].includes(name)) continue js // src/mock/handler.js Util.extend = function extend() { var target = arguments[0] || {}, i = 1, length = arguments.length, options, name, src, copy, clone if (length === 1) { target = this i = 0 } for (; i < length; i++) { options = arguments[i] if (!options) continue for (name in options) { if (["__proto__", "constructor", "prototype"].includes(name)) continue src = target[name] copy = options[name] if (target === copy) continue if (copy === undefined) continue if (Util.isArray(copy) || Util.isObject(copy)) { if (Util.isArray(copy)) clone = src && Util.isArray(src) ? src : [] if (Util.isObject(copy)) clone = src && Util.isObject(src) ? src : {} target[name] = Util.extend(clone, copy) } else { target[name] = copy } } } return target }

CiddilikYüksək
CVSS8.2
İstismar ehtimalı—
MəhsulMockjs
Dərc8 dek 2023
İlk görülmə8 dek 2023

Necə düzəltmək olar

Mənbələrdə bu zəiflik üçün düzəldilmiş versiya və ya yamaq keçidi yoxdur.

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
mockjsnpmv ≤ 1.1.0—
mockjs mock.jsv ≤ 1.1.0—

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.

CVE-2023-26158 · Mockjs · Dark Radar