| प्लगइन का नाम | वर्डप्रेस योस्ट एसईओ प्लगइन |
|---|---|
| कमजोरियों का प्रकार | क्रॉस-साइट स्क्रिप्टिंग (XSS) |
| CVE संख्या | CVE-2026-3427 |
| तात्कालिकता | कम |
| CVE प्रकाशन तिथि | 2026-03-23 |
| स्रोत URL | CVE-2026-3427 |
योस्ट एसईओ (<= 27.1.1) स्टोर्ड XSS (CVE-2026-3427) — वर्डप्रेस साइट मालिकों और प्रशासकों के लिए व्यावहारिक मार्गदर्शिका
TL;DR
योस्ट एसईओ संस्करणों में एक स्टोर्ड क्रॉस-साइट स्क्रिप्टिंग (XSS) भेद्यता 27.1.1 तक और इसमें शामिल है (CVE-2026-3427) एक प्रमाणित उपयोगकर्ता को सामग्री सहेजने की अनुमति देती है (उदाहरण के लिए एक ब्लॉक विशेषता में नामित jsonText) जो बाद में एक संपादक या प्रशासक के ब्राउज़र में जावास्क्रिप्ट निष्पादित कर सकती है जो उस सामग्री को देखता या संपादित करता है। समाधान योस्ट एसईओ 27.2 में शामिल है। तुरंत पैच करें; यदि तत्काल पैचिंग संभव नहीं है, तो मुआवजा नियंत्रण लागू करें, संदिग्ध सामग्री की खोज करें, और योगदानकर्ता क्षमताओं को सीमित करें।.
What’s the vulnerability?
- A stored XSS exists in Yoast SEO versions ≤ 27.1.1.
- यह समस्या एक ब्लॉक (गुटेनबर्ग) या अन्य सहेजी गई सामग्री द्वारा उपयोग किए जाने वाले
jsonTextविशेषता के माध्यम से उत्पन्न होती है: अनएस्केप्ड HTML को बनाए रखा जा सकता है और बाद में एक प्रशासक/संपादक ब्राउज़र संदर्भ में निष्पादित किया जा सकता है।. - शोषण की पूर्वापेक्षाएँ: एक प्रमाणित योगदानकर्ता-स्तरीय उपयोगकर्ता को पेलोड को स्टोर करने के लिए, और प्रभावित सामग्री को खोलने या संपादित करने के लिए एक संपादक/प्रशासक (उपयोगकर्ता इंटरैक्शन आवश्यक)।.
- योस्ट एसईओ 27.2 में पैच किया गया — पहले के संस्करणों पर चलने वाली साइटें अपडेट होने तक संवेदनशील हैं।.
यह क्यों महत्वपूर्ण है — व्यावहारिक जोखिम मूल्यांकन
स्टोर्ड XSS स्थायी है और विश्वसनीय उपयोगकर्ताओं के सुरक्षा संदर्भ में निष्पादित होता है। हांगकांग स्थित संगठनों और संपादकीय टीमों के लिए जो सहयोगात्मक कार्यप्रवाह पर निर्भर करते हैं, इसके परिणाम महत्वपूर्ण हो सकते हैं:
- संपादक/प्रशासक सत्रों का खाता समझौता (कुकी चोरी, टोकन कैप्चर)।.
- अनधिकृत प्रशासक क्रियाएँ: खाते बनाना, प्लगइन्स/थीम्स को संशोधित करना, साइट विकल्प बदलना।.
- साइट का विकृति, एसईओ स्पैम इंजेक्शन, रीडायरेक्ट, या गुप्त डेटा निकासी।.
जोखिम को कम करने वाले प्रतिबंध: एक हमलावर को एक योगदानकर्ता खाता (या समकक्ष) की आवश्यकता होती है, और एक विशेषाधिकार प्राप्त उपयोगकर्ता को सामग्री खोलनी चाहिए। फिर भी, कई साइटें योगदानकर्ताओं को स्वीकार करती हैं या बहु-लेखक कार्यप्रवाह हैं — सुरक्षा की उम्मीद न करें।.
19. हमलावर के पास एक योगदानकर्ता खाता है (कई साइटें बाहरी योगदानकर्ताओं को स्वीकार करती हैं)।
- हमलावर एक योगदानकर्ता खाता प्राप्त करता है या बनाता है (पंजीकरण, चुराए गए क्रेडेंशियल, सामाजिक इंजीनियरिंग)।.
- योगदानकर्ता एक पोस्ट या ब्लॉक बनाता/संपादित करता है जिसमें एक पेलोड एम्बेड किया गया है
jsonTextविशेषता में जो जावास्क्रिप्ट शामिल करता है (जैसे,or event handlers). - Payload is stored in the database as post content or block attribute.
- An Editor/Admin opens the post in the block editor; the script runs in their browser.
- Malicious script performs actions (modify site options, create admin users, exfiltrate cookies, install backdoors).
- Attacker uses stolen session tokens to achieve persistent administrative access.
Immediate actions (first 24 hours)
If you operate WordPress sites running Yoast SEO ≤ 27.1.1, perform these steps immediately and in order:
- Patch: Update Yoast SEO to 27.2 or later as soon as possible. This is the primary mitigation.
- When you cannot update immediately:
- Restrict or temporarily suspend Contributor publishing rights.
- Disable access to the block editor for high-privilege accounts from untrusted networks where practical.
- Deploy detection/blocking rules on your perimeter WAF (virtual patch) to catch suspicious payloads in
jsonTextor editor POSTs.
- Audit recent content: Review posts/pages and revisions created by Contributors in the last 30–90 days for suspicious HTML or JS.
- Credential hygiene: Rotate passwords for admin/editor accounts and enable multi-factor authentication where available.
- Backups: Create a fresh backup of database and files before performing intrusive changes.
How to hunt for suspicious content (practical queries)
Run these safe, non-destructive searches against a backup or staging copy where possible.
Search for script tags in post content:
SELECT ID, post_title, post_author, post_date
FROM wp_posts
WHERE post_content LIKE '%
Search for posts or content containing jsonText:
SELECT p.ID, p.post_title, p.post_author, p.post_date, p.post_content
FROM wp_posts p
WHERE p.post_content LIKE '%jsonText%';
Search for jsonText in postmeta:
SELECT post_id, meta_key, meta_value
FROM wp_postmeta
WHERE meta_value LIKE '%jsonText%';
Find revisions created by contributors in the last 30 days (adjust roles detection as needed):
SELECT p.ID, p.post_title, p.post_author, p.post_date
FROM wp_posts p
JOIN wp_users u ON p.post_author = u.ID
WHERE p.post_type = 'revision'
AND p.post_date >= DATE_SUB(NOW(), INTERVAL 30 DAY)
AND u.roles LIKE '%contributor%';
WP-CLI approach (example):
# Search for