שרתי פרודקשן לא אוהבים הפתעות ביום חמישי בבוקר. חברת Vercel הכריזה בשבוע שעבר מראש על שחרור אבטחה מתוכנן עבור Next.js. אתמול יצאה הודעת האבטחה הרשמית עם שבעה תיקונים בלבד במקום התשעה שתוכננו. הסיבה לא מעודדת: פגיעות קריטית אחת ועוד פגיעות בחומרה גבוהה נדחו בגלל עיכוב בספריית תלות חיצונית.
תיקון חלקי אבל חובה
למרות הדחייה של הרכיב הקריטי, התיקונים שיצאו מחייבים שדרוג מיידי עבור שתי גרסאות נתמכות בלבד: Next.js 16.3.8 בערוץ ה-LTS הפעיל, וגרסה 15.5.27 בערוץ התחזוקה. Vercel מבהירה את המצב שנכפה עליה.
תיקון עבור פגיעות קריטית אחת ופגיעות אחת בחומרה גבוהה נדחה עקב עיכובים בתלות חיצונית.הודעת האבטחה של Next.js
לא הייתי מחכה לעדכון המשלים לפני עדכון המערכת. לפי החברה, יש לעדכן את התלויות כדי לשמור על אבטחת האפליקציות שלכם.
חצי הגנה עדיפה על אפס הגנה.
הסכנה באירוח עצמי
החולשה הבולטת ביותר ברמת חומרה גבוהה שכן נסגרה היא CVE-2026-94483, פגיעות SSRF במנגנון אופטימיזציית התמונות. אם הגדרתם כתובות חיצוניות מורשות תחת remotePatterns, תוקף ששולט בכתובת מורשת יכול היה לנצל את מנוע עיבוד התמונות כדי לשלוח בקשות לטווחי IP פרטיים בתוך הרשת הפנימית שלכם.
צוותי פיתוח ישראליים רבים בונים מוצרי SaaS ומריצים את Next.js באירוח עצמי על גבי שרתי AWS או קונטיינרים של Docker. עבורם, שתי פגיעויות הרעלת המטמון שנחשפו הן כאב ראש ממשי. לפי הודעת האבטחה GHSA-4jqv-mc3x-m676, באפליקציות Pages Router באירוח עצמי עם SSG או ISR, תוקף יכול להחליף מטמון של עמוד בתוכן מנתיב אחר. המערכת תגיש מידע שגוי לכל הגולשים עד לרענון הבא. פרויקטים שמתארחים ישירות על הפלטפורמה של Vercel מוגנים מבעיה זו, אך התקנות עצמאיות נותרו חשופות לגמרי עד השדרוג.
פגיעות מטמון נוספת, CVE-2026-94484, פוגעת בכל אפליקציה שמשלבת נתיב catch-all ברמת השורש יחד עם מנגנוני SSG או ISR. כאן, בקשה אחת בלבד ללא אימות מספיקה כדי להרעיל את המטמון המשותף ולהוביל להחלפת תוכן בין משתמשים שונים או למניעת שירות מתמשכת. בנוסף, באפליקציות App Router שנבנו עם webpack, פגיעות GHSA-f87g-xv8r-7p7x עוקפת את הגדרת dynamicParams בתמונות מטא-דאטה ומאפשרת לתוקף לבקש נתיבים שהוחרגו במפורש.
הדפדפן מרגל אחרי הפיתוח
סכנה נוספת מסתתרת דווקא בתחנת העבודה המקומית. פגיעות CVE-2026-94486 חושפת את שרת הפיתוח המקומי, next dev, באמצעות נקודת קצה של פרוטוקול Model Context Protocol שאינה דורשת אימות ואינה בודקת מהיכן הגיעה הבקשה. אתר זדוני שפתחתם בלשונית מקבילה יכול לתשאל את השרת המקומי ולשאוב את נתיב הפרויקט, קטעי קוד משגיאות, נתיבים ויומנים. סביבות פרודקשן אינן מריצות את נקודת הקצה הזו, אך מחשב הפיתוח שלכם חשוף לחלוטין.
במקביל, מנגנון שמירת המטמון הניסיוני use cache סובל משתי בעיות אבטחה בדרגת חומרה בינונית. הראשונה היא דליפת מפתחות בין פרמטרים של שורש בפונקציות מקוננות. השנייה חמורה יותר: דליפה של תכני טיוטה מתוך Draft Mode אל עמודים שמורים ונגישים לציבור הרחב בגלל שיתוף בקשות ממתינות ללא אימות.
| מזהה פגיעות | רמת חומרה | סביבה מושפעת | תנאי מקדים לפגיעות |
|---|---|---|---|
| CVE-2026-94483 | גבוהה | סביבות שבהן כתובת ברשימה המותרת נמצאת בשליטת תוקף | הגדרת כתובות ב-images.remotePatterns |
| CVE-2026-94543 | בינונית | אירוח עצמי בלבד | שימוש ב-Pages Router עם SSG או ISR |
| CVE-2026-94484 | בינונית | אירוח עצמי וענן | נתיב catch-all ברמת השורש עם SSG או ISR |
| CVE-2026-94485 | בינונית | סביבות App Router | פרויקט שנבנה באמצעות webpack ולא Turbopack |
| GHSA-h694-7cp9-m8p3 | בינונית | אירוח עצמי וענן | הפעלת רכיבי מטמון עם פונקציות 'use cache' מקוננות |
| CVE-2026-94544 | בינונית | אירוח עצמי וענן | הפעלת 'use cache' יחד עם תצוגות מקדימות ב-Draft Mode |
| CVE-2026-94486 | נמוכה | שרת פיתוח בלבד (next dev) | גלישה לאתר צד שלישי בדפדפן בזמן שהשרת המקומי רץ |
מה לבדוק ולעדכן
הצעד הראשון והמיידי הוא הרצת עדכון חבילות בפרויקט שלכם: הריצו npm install [email protected] אם אתם על ערוץ 16, או npm install [email protected] אם אתם מחזיקים פרויקטים בגרסה 15. הקפידו על מספרי הגרסאות המדויקים הללו שכוללים את הפאטצ'ים.
אם אתם מארחים את המערכת באופן עצמאי על שרתי ענן, בדקו מיד את קובץ הקונפיגורציה שלכם. צמצמו את הגדרות remotePatterns בניהול התמונות לדומיינים מהימנים בלבד כדי למנוע בקשות SSRF, וכבו מנגנוני use cache ניסיוניים אם אין לכם צורך דחוף בהם. נשאר רק לחכות לעדכון הבא, שבו נגלה מה התלות שעיכבה את הפגיעה הקריטית.
מקורות
- September 2026 Security Releasehttps://nextjs.org/blog/september-2026-security-release
- GitHub Advisory: CVE-2026-94543 Cache Poisoning in Pages Routerhttps://github.com/vercel/next.js/security/advisories/GHSA-4jqv-mc3x-m676
- **CVE-2026-94483**https://www.cve.org/CVERecord?id=CVE-2026-94483
- **CVE-2026-94484**https://www.cve.org/CVERecord?id=CVE-2026-94484
- **GHSA-f87g-xv8r-7p7x**https://github.com/vercel/next.js/security/advisories/GHSA-f87g-xv8r-7p7x
- Next.jshttps://weba.co.il/tools/next-js/
- Vercelhttps://weba.co.il/tools/vercel/
הידיעה נכתבה מהמקורות שלמעלה בתאריך הפרסום, וכל טענה בה נבדקה מולם. מצאתם טעות? כתבו.