העדכון שאתם לא יכולים להרשות לעצמכם לדלג עליו: סוף התמיכה ב-Office 2016 ו-Office 2019

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

CVE-2025-32432: ביצוע קוד מרחוק לא מאומת ב-Craft CMS

עַל יְדֵי OPSWAT
שתף את הפוסט הזה
שני חוקרים מ- OPSWAT תוכנית מלגות לתואר שני באבטחת סייבר בתשתיות קריטיות על רקע כחול

באפריל 2025, Orange Cyberdefense גילתה פגיעות קריטית ב-Craft CMS במהלך חקירת תקרית, שכעת מסומנת כ- CVE-2025-32432 . הפגם מאפשר ביצוע קוד מרחוק (RCE) לא מאומת עם ציון חומרה מקסימלי של 10.0 (קריטי) ב-CVSS v3.1 על פי NVD (National Vulnerability Database).

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

בלוג זה מספק סקירה מעמיקה ומקיפה של CVE-2025-32432, מנתח את שורש הבעיה, זרימת הניצול וההשלכות האבטחתיות הרחבות יותר, תוך מתן הנחיות מעשיות לארגונים להתגונן מפני איום זה.

מבוא ל-CVE-2025-32432

CVE-2025-32432 משפיע על גרסאות 3.0.0-RC1 עד 3.9.14, 4.0.0-RC1 עד 4.14.14, ו-5.0.0-RC1 עד 5.6.16 של Craft CMS. הפגם, המסווג כ-CWE-94: הזרקת קוד, נובע מטיפול לא תקין בקלט לא אמין, מה שמאפשר בסופו של דבר RCE לא מאומת.  

מדדי CVSS 3.x עבור פגיעות ביצוע קוד מרחוק של CVE-2025-32432 ב-Cramt CMS, המציגים ציוני בסיס קריטיים.

ניהול תוכן קראפט ומסגרת Yii

Craft CMS היא מערכת ניהול תוכן מודרנית המאפשרת למפתחים ולצוותי תוכן לבנות אתרים גמישים ומותאמים אישית לחלוטין, במקום להסתמך על תבניות נוקשות ומוגדרות מראש. עם אימוץ ביותר מ-46,000 אתרים ברחבי העולם, היא נמצאת בשימוש נרחב וגם במטרה תכופה עבור תוקפים המחפשים פגיעויות בעלות השפעה גבוהה.

Craft CMS בנוי על גבי Yii Framework , מסגרת PHP מהירה וחזקה שנועדה לפיתוח אתרים מודרני. Yii מספקת את המבנה והכלים המרכזיים, בעוד ש-Craft CMS מרחיב אותו כדי לספק מערכת ניהול תוכן גמישה.

יצירת לוגואים של CMS ו-Yii Framework זה לצד זה, הקשורים לפגיעות ביצוע קוד מרחוק CVE-2025-32432

אחת התכונות המרכזיות של מסגרת Yii היא הזרקת התלויות (DI) שלה. הזרקת התלויות היא תבנית עיצוב המספקת לרכיבים את המשאבים הדרושים להם, במקום לדרוש מהם לבנות את המשאבים הללו בעצמם. הזרקת התלויות של Yii גמישה מאוד, ומסוגלת לבנות אובייקטים מורכבים מכללי תצורה פשוטים יחסית.

עם זאת, גמישות זו מגיעה עם סיכון. במקרה של CVE-2025-32432, נעשה שימוש לרעה במכולת ה-DI בשילוב עם קלט משתמש לא מהימן, מה שיצר נתיב להרצת קוד מרחוק. מקרה זה מדגים שאפילו תכונות מסגרת בטוחות וחזקות עלולות להפוך למסוכנות אם הן משולבות ללא הבנה מלאה של השלכות האבטחה שלהן.

צלילה מעמיקה לתוך CVE-2025-32432

Craft CMS כולל תכונה בשם Image Transforms , שנועדה לייעל את הביצועים על ידי יצירת תמונות בגודל שונה ישירות בשרת. במקום לספק תמונה גדולה של 4.5 מגה-בייט להצגה כתמונה ממוזערת של 300×300, Craft CMS יוצר ומגיש אוטומטית גרסה קטנה יותר ומותאמת. גישה זו מפחיתה את ניצול רוחב הפס ומשפרת משמעותית את מהירות טעינת העמוד.

כדי להפוך פונקציונליות זו לזמינה באופן נרחב, Craft CMS חושף את נקודת הקצה actions/assets/generate-transform ללא צורך באימות. אמנם זה מבטיח שמשתמשים מאומתים ואנונימיים כאחד יוכלו ליהנות מתמונות אופטימליות, אך הוא גם מציג משטח תקיפה נגיש לציבור שבו כל אחד יכול לספק קלט מעוצב לאפליקציה.

קטע קוד מ-Craft CMS AssetsController המציג את לוגיקת allowAnonymous הרלוונטית לפגיעות CVE-2025-32432

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

צילום מסך של קוד PHP של Craft CMS הקשור לניתוח פגיעויות ביצוע קוד מרחוק CVE-2025-32432

בשלב הבא, נקראת המתודה ImageTransforms::normalizeTransform() . מתודה זו לוקחת את פרמטר ה-handle שסופק על ידי המשתמש וממירה אותו לאובייקט ImageTransform . מכיוון שהאובייקט נוצר ישירות מקלט לא מהימן, זה מייצג נקודת סיכון קריטית בזרימת הביצוע.

קטע קוד PHP מ-Craft CMS הקשור לניתוח פגיעויות ביצוע קוד מרחוק CVE-2025-32432

במהלך תהליך זה, כל זוגות המפתח-ערך מהמערך $transform הנשלט על ידי המשתמש (שמקורו בפרמטר handle) ממוזגים למערך תצורה. לאחר מכן, המתודה normalizeTransform מעבירה מערך זה ל- Craft::createObject() , האחראית על יצירת אובייקט ImageTransform חדש.

קטע קוד המציג את לוגיקת Craft CMS הרלוונטית לפגיעות ביצוע קוד מרחוק CVE-2025-32432

הפגיעות נובעת מהאופן שבו Craft::createObject() (עוטף את Yii::createObject() של Yii ) מעבד מערכי תצורה. מכיוון שמנגנון זה משתמש במכולת DI כדי ליצור מופעים ולקבוע תצורה של אובייקטים ישירות מהמערך הלא מאומת, תוקפים עלולים להשיג שליטה על תהליך בניית האובייקטים.

קוד PHP מודגש המציג את הפונקציה createObject הרלוונטית לפגיעות ביצוע קוד מרחוק ב-CVE-2025-32432 ב-Cramt CMS

כאשר מועבר מטען זדוני, בנאי האובייקט (שהועבר בירושה ממחלקת Model ) מפעיל את המתודה App::configure() .

קוד PHP מודגש המציג את לוגיקת הבנאי של Craft CMS הקשורה לפגיעות ביצוע קוד מרחוק CVE-2025-32432

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

קטע קוד PHP המציג פונקציית configure, הרלוונטית לפגיעות ביצוע קוד מרחוק ב-Craft CMS של CVE-2025-32432

When App::configure() assigns properties from the attacker-controlled configuration array, most keys are mapped directly onto the object. However, if a key begins with the prefix as, the assignment is routed through Component::__set, Yii’s magic setter. This method interprets as <name> as an instruction to attach a behavior (mixin) to the object.

ניתן ליצור מטען זדוני אחד כזה כדי לנצל את האופן שבו Component::__set מעבד מאפיינים עם קידומת as , כגון exploit :

צילום מסך של קוד המציג מטען ניצול עבור פגיעות ביצוע קוד מרחוק של Craft CMS, CVE-2025-32432

מהניתוח שלנו, המימוש של Component::__set כולל אמצעי הגנה: כאשר התנהגות מצורפת דרך מאפיין כזה, המסגרת מאמתת שהמחלקה שצוינה במערך התצורה היא תת-מחלקה תקפה של yii\base\Behavior . בדיקה זו נועדה למנוע צירוף מחלקות שרירותיות ישירות לרכיבים.

קוד PHP מודגש מ-Craft CMS המציג לוגיקה המקושרת לפגיעות ביצוע קוד מרחוק CVE-2025-32432

עם זאת, אמצעי הגנה זה אינו יעיל כפי שנראה. החולשה נובעת מהאופן שבו Yii::createObject מטפל במערכי תצורה.

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

קטע קוד PHP המציג לוגיקת יצירת אובייקטים הקשורה לפגיעות ביצוע קוד מרחוק ב-CVE-2025-32432 ב-Cramt CMS

התוקף יכול ליצור מטען עבור התנהגות הניצול הכולל שני מפתחות:

  1. 'class' => '\craft\behaviors\FieldLayoutBehavior' - מחלקה לגיטימית שמרחיבה את yii\base\Behavior. ערך זה קיים אך ורק כדי לספק את בדיקת is_subclass_of ב-Component::__set, מה שמאפשר לביצוע להמשיך מבלי לגרום לשגיאה.
  2. '__class' => '\yii\rbac\PhpManager' - המטרה בפועל של התוקף. זוהי מחלקת ה"גאדג'ט" שהם רוצים ליצור.

כאשר הקוד מבוצע, Component::__set עובר את בדיקת האבטחה מכיוון שהוא בודק רק את מפתח המחלקה. עם זאת, כאשר ה-framework קורא מאוחר יותר ל-Yii::createObject כדי לצרף את ההתנהגות, הוא נותן עדיפות ל-__class, וכתוצאה מכך נוצר אובייקט \yii\rbac\PhpManager שבחר התוקף במקום זאת.

השימוש ב- \yii\rbac\PhpManager הוא מכוון. יצירת אובייקט בלבד אינה מספיקה לניצול; השגת RCE דורשת מחלקת גאדג'ט עם תופעות לוואי שניתן להפוך לנשק. PhpManager הוא מטרה נפוצה בהתקפות POI (PHP Object Injection) בגלל זרימת האתחול שלו. לאחר ההפעלה, המתודה init() קוראת ל- load() , אשר לאחר מכן מפעילה את loadFromFile($this->itemFile) . עם שליטה על $this->itemFile , תוקף יכול לאלץ את האפליקציה לטעון קובץ זדוני, ולהפוך יצירת אובייקט להרצת קוד.

זרימת קוד PHP מודגשת המציגה את פגיעות ביצוע קוד מרחוק של CVE-2025-32432 ב-Craft CMS עם הכללת קבצים.

הסכנה טמונה במתודה loadFromFile. ב-PHP, קוד requirement מבצע את קובץ היעד כקוד, כך שאם תוקף שולט בנתיב הקובץ, הוא יכול להפעיל ביצוע קוד שרירותי.

כדי להציב קוד זדוני בשרת, התוקף מנצל קבצי session של PHP . על ידי הזרקת PHP לפרמטר בקשה, Craft CMS שומר את המטען לקובץ session במהלך תהליך ההפניה. מאוחר יותר, כאשר PhpManager טוען קובץ זה, ניתן יהיה לבצע את קוד התוקף.

תרשים זרימה המציג את תהליך ניצול הפגיעות של ביצוע קוד מרחוק של CVE-2025-32432 Craft CMS

שרשרת ההתקפה המלאה פועלת בשלושה שלבים. ראשית, התוקף שותל PHP זדוני על ידי שליחת כתובת URL מעוצבת, אותה Craft CMS שומר בקובץ session. לאחר מכן, הוא מנצל את עקיפת __class בנקודת הקצה של transform image כדי לטעון את גאדג'ט PhpManager ולכוון אותו לעבר קובץ ה-session המורעל. לבסוף, כאשר PhpManager טוען את הקובץ, המטען של התוקף מבוצע, ומעניק RCE ושליטה מלאה בשרת - לעתים קרובות באמצעות webshell או reverse shell.

תרשים זרימה המציג את פגיעות ביצוע קוד מרחוק של CVE-2025-32432 ב-Craft CMS באמצעות JSON וצעדי התקפה
פלט הטרמינל המציג שלבי ניצול עבור פגיעות ביצוע קוד מרחוק של CVE-2025-32432 Craft CMS
טרמינל המציג ניצול לרעה של ביצוע קוד מרחוק של CVE-2025-32432 של Craft CMS עם גישת מעטפת כמשתמש www-data

הפחתה ותיקון

כדי למתן ביעילות את הסיכונים הקשורים ל-CVE-2025-32432, ארגונים זקוקים לנראות ושליטה על רכיבי הקוד הפתוח שלהם. ללא מלאי ברור של רכיבים, תיקון קוד הופך לניחושים.

OPSWAT SBOM , טכנולוגיה קניינית בפלטפורמת MetaDefender® , עונה על צורך זה על ידי מתן רשימה של כל רכיבי התוכנה, הספריות, מכולות Docker והתלויות הנמצאות בשימוש. היא מאפשרת לארגונים לעקוב, לאבטח ולעדכן את הרכיבים שלהם באופן יזום.

ממשק משתמש של סריקת אבטחה המציג ארכיון Craft CMS חסום עם פגיעויות קריטיות לצורך הפחתת CVE-2025-32432
לוח בקרה לאבטחה המציג פרטים על פגיעות ביצוע קוד מרחוק של Craft CMS CVE-2025-32432 ותיקון

בדוגמה לעיל, טכנולוגיית SBOM ב MetaDefender Core™‎ סרק את חבילת nginx-ingress-controller שהכילה את הפגיעות CVE-2025-32432. המערכת סימנה אוטומטית את הבעיה כקריטית וסיפקה הנחיות לגבי גרסאות מתוקנות זמינות, מה שאפשר לצוותים לתעדף ולתקן במהירות את הפגיעות לפני שניתן יהיה לנצל אותה.

OPSWAT SBOM זמין ב- MetaDefender Core וב- MetaDefender Software Supply Chain™ , ומאפשר לצוותי אבטחה לזהות ולפעול על פגיעויות מהר יותר . OPSWAT SBOM, צוותי אבטחה יכולים:

  • איתור מהיר של רכיבים פגיעים - זהה באופן מיידי את רכיבי הקוד הפתוח שנפגעו מהתקפות ביטול סריאליזציה. זה מבטיח פעולה מהירה בתיקון או החלפת הספריות הפגיעות. 
  • ודא תיקון ועדכונים פרואקטיביים - ניטור רציף של רכיבי קוד פתוח באמצעות OPSWAT SBOM כדי להקדים את תהליכי ביטול הסידורים בנוגע לפגיעויות. OPSWAT SBOM יכול לזהות רכיבים מיושנים או לא מאובטחים, מה שמאפשר עדכונים בזמן והפחתת החשיפה להתקפות. 
  • לשמור על תאימות ודיווח – OPSWAT SBOM מסייעת לארגונים לעמוד בדרישות התאימות, כאשר מסגרות רגולטוריות מחייבות יותר ויותר שקיפות בשרשראות אספקה ​​של תוכנה.

מוכנים לחזק את שרשרת האספקה ​​של התוכנה שלכם מפני איומים מתפתחים?

תגיות:

הישאר מעודכן עם OPSWAT !

הירשמו עוד היום כדי לקבל את העדכונים האחרונים של החברה, סיפורים, מידע על אירועים ועוד.