דייר ב-cluster כותב policy ב-namespace שהוקצה לו, ומשרבב רצף של נקודות לתוך נתיב שהכלל פונה אליו. את הבקשה שיוצאת מבצע ה-ServiceAccount של Kyverno, שרשאי לקרוא בכל ה-cluster. זו CVE-2026-122310 בציון 9.9, אחת מ-21 רשומות שנרשמו ב-NVD ב-5 בנובמבר 2026.

סקירה כללית

Kyverno היא מנוע policy ל-Kubernetes: היא יושבת כ-webhook בנתיב של כל בקשה ל-API של ה-cluster, ומאשרת, חוסמת או משנה אותה לפי כלל שמישהו כתב. חלק מהכללים מוגדרים ברמת ה-namespace, וזו הסיבה שנותנים לדיירים לכתוב כללים לעצמם: ההנחה היא שכלל ב-namespace אחד ישפיע רק עליו.

15 מתוך 21 הרשומות נושאות Scope: Changed, כלומר הנזק לא נשאר ברכיב הפגוע. בקריטיות שבהן המהלך זהה: הכלל מצביע על אובייקט מחוץ ל-namespace, והפעולה מתבצעת בידי controller של Kyverno שהרשאותיו פרושות על ה-cluster כולו. הדייר לא השיג הרשאות חדשות. הוא הפעיל את אלה של Kyverno.

מזהים: 21 רשומות, מהן חמש בציון 9.9: CVE-2026-122303, CVE-2026-122304, CVE-2026-122310, CVE-2026-122311, CVE-2026-122313
סוג: עקיפת הרשאות ויציאה מגבול ה-namespace (בין היתר CWE-862, CWE-22, CWE-436)
מוצר: Kyverno, מנוע policy ל-Kubernetes
גרסאות מושפעות: הכול לפני 1.19.2, והטווח התחתון משתנה בין הרשומות (1.16.0, 1.17.0 או 1.19.1)
גרסה מתוקנת: 1.19.2
ניצול בפועל: לא, אף אחת אינה בקטלוג ה-KEV של CISA

ציר זמן

20 באוקטובר 2026: גרסה 1.19.2 משוחררת, ולפי Nirmata היא מתקנת 26 אזהרות אבטחה, 11 מהן קריטיות.
4 בנובמבר 2026: VulnCheck, ה-CNA שרשם אותן, מפרסמת את האזהרות שלה.
5 בנובמבר 2026: 21 המזהים נרשמים ב-NVD, שבועיים אחרי שהתיקון היה אצל המשתמשים.

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

שני מסלולים חוזרים בגל. הראשון הוא Path Traversal: שדה apiCall בתוך policy מקבל נתיב ל-API, ו-Kyverno מאמתת אותו אחרי ניקוי אבל מריצה את הגולמי. ב-CVE-2026-122310 מספיק להסתיר את רצף ה-../ מאחרי # או ?, כי הספרייה שמבצעת את הבקשה זורקת את מה שבא אחריהם, והנתיב שמגיע לשרת הוא cluster-scoped. ב-CVE-2026-122311 אותו רעיון דרך resource.get() בכללי CEL.

המסלול השני לא נוגע בנתיבים. ב-CVE-2026-122303 וב-CVE-2026-122313 ביטוי CEL בתוך NamespacedMutatingPolicy מחזיר יעד שהתוקף הרכיב, כולל metadata.namespace של מישהו אחר, ואף אחד לא בודק שה-namespace הזה שלו. ה-background controller מקבל את היעד ומשנה אותו. לפי NVD זה מספיק כדי לדרוס Secret-ים ו-policies בכל ה-cluster, או להוסיף את עצמך ל-RoleBinding של דייר שכן.

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

ציון CVSS: 9.9

הרשומה שדורשת מהתוקף הכי פחות קיבלה גם פחות: CVE-2026-122302, שלפי הווקטור שלה לא נדרש חשבון בכלל, עצרה ב-9.8. ההפרש כולו ב-Scope, כי בחמש של 9.9 הרכיב שנכשל הוא Kyverno והרכיב שמשלם הוא ה-cluster שסביבו. את הציונים פרסמה VulnCheck, ול-NVD אין עדיין ניתוח משלה.

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

PoC ציבורי לא פורסם, ו-VulDB רושמת לשתיים מהרשומות שאין exploit זמין. הפירוט הפומבי הטוב ביותר הוא הסקירה של Nirmata על 1.19.2, שמחלקת אותן לקטגוריות ומצביעה על ה-GHSA של כל אחת.

מי שנותן לדיירים לכתוב policies צריך 1.19.2, ולפי Nirmata לשורות 1.17 ו-1.18 אין תיקון. עד שמעדכנים, ההרשאה ששווה לקחת מהם היא create על אותם סוגי policy.