מבוא ל-Ruby on Rails
Ruby on Rails (Rails) היא מסגרת אינטרנט מלאה מסוג Model-View-Controller (MVC) שנבנתה עם Ruby. היא מגיעה "כולל סוללות ", ומציעה למפתחים את כל מה שהם צריכים ישירות מהקופסה: Mapper Object-Relational (Active Record), שכבת בקשה/תגובה ותצוגה (Action Pack/Action View), עיבוד עבודות רקע, שליחי דיוור, תמיכה ב-WebSocket, אחסון והעלאות קבצים (Active Storage), ועוד ועוד.
מאז השקתה הראשונית בשנת 2004, Ruby on Rails צמחה והפכה לאחת ממערכות ההפעלה האינטרנטיות המאומצות ביותר בעולם. כיום היא מפעילה מיליוני אתרים ואפליקציות - כולל פלטפורמות ידועות כמו GitHub, Shopify, Airbnb, Basecamp ונטפליקס. עם הדגש החזק שלה על מוסכמות על פני תצורה , פרודוקטיביות מפתחים ויצירת אבות טיפוס מהירה, Rails הפכה למערכת הפעלה מועדפת הן עבור סטארט-אפים והן עבור ארגונים גדולים.
יחידה 515 מחקר: חשיפת פגיעויות קריטיות במסילות
במהלך מחקר עצמאי, תאי דו , חבר ב- OPSWAT צוות יחידה 515 של Rails זיהה שתי פגיעויות ב-Ruby on Rails - אחת מהן עלולה להוביל לביצוע קוד מרחוק (RCE). ממצאים אלה נחשפו באחריות לצוות האבטחה של Rails, שאיתו OPSWAT מתואם לאורך כל התהליך.
ב-13 באוגוסט 2025, צוות Rails פרסם הודעות לציבור ושחרר גרסאות מתוקנות שטיפלו בשתי הפגיעויות.
גרסאות מושפעות ומהדורות מתוקנות
רְכִיב | גרסאות מושפעות | גרסאות קבועות |
|---|---|---|
אחסון פעיל (CVE-2025-24293) | מסילות ≥ 5.2.0 ומטה מהשחרור הקבוע | 7.1.5.2, 7.2.2.2, 8.0.2.1 |
רישום רשומות פעילות (CVE-2025-55193) | Rails < 7.1.5.2, < 7.2.2.2, < 8.0.2.1 | 7.1.5.2, 7.2.2.2, 8.0.2.1 |
בעיות אבטחה שזוהו ב-Rails
CVE-2025-24293 – שיטות טרנספורמציה לא בטוחות לאחסון פעיל
פגיעות זו משפיעה על Active Storage בגרסאות Rails ≥ 5.2.0. היא מתרחשת כאשר שיטות טרנספורמציה לא בטוחות של תמונות מועברות ל- mini_magick , מה ש - בשילוב עם קלט משתמש לא מאומת - עלול להוביל לביצוע קוד מרחוק (RCE). בעוד ש- Rails מציינת כי הפגם אינו ניתן לניצול תחת תצורת ברירת מחדל, יישומים שחושפים אפשרויות טרנספורמציה למשתמשים נמצאים בסיכון מיוחד.
CVE-2025-55193 – הזרקת ANSI Escape ברישום רשומות פעילות
פגיעות זו משפיעה על רישום Active Record בכל גרסאות Rails לפני 7.1.5.2, 7.2.2.2 ו-8.0.2.1. תוקפים עלולים להזריק מזהים מיוחדים המכילים רצפי ANSI escape לתוך יומני רישום, ובכך עלולים לתמרן את האופן שבו שאילתות מופיעות בפלט הטרמינל ולהוביל ליומנים מטעים או פגומים. למרות שהפגם אינו חושף נתונים באופן ישיר או מאפשר ביצוע קוד, הוא עלול להפריע למאמצי הניטור והתגובה לאירועים. צוות האבטחה של Rails פתר את הבעיה באותן גרסאות מתוקנות.
ניתוח טכני של CVE-2025-24293 – ביצוע קוד מרחוק באחסון פעיל
סקירה כללית של אחסון פעיל
Active Storage הוא המסגרת המובנית של Rails לטיפול בהעלאות קבצים. היא מאפשרת למפתחים לצרף קבצים למודלים של Active Record ולאחסן אותם באופן מקומי (לצורך פיתוח/בדיקה) או בשירותי ענן כמו Amazon S3, Google Cloud Storage או Microsoft Azure . Core התכונות כוללות ביצוע טרנספורמציות תמונה, יצירת תצוגות מקדימות עבור קבצים שאינם תמונה כמו קבצי PDF וסרטונים, ושיקוף העלאות לשירותים מרובים לצורך יתירות או הגירה.
כיצד עובדות טרנספורמציות תמונה
טרנספורמציות של תמונות מאפשרות למפתחים לספק קבצים מצורפים במידות או פורמטים ספציפיים. הדבר נעשה על ידי קריאה למתודה variant() על קובץ מצורף לתמונה והעברת פעולות נתמכות.

כאשר לקוח מבקש כתובת URL משתנה, Active Storage מבצע את הטרנספורמציה לפי דרישה מה-blob המקורי, מאחסן את התוצאה בשירות שתצורתו נקבעה ומחזיר הפניה לקובץ שנוצר לאחרונה.
Rails תומך בשני מעבדים לטרנספורמציות תמונה: Vips ו- MiniMagick . ניתן להגדיר את המעבד שבשימוש דרך config.active_storage.variant_processor.

הפעולות הספציפיות הנתמכות בטרנספורמציות תמונה נקבעות על ידי ה- image_processing gem ותלויות במעבד הבסיסי שתצורתו נקבעה עבור יישום Rails.
תיקון לא שלם של CVE-2022-21831
במרץ 2022, צוות Rails חשף את CVE-2022-21831 , פגיעות קריטית של הזרקת קוד בתכונת טרנספורמציה של תמונות של Active Storage. התיקון הציג רשימת היתרים כברירת מחדל של שיטות טרנספורמציה כדי לצמצם את הבעיה.

עם זאת, במהלך סקירה מעמיקה יותר של התיקון וקוד המקור של Rails, Thai Do ( OPSWAT יחידה 515) גילתה עקיפה שהפכה את התיקון המקורי ללא שלם. עקיפה זו החזירה נתיב לתוקפים להשיג ביצוע קוד מרחוק (RCE), מה שהוביל לחשיפת CVE-2025-24293.
שורש הבעיה באבן החן של עיבוד התמונה
כאשר מוחלת טרנספורמציה, Rails מאציל את הפעולה לפונקציה image_processing , אשר בסופו של דבר קוראת לפונקציה ImageProcessing::Processor#call בקובץ lib/image_processing/processor.rb.

אם מעבד הגרסה שהוגדרה הוא MiniMagick , הפגיעות טמונה בשתי פונקציות בתוך lib/image_processing/mini_magick.rb :
• load_image – מקבל אפשרויות לא מאומתות מ- **loader.
• save_image – מקבל אפשרויות לא מאומתות מ- **saver.

עבור load_image , כל זוגות מפתח-ערך ב- **loader מלבד page, geometry ו- auto_orient נשמרים ב- **options . אותו הדבר חל על save_image , כאשר מפתחות מלבד allow_splitting נשארים ב- **options . אפשרויות אלו מועברות מאוחר יותר ל- Utils.apply_options(magick, **options) , אשר מחיל אותן כדגלי MiniMagick CLI (למשל, -quality).

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

תוקף עלול ליצור קלט זדוני כדי לתפעל את אפשרויות הטעינה או השומר. פעולה זו תעקוף את רשימת ההיתרים ותבצע פקודות שרירותיות בשרת, וכתוצאה מכך תתרחש ביצוע קוד מרחוק (RCE).
הוכחת היתכנות: ביצוע קוד מרחוק
ביישומי Rails המריצים גרסאות פגיעות (לפני 8.0.2.1, 7.2.2.2 ו-7.1.5.2 ), OPSWAT יחידה 515 הדגימה בהצלחה שרשרת ניצול לרעה שבה קלט טרנספורמציה לא מאומת הוביל לביצוע פקודת מעטפת.
סרטון PoC זה מדגים את יכולת הניצול של CVE-2025-24293 ומדגיש את ההשפעה בעולם האמיתי על יישומי Rails:
שירותי בדיקת חדירה מקצועית ומניעת נזקים
על ארגונים לטפל ב- CVE-2025-24293 וב- CVE-2025-55193 על ידי שדרוג Ruby on Rails למהדורות האבטחה העדכניות ביותר (7.1.5.2, 7.2.2.2, או 8.0.2.1) . אם תיקון מיידי אינו אפשרי, אמצעי הגנה זמניים כוללים הגבלת טרנספורמציות תמונה לקביעות מוגדרות מראש, אימות וחיטוי קלט משתמש, הקשחת מדיניות ImageMagick והבטחה שיומני רישום אינם יכולים לפרש רצפי בריחה של ANSI.
עם זאת, יישום תיקונים אינו מבטל את כל הסיכונים בסביבות אינטרנט מודרניות. לוגיקה עסקית מותאמת אישית, אינטגרציות של צד שלישי וצנרת פריסה מורכבת יוצרים לעתים קרובות נתיבים ניתנים לניצול החורגים מעבר לייעוץ של ספקים. זו הסיבה שבדיקות חדירה של יישומי אינטרנט הן חיוניות.
בְּ OPSWAT יחידה 515 מספקת שירותי בדיקות חדירה של יישומי אינטרנט מיוחדים, הרבה מעבר לסורקים אוטומטיים או ביקורות רשימות תיוג. הצוות שלנו מורכב ממומחי אבטחה התקפית מנוסים, בעלי ניסיון של שנים בבדיקת יישומים בקנה מידה גדול בתעשיות מגוונות. באמצעות מתודולוגיה שיטתית ואוורסרית, אנו חושפים פגיעויות בזרימות אימות, אימות קלט, בקרת גישה וטיפול בנתונים - בעיות שיכולות להימשך אפילו במסגרות מתוקנות במלואן כמו Ruby on Rails.
כל התקשרות משלבת מומחיות טכנית מעמיקה עם דיווח מוכן לארגון, ומספקת תובנות ברורות ומעשיות המאפשרות לצוותי פיתוח לתקן פגמים ביעילות. על ידי שימוש ביחידה 515 , ארגונים מקבלים את הביטחון שהיישומים הקריטיים שלהם נבדקים על ידי מומחים אשר לא רק מדמים טכניקות תקיפה בעולם האמיתי, אלא גם מאמתים שתיקונים באמת סוגרים את הפערים. מומחיות זו מחזקת את מאמצי התיקון, מפחיתה את הסיכון השיורי ומגבירה את החוסן הכולל של היישומים מפני איומים מתפתחים.
