
LuaRocks.org חשפה פרצת RCE: מסד הנתונים וכל האישורים נחשפו
LuaRocks.org הודיעה כי פרצת הרצת קוד מרחוק באתר שלה נוצלה מספר פעמים בין 9 ביולי ל-20 באוגוסט 2026. האתר הועבר לשרת חדש, וכל מפתחות ה-API, הסשנים וסודות ה-2FA בוטלו.
LuaRocks.org, מאגר החבילות של שפת התכנות Lua, הודיעה כי פרצת הרצת קוד מרחוק (RCE) באתר שלה נוצלה מספר פעמים בין 9 ביולי ל-20 באוגוסט 2026. הדיווח התקבל ב-25 בספטמבר בתיאום עם CISA, והפרצה תוקנה ב-26 בספטמבר.
מכיוון שלמתקיף הייתה יכולת הרצת קוד על השרת, כל מה שהיה נגיש לאותו שרת נחשב חשוף. האתר הועבר לשרת חדש שנבנה מאפס, כל פרטי ההזדהות שהחזיק השרת הישן בוטלו והוחלפו. לא נמצאו ראיות לכך שחבילות קיימות שונו.
מה כדאי לעשות
כל מפתחות ה-API והסשנים בוטלו, ולכן נדרש מפתח חדש כדי להעלות חבילות ויש להתחבר מחדש. הסיסמאות נשמרות כ-hashes של bcrypt: קשה לפצח אותן, אך יש להתייחס אליהן כאל חשופות, לכן יש להחליף את הסיסמה בכל מקום שבו נעשה בה שימוש חוזר. גם סודות ה-2FA נחשפו והוסרו, ולכן יש להגדיר אימות דו-שלבי מחדש.
הצוות ממליץ לשדרג ל-LuaRocks 3.12 ואילך, במיוחד בסביבת LuaJIT או Lua 5.1: גרסאות ישנות יותר יריצו bytecode מכומפל מראש אם שרת ישלח אותו במקום rockspec או manifest. החבילות bcrcewon, 7e0b94029db0 ו-7e0b9402f9c8, שהועלו על ידי התוקף ב-7 באוגוסט, הוסרו; מי שהתקין אותן צריך להתייחס לאותה מכונה כאל פגיעה.
איך עבדה הפרצה
קובץ rockspec הוא קובץ Lua, ו-LuaRocks.org מריץ אותו בסביבה מוגבלת כדי לקרוא את שם החבילה והגרסה שלה. פונקציית הטעינה קיבלה גם bytecode מכומפל מראש של LuaJIT וגם קוד מקור של Lua. LuaJIT אינו מאמת bytecode, ולכן קובץ שנבנה בכוונה יכול היה לקרוא ולכתוב לזיכרון מחוץ לסביבה המוגבלת ולהריץ קוד שרירותי בתוך שרת האינטרנט. כל משתמש רשום יכול היה להפעיל זאת על ידי העלאת rockspec; התיקון טוען rockspec כטקסט בלבד ודוחה bytecode.
מה קרה
הפרויקט איתר שלושה חשבונות שנוצרו למטרה זו. ב-9 ביולי הורצו פקודות shell בשרת דרך העלאות זדוניות. ב-7 באוגוסט הן הורצו שוב, ופורסמו שלוש חבילות זדוניות. ב-16 וב-20 באוגוסט הגיעו כמה מאות ניסיונות אוטומטיים דרך API ההעלאה, תוך שימוש חוזר במטענים שפורסמו. לחשבון של שרת האינטרנט הייתה גישה מנהלית מלאה, ולכן הצוות מניח שהתוקף יכול היה לקרוא הכול, כולל מסד הנתונים כולו.
בין הנתונים שנחשפו: שמות משתמשים, כתובות דואר אלקטרוני ו-hashes של סיסמאות, מפתחות API, סודות 2FA, רשומות סשן עם כתובות IP ופרטי דפדפן, וטוקנים של קישור חשבונות GitHub עם גישה לפרופיל ולכתובת הדואר בלבד. הפרויקט מתחזק מראה git יומית של כל החבילות: השוואה מול העותק מ-8 ביולי ומול מסד הנתונים הראתה שכל הבדל הוסבר בהעלאה, העתקה או מחיקה רגילות, ורק ב-rockspec של התוקף נמצא bytecode. הפרויקט תיקן את הפגיעוּת, הסיר את חבילות התוקף מהאתר ומכל המראות וביטל את כל פרטי ההזדהות. נותרת מגבלה אחת: חבילה שנמחקה על ידי התוקף אינה ניתנת להבחנה מזו שנמחקה על ידי בעליה.
SiTech — פיתוח אתרים בכוח ה-AI
אנחנו בונים אתרים מהירים ומודרניים ומשלבים AI בתהליכי עבודה אמיתיים. יש לכם פרויקט או שאלה? נשמח לעזור.