უკან დაბრუნება
Rust-ის პაკეტი arrayref აწყობის დროს მავნე კოდს უშვებს
SiTech AI Team2 წთ. საკითხავი

Rust-ის პაკეტი arrayref აწყობის დროს მავნე კოდს უშვებს

crates.io-ზე arrayref-ის 0.3.10 ვერსიამ ეჭვმიტანილ პაკეტ proc-macro1-ზე დამოკიდებულება დაამატა, რომლის build სკრიპტი კომპილაციისას დისტანციურ ორობით ფაილს ჩამოტვირთავს და უშვებს. მავნე ვერსიები წაშლილია.

2026 წლის 20 აგვისტოს crates.io-ზე გამოჩნდა პოპულარული Rust პაკეტის arrayref-ის კომპრომეტირებული ვერსია. 0.3.10-მა დაამატა დამოკიდებულება typosquat პაკეტზე proc-macro1, რომლის build სკრიპტი აწყობის დროს დისტანციურ ორობით ფაილს ჩამოტვირთავს და უშვებს. კოდი build-ის დროს მუშაობს, ამიტომ საკმარისია იმ პროექტის კომპილაცია, რომელმაც ცუდი ვერსიები ჩამოიტანა. crates.io-ს გუნდმა მავნე ვერსიები უკვე წაშალა.

რომელი პაკეტები დაზარალდა

ნამდვილი arrayref და append-only-vec პაკეტების ავტორია droundy, რომლის ანგარიში, როგორც ჩანს, კომპრომეტირებულია: მისი GitHub რეპოზიტორიები 404-ს აბრუნებენ. proc-macro1 გამოაქვეყნა ანგარიშმა dtolney, რომლის სახელი ცნობილი dtolnay-ს ჰგავს; მეტამონაცემებში ავტორად David Tolnay არის მითითებული, რეპოზიტორიის მისამართი კი 404-ს იძლევა.

მავნე ვერსიებია: arrayref 0.3.10, internment 0.8.7, append-only-vec 0.1.9, ასევე proc-macro1, proc-macro-en, aovine, arone, aronenao და tinymember. proc-macro1 არ არის ნამდვილი proc-macro2 — მისი კოდი proc-macro2-ის ასლია, ამიტომ აწყობა არ წყდებოდა და ცვლილება ნაკლებად შესამჩნევი იყო.

რას აკეთებს build სკრიპტი

მავნე კოდი proc-macro1 1.0.107-ის build სკრიპტშია. სერვერის მისამართი base64 ფრაგმენტებადაა დაშლილი და აწყობის დროს აღდგება; გაშიფვრის შემდეგ გამოდის hxxps://23.254.165.112:9089/ და სამართავი მისამართი 23.254.165.112:443. სკრიპტი TLS-ით იწერს არქიტექტურაზე მორგებულ ორობით ფაილს სერტიფიკატის შემოწმების გარეშე და აწყობისგან მოწყვეტილად უშვებს: Unix-ზე — /tmp/rust-setup, Windows-ზე — %TEMP%-ში ჩაწერილ PowerShell სკრიპტს VBScript-ის დამხმარით, ფარულ რეჟიმში.

როგორ გავრცელდა

ავტორმა arrayref-ის ძველი გამოცემები 0.3.5-დან 0.3.9-მდე yank-ში გადაიყვანა. Cargo ამის შემდეგ აფრთხილებს მომხმარებელს და მას ერთადერთ არა-yank ვერსიისკენ — მავნე 0.3.10-ისკენ — უბიძგებს; სწორედ ასე მოხვდა მას RustSec-ის რჩევის ავტორი.

arrayref ფართოდ გამოიყენება ტრანზიტულ დამოკიდებულებად და ღრმად ზის tiny-skia, sctk-adwaita და winit-ის გრაფებში, რაც egui, eframe და iced-ზე აგებულ GUI პროექტებს მოიცავს. პაკეტს სულ 245 მილიონამდე ჩამოტვირთვა აქვს, სუფთა 0.3.9-ზე კი დაახლოებით 152 მილიონი მოდის. დაზარალებული ვერსიების SHA256 ჰეშები და ქსელური ინდიკატორები SafeDep-ის ანგარიშშია მოცემული.

SSiTech

SiTech — AI-გაძლიერებული ვებ დეველოპმენტი

ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.