חזרה

גניבת טוקן GitHub בקליק אחד דרך באג ב-VSCode
SiTech AI Team2 דק׳ קריאה

גניבת טוקן GitHub בקליק אחד דרך באג ב-VSCode

חוקר אבטחה תיעד תקיפה שבה קליק אחד על קישור גונב טוקן GitHub עם הרשאת קריאה וכתיבה למאגרים של הקורבן, כולל פרטיים, דרך הגרסה הדפדפנית של VSCode; מיקרוסופט פרסמה תיקונים ב-3 ביוני.

חוקר אבטחה פרסם פרטים על תקיפה שבה קליק אחד על קישור מספיק כדי לגנוב טוקן גישה ל-GitHub — כזה שמאפשר קריאה וכתיבה במאגרים של הקורבן, כולל מאגרים פרטיים — באמצעות באג בגרסה הדפדפנית של Visual Studio Code. הפרסום הופיע בבלוג של החוקר ובמעקב הבאגים של VSCode ב-2 ביוני.

הבאג בארגז החול

היעד הוא github.dev, העורך הדפדפני של GitHub: פתיחת מאגר כלשהו שם מעניקה לאפליקציית הרשת טוקן OAuth ש-github.com שולח אל github.dev. הטוקן אינו מוגבל למאגר שפתחתם, ולכן הוא מקנה גישה לכל מאגר אחר שהמשתמש המחובר רשאי להגיע אליו. בדרך כלל VSCode מחזיק קוד שרץ בתוך ה-webview שלו — תצוגה מקדימה של Markdown, מחברות Jupyter — בתוך iframe ממקור אחר, מבודד מהעורך הראשי. הבאג הוא שה-webview מעבירים אירועי מקלדת לחלון האב דרך ממשק העברת ההודעות של VSCode, כך שסקריפט שרץ ב-webview לא מהימן יכול לזייף לחיצות מקלדת שהעורך מתייחס אליהן כשל המשתמש.

מתא במחברת ועד טוקן גנוב

ההוכחה לדוגמה דורשת רק מאגר שמכיל מחברת Jupyter ו"הרחבת מרחב עבודה מקומית". תא Markdown שתג התמונה שלו מריץ JavaScript דרך מטפל onerror מתחיל את השרשרת: הסקריפט ממתין להתראה של VSCode על הרחבות מומלצות, שולח Ctrl+Shift+A כדי לאשר את פעולתה הראשית ומתקין את ההרחבה המקומית — מסלול שעוקף את בקשת אמון המפרסם מפני שמרחב העבודה עצמו נחשב מהימן. לאחר מכן ההרחבה מוסיפה צירוף מקשים משלה שקורא לפקודה להתקין הרחבה נבחרת מהחנות תוך דילוג על בדיקת המפרסם; ההרחבה המותקנת קוראת את הטוקן של GitHub ופונה אל api.github.com/user/repos, ומציגה את המאגרים הפרטיים שהטוקן מגיע אליהם. אותו באג קיים גם בגרסת שולחן העבודה של VSCode, אך ניצולו קשה יותר: הקורבן צריך לשכפל את המאגר ולפתוח את המחברת, ובשילוב עם XSS ב-webview מדובר כבר בהרצת קוד מרחוק.

תיקונים ועצות למשתמשים

ב-3 ביוני מיקרוסופט פרסמה תיקון זמני: נוסף שלב אישור בפתיחת מחברות בעורך הדפדפני, ופקודות אינן יכולות עוד לדלג על אמון המפרסם. באותו יום פורסם תיקון מלא יותר שמונע את זליגתם של אירועי keydown מה-webview של המחברות. משתמשים שמעולם לא פתחו את github.dev מתבקשים למחוק את קובצי ה-cookie ונתוני האתר שלו — לאחר דיאלוג ההתחברות הראשוני, מציין החוקר, אין טוקני CSRF שמגנים על העורך, ולכן כל קישור באינטרנט יכול להפנות את הדפדפן אל תוך התקיפה. המחבר מזכה את הגנת העומק של VSCode — מדיניות אבטחת תוכן קפדנית וניקוי Markdown — בהגבלת הנזק, ומסביר את ההחלטה לפרסם בגלוי לאחר שדיווח קודם תוקן בשקט וללא קרדיט.

SiTech

SiTech — פיתוח אתרים בכוח ה-AI

אנחנו בונים אתרים מהירים ומודרניים ומשלבים AI בתהליכי עבודה אמיתיים. יש לכם פרויקט או שאלה? נשמח לעזור.