Geri qayıt
SafeDep npm-in mathmain riyaziyyat kitabxanasında şifrələnmiş yükləyici tapıb
SiTech AI Team2 წთ. საკითხავი

SafeDep npm-in mathmain riyaziyyat kitabxanasında şifrələnmiş yükləyici tapıb

SafeDep tədqiqatçıları npm-in mathmain paketində şifrələnmiş kod yükləyicisi aşkar ediblər. Yükləyici parolu həllediciyə verilən məlumatlardan götürür və faylı yazıb işə sala bilir.

Təhlükəsizlik şirkəti SafeDep-in tədqiqatçıları özünü riyaziyyat kitabxanası kimi təqdim edən mathmain npm paketində şifrələnmiş kod üçün yükləyici aşkar ediblər. Yükləyici parolu kitabxananın matris həlledicisinə verilən məlumatlardan götürür; düzgün giriş verildikdə faylı deşifrə edib içindəki kodu işə sala bilir. Təhlil 17 sentyabr 2026-cı ildə dərc olunub; şifrələnmiş kodun özünü açmaq mümkün olmayıb.

Həlledicinin içindəki gizli çağırış

Araşdırma mathmain-ın geniş istifadə olunan mathjs kitabxanasının adı dəyişdirilmiş və kodu gizlədilmiş kopyasına bənzəməsi ilə başladı. İpucu CommonJS versiyasında lusolve()-un sonundakı bir əlavə çağırış idi: həlledici nəticəni hesabladıqdan sonra aşağı üçbucaq matrisinin məlumatlarını removeSolveValidation()-a ötürür və qaytarılan dəyəri bir daha istifadə etmir.

Bu çağırış lib/cjs/utils/is.js faylındakı isGraph()-a yönəlir. isGraph() girişini JSON sətrinə çevirib parol kimi istifadə edir, base64 blokundan fayl adını deşifrə edir və tapılan yolu parolla birlikdə event() funksiyasına ötürür; çıxışı Node-un require()-una gedir.

scrypt, AES-GCM və diskə yazma

lib/cjs/utils/event.js-dəki rutinlər scrypt ilə 256 bitlik açar çıxarır və AES-GCM ilə deşifrə edir; hər blokda 16 baytlıq duz, 12 baytlıq başlanğıc vektoru, 16 baytlıq autentifikasiya teqi və şifr mətni base64 kimi durur.

Köməkçi funksiya deşifrə olunmuş baytları diskə yazır və sonra yüklənən yolu qaytarır, yəni kod prosesin öz hüquqları ilə işləyir. Yazmadan əvvəl fayl adından enc_ prefiksi çıxarıldığı üçün bu prefiksi olmayan yük öz şifrələnmiş mənbə faylının üzərinə yazır. lib/cjs/utils/ altındakı üç fayl JavaScript yerinə base64 məlumat saxlayır: graph.js (20 918 bayt), fraction.js (9 084) və bignumber/type.js (1 179 416).

Daha iki paket, tetikleyici yoxdur

Reyestrdə axtarış mathsbasemath-universe paketlərini üzə çıxardı; beş versiya boyunca yükləyici faylları, tetikleyici kod və həlledici dəyişiklikləri eynidir. [email protected] 27 avqust 2026-cı ildə, [email protected] isə 17 sentyabrda dərc olunub; npm həmin gün standart olaraq yükləyicisiz köhnə [email protected]-ı təqdim edirdi.

İki paketin göstərdiyi GitHub repozitoriyalarında baxılan commit-lərdə bu əlavə çağırış yoxdur, yəni açıq kod dərc olunmuş build-i izah etmir. Komanda şifrələnmiş fayl adına qarşı 16 922 mümkün parolu, beş fərqli bloka qarşı isə daha 533 parolu yoxlayıb və heç biri autentifikasiya yoxlamasından keçməyib. İşçi fərziyyə odur ki, paketlər gələcək hücum üçün yük saxlayır, tetikleyicini isə ayrı paket verəcək; belə paket tapılmayıb və kodun məlumat oğurladığı və ya serverlə əlaqə saxladığı göstərilməyib.

SSiTech

SiTech — AI ilə gücləndirilmiş veb hazırlanması

Sürətli və müasir saytlar qurur, AI-ı real biznes proseslərinə gətiririk. Layihəniz və ya sualınız var? Kömək etməyə hazırıq.