מה שנשתל בתגובה חיכה עד שמנהל האתר ישחזר גיבוי: 3.25 מיליון אתרי וורדפרס עדיין מריצים גרסה חשופה
מישהו משאיר תגובה באתר. לא קורה כלום. שבועות אחר כך מנהל האתר משחזר גיבוי, וברגע השחזור הטקסט שנשתל שם מפסיק להיות טקסט ומתחיל להתנהג כפקודה למסד הנתונים.
מה קרה
החולשה, שמסומנת CVE-2026-19949 וקיבלה ציון 8.8, נמצאת בתוסף All-in-One WP Migration and Backup, אחד הכלים הנפוצים בוורדפרס להעברת אתר בין שרתים ולגיבוי מלא שלו כולל מסד הנתונים, התמונות והתבניות. את החולשה מצא החוקר Jack Taylor, שדיווח עליה באמצע אוגוסט דרך Wordfence, וגרסה מתוקנת, 7.110, שוחררה ב-20 באוגוסט. כל גרסה עד 7.109 חשופה.
המנגנון מעניין דווקא בגלל ההשהיה שבו. כשהתוסף משחזר ארכיון הוא כותב מחדש תוכן בתוך מסד הנתונים, ובדרך הוא מפרסר לא נכון גרשיים ולוכסנים אחוריים שכבר יושבים בתוכן. תוקף לא מזוהה יכול לשתול טקסט מוכן דרך מנגנון ציבורי לגמרי, למשל trackback (הודעת קישור אוטומטית שאתר אחד שולח לאתר אחר), והטקסט הזה שוכב במסד הנתונים בלי לעשות דבר עד שמישהו מריץ שחזור. אז הוא נשבר החוצה מהגרשיים שסביבו והופך לחלק מהשאילתה עצמה. לשיטה הזאת, שבה הנתונים נשתלים בשלב אחד ומתפוצצים בשלב אחר, קוראים second-order SQL Injection.
מה שהשאילתה המושתלת מוציאה החוצה הוא המפתח הסודי של התוסף, ai1wm_secret_key, ואפשר לגרום לו להופיע בתגובה ציבורית באתר. עם המפתח הזה התוקף מדלג על האימות של מנגנון הייבוא ומעלה ארכיון גיבוי משלו, קובץ בפורמט wpress שמכיל קוד. Wordfence כותבת שהרצת קוד ברמת ההרשאות הזאת עשויה להוביל לשליטה מלאה באתר.
לפי הנתונים של WordPress.org לתוסף יש יותר מחמישה מיליון התקנות פעילות, ורק כ-35 אחוז מהן עברו לגרסה המתוקנת, כלומר כ-3.25 מיליון אתרים מריצים כרגע גרסה חשופה. Wordfence מציינת שהניצול תלוי בפעולה של מנהל האתר, מה שמוריד את הסיכון המיידי, אבל מדובר בתוסף גיבוי ושחזור, ולכן סביר שהפעולה הזאת תתבצע במוקדם או במאוחר. ניצול בשטח לא דווח עד כה.
למה זה חשוב לכם
וורדפרס מריץ חלק גדול מאתרי העסקים הקטנים, הקליניקות, העמותות והאתרים האישיים בישראל, והתוסף הזה הוא אחת הדרכים הנפוצות להעביר אתר בין ספקי אחסון. מה שיושב במסד הנתונים של אתר כזה הוא לרוב פרטי הלקוחות: שמות, טלפונים, כתובות מייל, ולפעמים גם תוכן של טפסים רפואיים או משפטיים. המלכודת כאן שקטה במיוחד, כי האתר ממשיך לעבוד כרגיל בדיוק עד הרגע שבו מישהו משחזר גיבוי, וזה בדרך כלל היום שבו כבר מטפלים בבעיה אחרת.
מה עושים?
היכנסו לממשק הניהול של האתר, ללשונית התוספים, ובדקו את הגרסה של All-in-One WP Migration and Backup. כל דבר עד 7.109 צריך לעבור ל-7.110 ומעלה, היום.
עדכנו לפני שאתם משחזרים גיבוי, לא אחרי. החולשה מתממשת ברגע השחזור עצמו, כך ששחזור בגרסה ישנה הוא בדיוק הפעולה המסוכנת.
אם כבר שחזרתם גיבוי בגרסה ישנה, התייחסו לאתר כחשוד: החליפו את המפתח הסודי של התוסף, עברו על רשימת המשתמשים בעלי הרשאות ניהול וחפשו חשבונות שלא אתם יצרתם, ובדקו אם נוספו קבצים בתיקיות התוספים והתבניות.
ואם חברה חיצונית מתחזקת לכם את האתר, שאלו אותה היום איזו גרסה מותקנת. זו שאלה של משפט אחד, ומי שמתחזק אתרים כבר אמור לדעת עליה.
תוסף גיבוי קיים באתר בשביל היום שבו משהו משתבש. כאן השחזור הוא לא הפתרון, הוא ההדק.
תגובות