ההתראה שהגיעה לחוקרים נראתה שגרתית לגמרי: סוכן קוד על מחשב של לקוח ניסה להתקין חבילת npm בשם function-color, חבילה זדונית מקמפיין שרץ מתחת לרדאר כשנתיים עד שנחשף. מה שלא היה שגרתי זה מאיפה באה ההוראה. לא מקובץ התלויות של הפרויקט ולא ממאגר קוד, אלא מתיקיית ההורדות של המשתמש.

מה קרה

בתיקייה הזאת היה קובץ בשם AGENTS.md. קובץ כזה הוא טקסט פשוט שבו מפתחים כותבים לעוזר ה-AI שלהם איך לעבוד על הפרויקט: באילו כלים להשתמש, איך להריץ בדיקות, מה מוסכמות הקוד. סוכן כמו Codex של OpenAI או Claude Code קורא אותו אוטומטית כשהוא נפתח בתיקייה, ומתייחס לתוכן כהוראות שקיבל מהמשתמש. מי שמשתיל שם קובץ כזה כותב בפועל את ההוראות במקומכם.

החוקרים ב-Forever Security, שפרסמו את המחקר ב-22 באוקטובר, לא הצליחו לקבוע איך הקובץ הגיע לאותו מחשב, אבל הסבירו ל-BleepingComputer מה מספיק: ביקור בעמוד אינטרנט אחד. דפדפן יכול לשמור קובץ לתיקיית ההורדות בלי שתלחצו על כלום, והעמוד הוא זה שבוחר גם את שם הקובץ וגם את תוכנו. כרום, Edge ופיירפוקס שומרים לשם כברירת מחדל. BleepingComputer בדק את ההדגמה שהחוקרים בנו ואישר שהיא אכן הורידה לו קובץ AGENTS.md, עם תוכן לא מזיק.

בניסויים שלהם הם שחזרו את השרשרת מול Codex עם מטען שרק פתח את המחשבון, והצליחו ב-90 אחוז מהפעמים. בניסוי נפרד הם השתילו קובץ CLAUDE.md שהפנה את תעבורת ה-API של Claude Code לשרת שבשליטתם, מה שחשף את ה-token של הסוכן ואפשר לשרת להתחזות למודל ולהחזיר פקודות שהורצו בפועל בכמחצית מהניסיונות. את המספרים האלה פרסמה החברה עצמה, ואף גורם חיצוני לא אימת אותם.

המשפט החשוב במחקר אינו מספר. “אין כאן שום דבר ש-OpenAI או Anthropic יכולים לתקן”, כתבו החוקרים, “סוכן שעוקב אחרי ה-AGENTS.md שבתיקייה שלו עושה בדיוק את מה שנבנה לעשות”. הבעיה אינה באג אלא צירוף: תיקייה שהאינטרנט יכול לכתוב אליה בעצמו, וכלי שמתייחס לכל מה שמונח בה כאילו אתם שמתם אותו שם.

למה זה חשוב לכם

לפי הנתונים הפנימיים שהחברה מסרה, מאות מלקוחותיה מריצים סוכני קוד מתוך תיקיית ההורדות, ו-Claude Code לבדו נפתח משם ביותר מ-1,300 הפעלות. זה נשמע מוזר עד שחושבים למה: אנשים מפעילים סוכן בתיקיית ההורדות בדיוק כדי לסדר אותה, או כדי לעשות משהו עם קובץ שהרגע ירד.

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

מה עושים?

אם אתם מריצים סוכן קוד, הפעילו אותו מתוך תיקיית הפרויקט ולא מתוך תיקיית ההורדות או תיקיית הבית. זו ההמלצה הרשמית של OpenAI ושל Anthropic, והיא גם מה שמגדיר לסוכן את גבולות העבודה.

לפני שאתם נותנים לסוכן לעבוד בתיקייה חדשה, פתחו בעצמכם כל AGENTS.md או CLAUDE.md שיש בה וקראו מה כתוב שם. זה טקסט, וזה לוקח חצי דקה.

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

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

קובץ markdown הוא עדיין רק טקסט. מה שהשתנה זה מי קורא אותו, וכמה הרשאות יש לקורא.