זוהה פגיעות ב- Composer המסכנת את מאגר ה- Packagist PHP

לפני כמה ימים התפרסמה ידיעה כי זוהתה פגיעות קריטית en מנהל התלות של מלחין (CVE-2021-29472) המאפשר לבצע פקודות שרירותיות במערכת בעת עיבוד חבילה עם ערך כתובת URL שנוצר במיוחד הקובע את הכיוון להורדת קוד המקור.

הבעיה מתבטאת ברכיבי GitDriver, SvnDriver ו- HgDriver משמש עם מערכות בקרת Git, Subversion ו- Mercurial. הפגיעות תוקנה בגרסאות Composer 1.10.22 ו- 2.0.13.

במיוחד מושפע במיוחד מאגר חבילות Packagist המוגדר כברירת מחדל, המכיל 306.000 חבילות מפתחים של PHP ומציע יותר מ -1.400 מיליארד הורדות חודשיות.

במערכת האקולוגית של PHP, Composer הוא הכלי העיקרי לניהול והתקנת תלות בתוכנה. צוותי פיתוח ברחבי העולם משתמשים בו כדי להקל על תהליך השדרוג ולהבטיח שאפליקציות פועלות ללא מאמץ בכל הסביבות והגירסאות.

הניסוי הראה שאם היה מידע אודות הבעיה, התוקפים יכולים להשתלט על תשתית Packagist וליירט את אישורי התחזוקה או להפנות את הורדת החבילות לשרת צד שלישי, ולסדר את מסירת גרסאות החבילה עם שינויים. משתמשים זדוניים להחליף דלת אחורית במהלך התקנת התלות.

הסכנה למשתמשי הקצה מוגבלת בשל העובדה כי התוכן של composer.json מוגדר בדרך כלל על ידי המשתמש והקישורים למקור מועברים בעת גישה למאגרי צד שלישי, שלרוב הם אמינים. המכה העיקרית נפלה על מאגר Packagist.org ושירות Packagist הפרטי, המתקשר למלחין עם העברת נתונים שהתקבלו ממשתמשים. התוקפים יכולים להריץ את הקוד שלהם בשרתי Packagist על ידי הטלת חבילה שתוכננה במיוחד.

צוות Packagist פתר את הפגיעות תוך 12 שעות מרגע ההודעה של פגיעות. החוקרים הודיעו באופן פרטי על מפתחי Packagist ב -22 באפריל, והנושא תוקן באותו יום. עדכון מלחין ציבורי עם תיקון לפגיעות פורסם ב 27 באפריל, והפרטים נחשפו ב 28 באפריל. ביקורת ביומני השרתים של Packagist לא העלתה שום פעילות חשודה הקשורה לפגיעות.

שגיאות בהזרקת טיעונים הן סוג מעניין באמת של שגיאות שלעתים קרובות מתעלמים מהן במהלך ביקורות קוד ומתעלמות לחלוטין מאינטראקציות בין קופסאות שחורות.

הבעיה נגרמת על ידי שגיאה בקוד אימות כתובת האתר בקובץ השורש composer.json ובקישורי הורדת המקור. הבאג נמצא בקוד מאז נובמבר 2011. Packagist משתמש בשכבות מיוחדות לניהול הורדות קוד מבלי להיות קשור למערכת בקרת מקור מסוימת, שמבוצעת על ידי קריאה "fromShellCommandline" עם ארגומנטים של שורת פקודה.

לב הבעיה הוא ששיטת ProcessExecutor אפשרה לציין כל פרמטרים נוספים להתקשרות בכתובת האתר. בריחה כזו הייתה חסרה מהנהגים GitDriver.php, SvnDriver.php ו- HgDriver.php. ההתקפה של GitDriver.php נפגעה מכך שהפקודה "git ls-remote" לא תמכה במציאת טיעונים נוספים לאחר הנתיב.

התקפה על HgDriver.php התאפשרה על ידי העברת הפרמטר "–config" לתוכנת "hq", המאפשרת לארגן ביצוע כל פקודה על ידי מניפולציה בתצורת "alias.identify".

על ידי הגשת חבילת בדיקה עם כתובת URL דומה ל- Packagist, החוקרים הבטיחו כי לאחר פרסומה, השרת שלהם קיבל בקשת HTTP מאחד משרתי ה- Packagist ב- AWS שהכילה רשימה של הקבצים בספריה הנוכחית.

יש לציין כי המתחזקים לא זיהו סימנים לניצול קודם של פגיעות זו במקרה הציבורי של החבילה.

לבסוף, אם אתה מעוניין לדעת יותר על כך, תוכל להתייעץ עם הפרטים בקישור הבא.


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי על הנתונים: AB Internet Networks 2008 SL
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.