חבילות Laravel Lang נחטפו: תגיות Composer הצביעו על קוד שגונב סיסמאות
ב-22 וב-23 במאי 2026 שכתב תוקף מאות תגיות של ארבע חבילות Laravel Lang ב-Composer, כך שיביאו קוד זדוני. לפי חוקרי אבטחה, הקוד גונב מפתחות ענן, סודות CI וסיסמאות.
TL;DR בקצרה
- לפי StepSecurity, תוקף עם הרשאת כתיבה לארגון הצביע מחדש כל תג קיים בארבע חבילות Laravel Lang לקוד זדוני, בין 22:32 UTC ב-22 במאי ל-00:00 UTC ב-23 במאי.
- לא פורסמה גרסה חדשה, ולכן מספר הגרסה נראה לגיטימי. מספרי הגרסאות הפגועות משתנים בין Aikido, Socket ו-StepSecurity.
- הקוד מוריד גנב סיסמאות מ-flipboxstudio.info, וגונב מפתחות ענן, סודות CI, מפתחות SSH וקבצי env.
- מי שהתקין או עדכן בחלון הזה צריך להחליף סודות, ולבדוק את composer.lock ואת התיקייה laravel_locale.
לפי StepSecurity, תוקפים השתלטו ב-22 במאי 2026 על חבילות Laravel Lang ב-Composer. הם לא פרסמו גרסאות חדשות. הם שכתבו תגיות קיימות כך שיצביעו על קוד שגונב סיסמאות ומפתחות. מי שהתקין או עדכן את החבילות בחלון הזמן הזה צריך להניח שהסודות שלו בסכנה.
איך פרצו ל-Laravel Lang בלי להעלות גרסה חדשה
Laravel Lang היא קבוצת חבילות תרגום של צד שלישי. הן לא חלק מ-Laravel הרשמית. לפי Aikido, החבילה הראשית laravel-lang/lang זכתה ל-7,800 כוכבים ב-GitHub.
לפי StepSecurity, תוקף עם הרשאת כתיבה לארגון דחף בכוח כל תג קיים אל קומיט זדוני חדש. הפעילות נמשכה מ-22:32 UTC ב-22 במאי עד 00:00 UTC ב-23 במאי. השינוי חל על כל 502 התגיות של laravel-lang/lang ועל כל 86 התגיות של attributes. הוא חל גם על כל 46 התגיות של actions ועל התגיות של http-statuses עד גרסה 3.4.5.
הקומיטים משנים רק שני קבצים, composer.json ו-src/helpers.php. הם לא מופיעים באף ענף. לכן מי שהתקין חבילה לפי מספר התג, למשל דרך composer update, קיבל את הקוד הזדוני.
הספירה משתנה בין החוקרים. Aikido מדווחת על 233 גרסאות פגועות בשלוש חבילות. Socket מדברת על כ-700 גרסאות היסטוריות. StepSecurity נתנה ספירה לפי תגיות.
מה עושה הקוד הזדוני וממה הוא גונב
הקוד ב-helpers.php נטען דרך autoload.files, ולכן הוא רץ בכל פעם שהאפליקציה טוענת את Composer. לפי Socket, זה קורה בכל בקשת PHP. הקוד מוריד שלב שני מהדומיין flipboxstudio.info, שמחקה את flipboxstudio.com. הוא מכבה בדיקת TLS ומריץ את השלב השני ברקע. ב-Windows הוא משתמש בסקריפט VBS.
לפי Aikido, השלב השני הוא גנב סיסמאות ב-PHP באורך של כ-5,900 שורות. הוא אוסף מפתחות ענן של AWS, GCP ו-Azure. הוא אוסף גם סודות Kubernetes ו-Vault, הגדרות Docker, מפתחות SSH ופרטי Git. מעבר לכך הוא לוקח קבצי env, סיסמאות שמורות בדפדפן, ארנקי קריפטו ותצורות VPN. הגנב מצפין את הנתונים, מעביר אותם ל-flipboxstudio.info ומוחק את עצמו.
לפי Socket, ב-Windows יש גם רכיב שעוקף את הצפנת הסיסמאות של Chrome. Packagist הסירה את הגרסאות הזדוניות והסתירה זמנית את החבילות, לפי Aikido.
מה עושים אם השתמשתם ב-Laravel Lang
StepSecurity ממליצה לעצור הרצה של composer update על החבילות האלה. צריך לבדוק ב-composer.lock אם יש כתובות קומיט מזויפות, או אם הקובץ נוצר מחדש אחרי 22:32 UTC ב-22 במאי. כדאי לחפש תעבורה יוצאת אל flipboxstudio.info ולחסום אותה. עקבות במחשב הם תיקייה בשם laravel_locale בתיקיית הזמניים, ותהליכי php או cscript שרצים ברקע.
Socket ממליצה להתייחס למערכת כנפרצת, לא רק חשופה. יש להחליף את כל הסודות שהיו זמינים למארחים, לקונטיינרים, ל-CI ולמחשבי המפתחים. הרשימה כוללת ענן, Kubernetes, Vault, Git, SSH, מסדי נתונים ומפתחות API. היא כוללת גם את APP_KEY של Laravel. כשאפשר, כדאי לבנות מחדש מתמונות נקיות ולשמור יומנים לפני הניקוי.
מה זה אומר עבורכם
- בדקו את composer.lock: חפשו את ארבע החבילות של laravel-lang, והשוו את הקומיטים. עצרו composer update עליהן עד שתאשרו שהקוד נקי.
- חסמו את flipboxstudio.info: חפשו בשרתים וב-CI בקשות אליו ותיקייה בשם laravel_locale.
- החליפו סודות: מפתחות ענן, אסימוני CI, SSH, מסדי נתונים ו-APP_KEY, מכל מערכת שהתקינה את החבילות.
- בנו מחדש: אם הגרסה הזדונית רצה, בנו את המארח או הקונטיינר מחדש מתמונה נקייה.
מקורות והרחבה
- Laravel-Lang Composer Supply Chain AttackStepSecurity
- Supply chain attack targets Laravel Lang packages with credential stealerAikido
- Laravel Lang compromiseSocket
הכתבה נכתבה במקור בעברית על ידי מערכת GEEKLIK, על בסיס המקורות שלמעלה ובדיקת העובדות מולם.
מצאתם טעות? דווחו לנו