ביולי תוקנה ב-TeamCity חולשה שאיפשרה להריץ קוד על שרת הבנייה בלי שם משתמש ובלי סיסמה, ותשעה ימים אחר כך היא נכנסה לקטלוג החולשות שתוקפים מנצלים בפועל. ב-15 באוקטובר 2026 פורסמה CVE-2026-111094, ושוב הרצת קוד מרחוק, שוב באותו סיווג כשל, ושוב בערוץ שבין סוכני הבנייה ובין השרת. NVD נותנת לה 9.8, ו-JetBrains נותנת 8.1.

סקירה כללית

TeamCity הוא שרת CI/CD, המכונה שמקבלת את הקוד שמפתחים דוחפים ומריצה עליו בנייה ובדיקות. בשביל זה הוא מחזיק את פרטי האימות לכל מה שהוא נוגע בו, ממאגרי הקוד ועד שרתי ההפצה, ולכן הרצת קוד עליו אינה סוף השרשרת אלא תחילתה.

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

ושווה לומר מה לא פורסם: JetBrains מסרה משפט אחד ולא יותר, אין ניתוח עצמאי, והקריאה הזאת נשענת על סיווג ה-CWE שהיצרן מסר. מסדי נתונים אחרים חולקים עליו ומסמנים בעיה באימות קלט.

מזהה: CVE-2026-111094
סוג: הרצת קוד מרחוק דרך deserialization של נתונים לא מאומתים (CWE-502)
מוצר: JetBrains TeamCity
גרסאות מושפעות: כל מה שלפני 2025.11.8, וגם 2026.1 עד 2026.1.4 (לא כולל)
גרסה מתוקנת: 2026.2, 2026.1.4, 2025.11.8
ניצול בפועל: לא, אינה ברשימת ה-KEV של CISA

ציר זמן

27 ביולי 2026: פרסום CVE-2026-63077, הרצת קוד ללא אימות דרך פרוטוקול תשאול הסוכנים, גם היא CWE-502. תוקנה ב-2026.1.3 וב-2025.11.7.
5 באוגוסט 2026: אותה חולשה נכנסת לקטלוג ה-KEV של CISA.
15 באוקטובר 2026: CVE-2026-111094 מתפרסמת, לצד CVE-2026-111095 שתוקנה באותה גרסה.
16 באוקטובר 2026: הרשומה ב-NVD עוברת למצב Analyzed עם ציון 9.8, מול 8.1 של JetBrains.

איך הניצול עובד

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

ניתוח ציון ה-CVSS

ציון CVSS: 9.8

שני הווקטורים זהים בכל מטריקה חוץ ממידת הקושי של התקיפה: היצרן סימן אותה כקשה, NVD כקלה, וההבדל האחד שווה 1.7 נקודות. באותה גרסה קרה גם ההפוך, כש-JetBrains נתנה ל-XSS שתוקן איתה 8.0 ו-NVD הורידה אותו ל-5.4.

איפה למצוא Proof of Concept (PoC)

אין PoC פומבי לחולשה הזאת, וגם לא ניתוח טכני עצמאי. מאגרי ה-PoC הציבוריים אינם מחזירים עליה כלום, והפרטים היחידים הם אלה שבדף החולשות המתוקנות של JetBrains. מה שכן מתועד הוא המקרה שבו חולשה מאותה משפחה נוצלה, הפריצה לשירות Cadence, ושם השרת שלא עודכן היה של JetBrains עצמה.

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