PHPMailer היא ספריית קוד שאתרים משתמשים בה כדי לשלוח דואר. בגרסאות שלפני 5.2.18, כשהיא שלחה דואר דרך פקודת הדואר של המערכת, היא העבירה את ערך השולח הלאה בלי לנקות אותו, וצירוף תווים מסוים בתוך הערך הזה אפשר לתוקף להוסיף לפקודה פרמטרים משלו ומשם להריץ קוד על השרת. הציון הוא 9.8. הרשומה פורסמה בדצמבר 2016, והחולשה נוספה לקטלוג החולשות המנוצלות בפועל רק ביולי 2025.

מה החולשה?

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

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

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

מי מושפע?

הרשומה מציינת שלושה מעגלים. PHPMailer עצמה בגרסאות שלפני 5.2.18. WordPress בגרסאות 4.7 ומטה. ו-Joomla בטווח שבין 1.5.0 ל-3.6.5.

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

אם האתר שלכם מעודכן לגרסה סבירה של אחת המערכות האלה, אתם מחוץ לטווח. הבעיה היא דווקא באתרים ששכחו מהם.

האם מנוצלת בפועל?

כן, והתזמון כאן הוא הסיפור. ב-7 ביולי 2025 הוסיפה סוכנות הסייבר האמריקאית CISA את החולשה לקטלוג ה-KEV שלה, הרשימה של חולשות שידוע כי תוקפים מנצלים אותן בשטח, עם מועד תיקון לגופים פדרליים ב-28 ביולי 2025.

הרשומה ב-NVD פורסמה ב-30 בדצמבר 2016. כלומר חולשה מתוקנת מזה שנים נכנסה לרשימה הזאת כמעט תשע שנים אחרי שהתגלתה. זה אינו סימן לכך שמשהו חדש התגלה בה, אלא לכך שתוקפים עדיין מוצאים מערכות שלא עודכנו מאז. חולשה ישנה אינה חולשה מתה כל עוד יש מי שמריץ את הקוד הישן.

מה עושים?

בררו מה מריץ את האתר שלכם ובאיזו גרסה. אם זה WordPress, כל גרסה עד 4.7 כולל היא בטווח. אם זה Joomla, הטווח הוא 1.5.0 עד 3.6.5. אם אתם משתמשים ב-PHPMailer ישירות בקוד שלכם, המספר שצריך לראות הוא 5.2.18 ומעלה.

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

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

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