זו הרשימה שהבדיקה רצה מולה. היא פומבית כי הקטלוג שימושי לכם יותר משהוא סוד בשבילנו, וכי מגיע לכם לראות בדיוק מה נבדק לפני שאתם סומכים על תוצאה. מונחים טכניים נשארו באנגלית.
סוכן אחד או נתיב בקשה אחד משלב שלושה דברים: קלט לא מהימן, גישה למידע פרטי ויכולת לתקשר החוצה. כל שניים מהם בדרך כלל בסדר; שלושתם יחד אומרים שמי ששולט בקלט יכול להוציא את המידע.
למה סוכנים עושים את זהסוכנים מחברים כל כלי שגורם לפיצ'ר לעבוד. שום דבר בפרומפט לא מבקש מהם לשים לב שהשילוב עצמו הוא הפרצה, ולכן הם מחברים כלי שקורא מהרשת, לקוח מסד נתונים וקריאת HTTP יוצאת באותו handler בלי להעיר על כך.
מחקר על 31,132 Skills של סוכני AI שפורסמו מצא ש־26.1% מהם הכילו לפחות פרצת אבטחה אחת, כולל prompt injection, הוצאת מידע והסלמת הרשאות.
נקודת קצה מזהה מי הפונה, אבל לא בודקת אם מותר לו לגעת ברשומה הספציפית שביקש. כל משתמש מחובר יכול לקרוא או לשנות מידע של אחרים רק על ידי שינוי מזהה.
למה סוכנים עושים את זהסוכנים מממשים בעקביות את "האם המשתמש מחובר", כי זו דרישה גלויה. "האם למשתמש הזה מותר לגעת בשורה הזו" לא מופיע במפרט של המסלול התקין, אז זה מדולג. והפיצ'ר עדיין עובד מצוין בבדיקות, כי בודקים עם המידע של עצמכם.
קריטיסודות שנכתבו בתוך הקוד
מפתחות API, טוקנים, מחרוזות חיבור או סודות חתימה של webhook שנכתבו ישירות בקוד, בקובץ הגדרות שנשמר ב־git, או בקוד שנשלח לדפדפן.
למה סוכנים עושים את זהכשסוכן צריך ערך כדי שהקוד ירוץ, הדרך הקצרה לקוד עובד היא לכתוב אותו ישירות. סוכנים גם שמים לא פעם מפתח סודי באמת מאחורי קידומת משתנה סביבה שגלויה לדפדפן, כי זה מה שגרם לייבוא לעבוד.
קריטיחבילה מומצאת או עם שם מזויף
הקוד מייבא חבילה שלא קיימת, או ששמה שונה בתו אחד מהחבילה האמיתית. תוקפים רושמים את השמות שסוכנים ממציאים הכי הרבה, ומחכים.
למה סוכנים עושים את זהמודלים יוצרים שמות חבילות סבירים לפי דפוס, לא לפי בדיקה ברשימת החבילות. הייבוא נראה מושלם ונכשל רק בהתקנה. או גרוע מזה, מצליח, כי מישהו כבר רשם את השם המומצא.
גבוהפלט שלא עבר ניקוי (XSS)
תוכן שהמשתמש שולט בו, או תוכן שהמודל יצר, מוצג כ־HTML בלי escaping או ניקוי.
למה סוכנים עושים את זההצגת HTML גולמי היא הדרך של סוכן לגרום לתוכן עשיר להיראות נכון כבר בניסיון הראשון. escaping שובר את התוצאה הנראית, אז הסוכן מסיר אותו.
המחקר של Veracode על אבטחת קוד שנוצר ב־AI (אביב 2026) בדק יותר מ־100 מודלים ומצא ש־86% מהדוגמאות שנוצרו לא התגוננו מפני cross-site scripting.
קלט לא מהימן נכתב ללוגים בלי ניקוי, וכך תוקף יכול לזייף רשומות, לשבור את ניתוח הלוגים או לתקוף את המערכת שקוראת אותם.
למה סוכנים עושים את זהסוכנים מוסיפים הרבה לוגים כדי שיהיה קל לדבג, ומשלבים בהם את הבקשה כמו שהיא, כי זה הדבר הכי שימושי להדפיס.
המחקר של Veracode מאביב 2026 מצא ש־88% מהדוגמאות שנוצרו היו פגיעות להזרקה ללוגים.
קלט משתמש שמשורשר ל־SQL, לבונה שאילתות גולמי או לאובייקט סינון של NoSQL.
למה סוכנים עושים את זהסוכנים פונים לשרשור מחרוזות כשהשאילתה צריכה להיות דינמית: שם טבלה משתנה, סינון אופציונלי או עמודת מיון, כי קשירת פרמטרים לא מכסה את המקרים האלה בצורה נקייה.
גבוהCORS, RLS או הרשאות אחסון פתוחים לגמרי
גבול גישה שהוגדר לאפשר הכול: `Access-Control-Allow-Origin: *` בנתיב עם פרטי התחברות, מדיניות שורות `USING (true)`, או bucket ציבורי שמכיל קבצים פרטיים.
למה סוכנים עושים את זהשגיאת הרשאות היא הבאג שהכי מהר להעלים, וההגדרה הכי רחבה תמיד מעלימה אותו. הפיצ'ר עובד, אז אף אחד לא חוזר לשינוי.
גבוהנקודת קצה יקרה בלי מכסה
נתיב שעולה כסף אמיתי או משאבי מחשוב בכל קריאה, כמו הסקה של מודל, מייל, SMS, יצירת תמונות או ייצוא, ונגיש בלי תקציב לכל משתמש.
למה סוכנים עושים את זההגבלת קצב אף פעם לא חלק מבקשת הפיצ'ר, והיעדרה לא נראה עד שמגיע החשבון. סוכנים בונים את היכולת, לא את הבלם.
בלוק catch שמחזיר תשובה של הצלחה, מערך ריק או ערך ברירת מחדל, כך שכשל אמיתי נראה בדיוק כמו תוצאה ריקה לגיטימית.
למה סוכנים עושים את זהסוכנים מכוונים לקוד שרץ בלי לקרוס. החזרת ברירת מחדל בטוחה משיגה את זה, ומסתירה בדיוק את הכשלים שהכי חשוב לראות.
גבוהקוד זמני או mock שנשאר בקוד שעלה לאוויר
נתוני דוגמה, פונקציה ריקה, "הצלחה" קבועה או TODO שיושבים בקוד שרץ עכשיו בפרודקשן.
למה סוכנים עושים את זהסוכנים בונים שלד עם ערכים זמניים כדי שהקוד יתקמפל והממשק יוצג, ואז בונים את השכבה הבאה מעליו. השלד נראה שגוי רק אם חוזרים ומסתכלים.
גבוהנתיב או הפניה שלא נבדקו
שם קובץ, חלק מנתיב או יעד הפניה שנלקחים מהקלט ומשמשים בלי נרמול, ומאפשרים יציאה עם `../` או הפניה פתוחה לאתר של תוקף.
למה סוכנים עושים את זההסוכן מממש את המקרה השימושי (להביא את הקובץ שהמשתמש ביקש, להחזיר אותו למקום שממנו הגיע) ומתייחס לקלט כנתון ולא כיכולת.
בינוניאבטחה שהלכה לאיבוד בין סבבים
בדיקה שהייתה בגרסה קודמת נעלמה אחרי כמה סבבים של "תתקן את זה": הוולידציה, סינון הבעלות או ה־escaping נמחקו תוך כדי פתרון באג אחר.
למה סוכנים עושים את זהכל סבב כותב מחדש לפי המטרה שמולו. הגנות שנוספו קודם הן לא חלק מההוראה הנוכחית, אז הן נעלמות בריפקטור בלי שאף אחד שם לב.
ניתוח שפורסם ב־2026 על יצירת קוד איטרטיבית ב־AI מצא שהאבטחה נחלשת לאורך סבבי שיפור עוקבים, במקום להשתפר.