מי שמתחזק אוטומציות אבטחה מכיר את הרגע שבו סקריפט מתרסק בגלל שגיאת 404 תמימה. לפי ההודעה של GitHub, התנהגות המערכת משתנה מעכשיו בכל הנוגע להתראות שנמשכו חזרה. כלי הניהול Dependabot מסיר התראות כאשר דיווח הפגיעות המקורי בוטל, אך עד כה המערכת החזירה שגיאת 404 רגילה, בדיוק כמו במקרה שבו נשלח מזהה שגוי. עכשיו, קריאות שרת להתראה שבוטלה מחזירות קוד HTTP 410 Gone, ולצד זה נוספה פעולה ייעודית למערך ההודעות החיצוני.
השינוי הזה נוגע ישירות למי שבונה אינטגרציות CI/CD או מושך נתונים ישירות לדשבורדים. אם אתם עובדים מול ה-API של GitHub, הקוד שלכם יצטרך ללמוד לזהות את ההבדל.
הגיע הזמן.
סוף למעקפים בקוד הפנימי
עד היום, כשתשתית סריקה ביטלה Advisory שגוי, ההתראה נמחקה בשקט. סקריפטים שניסו לגשת אליה כדי לעדכן סטטוס קיבלו 404 Not Found, מה שהפעיל מנגנוני retry מיותרים והקפיץ התראות שווא על תקלות תקשורת. צוותי פיתוח נאלצו לכתוב מנגנוני מעקף מורכבים רק כדי לבדוק אם ההתראה באמת נעלמה או שמדובר בשגיאת שרת.
קריאות REST API לקבלת או עדכון התראה שבוטלה מחזירות מעתה קוד שגיאה HTTP 410 Gone במקום 404 Not Found, כדי להבדיל בין התראה שנמחקה לכזו שמעולם לא הייתה קיימת. כך מוגדר השינוי בתיעוד. בנוסף, לאירוע dependabot_alert נוספה פעולה חדשה בשם withdrawn, הנשלחת אוטומטית למי שכבר מנוי על האירוע.
ההבדל בין לא קיים לנמחק
ברמת פרוטוקול ה-HTTP, ההבדל בין 404 ל-410 אינו סמנטי בלבד אלא התנהגותי. קוד 404 מעיד שהמשאב לא נמצא כרגע, ולכן מערכות רבות מניחות שמדובר בשגיאת ניתוב רגעית או במזהה לא תקף. לעומת זאת, 410 Gone מצהיר שהמשאב היה קיים בעבר והוסר לצמיתות. עבור מערכות ניהול פגיעויות, התגובה הזו מאפשרת לסגור כרטיסים פנימיים בשקט ולמחוק רישומים ישנים, במקום להפיל את תהליך הריצה או לדרוש התערבות ידנית של מפתח.
בישראל, חברות שמפתחות כלי תשתית ו-DevOps וצורכות התראות ישירות מ-GitHub, כמו Port או Coralogix, נאלצו בעבר להחזיק לוגיקה ייעודית כדי לנסות לנחש מדוע התראה נעלמה. המעקפים הללו הופכים כעת למיותרים. מה שבאמת מעניין כאן הוא שקוד 410 מעניק ודאות מלאה שהמערכת קיבלה את הפנייה אך הפגיעות בוטלה רשמית.
עם זאת, בדוקומנטציה של REST API endpoints for Dependabot alerts לא מצוין האם גוף התשובה בקוד 410 מכיל מטא-דאטה נוסף כמו סיבת הביטול, או שמדובר בתגובה ריקה בלבד. כמו כן, לא מובהר אם התראות שנמחקו לפני 13 באוקטובר 2026 יחזירו רטרואקטיבית 410 או ימשיכו להחזיר 404. לא הייתי ממהר למחוק את כל מנגנוני הגיבוי הישנים לפני בדיקה מעשית של התגובות ההיסטוריות בסביבת הבדיקות.
מטען המידע ב-Webhook החדש
התוספת של פעולת withdrawn לאירוע dependabot_alert webhook פותרת נקודת תורפה מרכזית בתהליכי אוטומציה. בעבר, כשהתראה בוטלה, לא נשלח שום אירוע מקדים, והמערכות גילו את ההיעלמות רק בדיעבד כשפנו ישירות אל השרת ונכשלו.
ה-payload של הפעולה החדשה כולל את כל נתוני הזיהוי של ההתראה כפי שנשמרו רגע לפני המחיקה. המידע מכיל את מספר ההתראה, מזהי GHSA ו-CVE, שם החבילה ונתיב קובץ התלויות. המידע הזה מספק לאוטומציות את מה שדרוש כדי לזהות במדויק איזה רכיב שוחרר מהאזהרה ולעדכן את בסיסי הנתונים הפנימיים ללא צורך בשאילתות נוספות, מה שמונע ריצות רקע מיותרות.
זמין לכולם אבל יש אותיות קטנות
בניגוד לתכונות אבטחה רבות אחרות, השינוי הזה פתוח לכל המאגרים ב-github.com ואינו דורש רישוי בתשלום של GitHub Advanced Security. הוא זמין מידית לכל חשבון ציבורי ופרטי.
ההסתייגות נוגעת למי שמנהל שרתים מקומיים: משתמשי GitHub Enterprise Server יקבלו את התכונה רק החל מגרסה 3.24. בנוסף, מי שמפעיל שרתי וובהוק המשתמשים בבדיקת טיפוסים קשיחה או הצהרות switch-case ללא ענף ברירת מחדל, עלול לגלות שהאירוע החדש מפיל את המאזין. כדאי לבדוק את הקוד לפני שהאירוע הבא יגיע לייצור.
הבדיקה הזו תיקח לכם חמש דקות.
| פרמטר | לפני העדכון | אחרי העדכון |
|---|---|---|
| קוד תגובה בפנייה ישירה להתראה שבוטלה | HTTP 404 Not Found | HTTP 410 Gone |
| אירוע Webhook בעת מחיקה בעקבות ביטול | אין אירוע ייעודי | פעולת withdrawn באירוע dependabot_alert |
| זמינות מזהי ההתראה (CVE, GHSA) בעת המחיקה | לא זמין (המשאב פשוט נעלם) | כלול במטען הנתונים של ה-webhook |
| תמיכה ב-GitHub Enterprise Server | התנהגות ברירת מחדל ישנה | החל מגרסה 3.24 |
מקורות
- Improved detection for withdrawn Dependabot alertshttps://github.blog/changelog/2026-10-13-improved-detection-for-withdrawn-dependabot-alerts
- npm staged publishing now supports creating new packages - GitHub Changeloghttps://github.blog/changelog/2026-10-02-npm-staged-publishing-now-supports-creating-new-packages
- New fields for SecurityAdvisory GraphQL API - GitHub Changeloghttps://github.blog/changelog/2026-10-02-new-fields-for-securityadvisory-graphql-api
- Repository security advisory comments API in public preview - GitHub Changeloghttps://github.blog/changelog/2026-10-02-repository-security-advisory-comments-api-in-public-preview
- `dependabot_alert` webhook eventhttps://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert
- REST API endpoints for Dependabot alertshttps://docs.github.com/rest/dependabot/alerts
- Dependabothttps://weba.co.il/tools/dependabot/
- GitHubhttps://weba.co.il/tools/github/
הידיעה נכתבה מהמקורות שלמעלה בתאריך הפרסום, וכל טענה בה נבדקה מולם. מצאתם טעות? כתבו.