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

מה קרה

התוסף שמאפשר לפתוח מסמכים לעריכה בתוך Nextcloud מריץ בשבילו שרת מסמכים מקומי. כשהשרת הזה לא פעיל, למשל אחרי אתחול או אחרי שהוא קרס, התוסף מרכיב פקודת מערכת כדי להעלות אותו מחדש, ובונה אותה גם מתוך הבקשה שהגיעה מהאינטרנט. מי ששולח בקשה מתאימה לכתובת proxy.php של התוסף יכול לתחוב לתוך הפקודה הזאת כל מה שירצה, והשרת יריץ אותו. לסוג החולשה הזה קוראים OS command injection, והיא לא דורשת התחברות ולא לחיצה.

ביומנים של אחד המנהלים מופיעות בקשות כאלה כבר ב-10 בספטמבר, עם קידוד שמסתיר את מה שבאמת רץ ומטען base64 שמועבר ל-sh. מה שנשאר אחריהן היה webshell, שורת PHP אחת שמריצה כל פקודה שמגיעה אליה בפרמטר בכתובת, כלומר שליטה מלאה בהרשאות של שרת האינטרנט. התוקפים בדקו שהיא עובדת בפקודת id, ואז התחילו לחפש קבצים: סיומת kdbx, שהיא כספת הסיסמאות של KeePass, הקבצים wallet.dat ו-keystore.json של ארנקי מטבעות קריפטו, ותיקיות של Bitwarden ושל ארנקי Bitcoin ו-Monero.

החולשה קיבלה את המספר CVE-2026-110447 ואת הציון 9.2 מתוך 10, והיא נסגרה בגרסה 26.4.303 של התוסף richdocumentscode. הגרסה יצאה ב-11 בספטמבר, יום אחרי התקיפות הראשונות שביומנים, אבל בהערות השחרור שלה לא נכתב שמדובר בתיקון אבטחה, כך שמנהל שקרא אותן לא ראה סיבה למהר. המספר הרשמי פורסם רק ב-14 באוקטובר, וב-Collabora תולים את העיכוב בעומס בהקצאת מספרי CVE ב-GitHub. ב-Nextcloud אומרים מצדם שלא ראו ניצול נרחב, וחלק מהמשתמשים דיווחו שגם מפעילי כופרה ניצלו את החולשה, דיווח שלא אומת בידי גורם עצמאי.

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

למה זה חשוב לכם

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

מה עושים?

אם אתם מריצים Nextcloud, בדקו בהגדרות האפליקציות את גרסת התוסף richdocumentscode (בחנות הוא מופיע כ-Collabora Online Built-in CODE Server) ועדכנו ל-26.4.303 ואילך. אם אתם לא עורכים מסמכים בדפדפן, הסירו אותו לגמרי במקום להשבית.

חפשו שאריות. קובצי PHP ששמם מתחיל ב-shx בתיקיות ההתקנה הם הסימן, והריצו את בדיקת התקינות מתוך הגדרות הניהול. זאת הבדיקה שחשפה את הפריצה.

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

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