אתרים שבנויים על Craft CMS יכולים לאפשר לתוקף להריץ קוד על השרת, אבל רק אם הגדרה אחת ב-PHP דלוקה אצלם. הציון הוא 9.3 מתוך 10 בסולם CVSS 4.0, ומיוני 2025 החולשה רשומה כמנוצלת בפועל. הגרסאות שסוגרות אותה הן 3.9.14, 4.13.2 ו-5.5.2.
מה החולשה?
Craft הוא מערכת לניהול תוכן, כלומר התוכנה שמריצה את האתר ומאפשרת למי שמתחזק אותו לערוך עמודים בלי לגעת בקוד. החולשה כאן תלויה בהגדרה של PHP בשם register_argc_argv: כשהיא דלוקה, PHP מעמיד לקוד של האתר משתנים שנועדו במקור לתוכניות שרצות משורת הפקודה, ומזין לתוכם ערכים שמגיעים מהבקשה של הגולש. קוד שקורא את המשתנים האלה בהנחה שהם באו מהמפעיל, ולא מהאינטרנט, מקבל בלי לדעת קלט של תוקף.
מכאן הדרך מגיעה להרצת קוד. את הווקטור המדויק ההודעה של Craft אינה מפרסמת, והיא מציינת אותו במפורש כלא מפורט, כך שאין כאן מה לנתח מעבר לזה. מה שכן ברור הוא התנאי, ומה שסוגר את הבעיה.
הציון 9.3 חושב בסולם CVSS 4.0 ומתאר תקיפה מהרשת, בלי הרשאות מוקדמות ובלי מעורבות של אף אחד בצד השני, עם השפעה גבוהה על סודיות המידע, על שלמותו ועל הזמינות.
מי מושפע?
לפי הרשומה, Craft CMS בגרסאות 3.0.0 עד 3.9.14, 4.0.0 עד 4.13.2 ו-5.0.0 עד 5.5.2. שלושת הענפים מופיעים במקביל, ולכן אין כאן ענף אחד מיושן שאפשר לפטור.
התנאי השני חשוב לא פחות: register_argc_argv צריכה להיות דלוקה בקובץ ה-php.ini של השרת. אתר שרץ בגרסה חשופה אבל ההגדרה כבויה אצלו אינו חשוף לחולשה הזאת, לפי ההודעה.
בישראל אין כאן עניין לגולש. זה נוגע למי שמתחזק אתר, לסטודיו ולסוכנות שבנו אותו עבור לקוח, ולספק האחסון שמריץ אותו. השאלה המעשית לבעל אתר אינה טכנית אלא פשוטה: לשאול את מי שמתחזק לו את האתר באיזו גרסה של Craft הוא נמצא.
האם מנוצלת בפועל?
כן. ב-2 ביוני 2025 הוסיפה CISA, סוכנות הסייבר האמריקאית, את החולשה ל-KEV, הקטלוג שמרכז את החולשות שידוע כי תוקפים מנצלים אותן בשטח. המועד שנקבע שם לסיום הטיפול הוא 23 ביוני 2025.
שימו לב לפער בזמנים. הרשומה התפרסמה ב-NVD ב-18 בדצמבר 2024, ורק חצי שנה אחר כך היא סומנה כמנוצלת. חולשה שיצא לה תיקון מזמן אינה מפסיקה להיות רלוונטית, ואתרים שלא עודכנו בזמן הם בדיוק מה שנסרק אחר כך.
מה עושים?
עדכנו את Craft לגרסה שכוללת את התיקון בענף שאתם נמצאים בו: 3.9.14, 4.13.2 או 5.5.2. אין צורך לעבור ענף, בכל אחד מהשלושה יש גרסה מתוקנת.
אם עדכון עכשיו אינו אפשרי, כבו את register_argc_argv בקובץ ה-php.ini של השרת. ההודעה של Craft מציגה את זה כמעקף למי שלא יכול לעדכן, וכאמור, בלי ההגדרה הזאת התנאי לחולשה אינו מתקיים.
אם אינכם יודעים אם ההגדרה דלוקה, מדובר בשורה בקובץ ה-php.ini, והיא מופיעה שם לפי שמה. אצל ספק אחסון משותף השליטה בה לרוב אינה בידיכם, ואז הפנייה היא אל הספק.
הודעת האבטחה של Craft מרכזת את הגרסאות ואת המעקף, והשינוי בקוד פתוח לעיון למי שרוצה לראות מה נסגר.