PHP2Shell क्या है? CVE-2026-109618 और CVE-2026-109619 का Fix (Hindi Guide)

PHP2Shell vulnerability explained in Hindi with CVE details and PHP security fixPHP2Shell की critical vulnerability, इसके संभावित खतरे और PHP update करके सुरक्षित रहने का तरीका।


// टेक हेल्प 2026
PHP & WordPress Security

PHP2Shell क्या है? CVE-2026-109618 और CVE-2026-109619 से WordPress Site कैसे बचाएं

📅 Updated: 23 October 2026
⏱️ 12 Min Read
PHP2Shell: PHP runtime की दो critical vulnerabilities और उनका fix

PHP2Shell नाम से चर्चा में आई दो critical vulnerabilities — CVE-2026-109618 और CVE-2026-109619 — सीधे PHP runtime के अंदर हैं, किसी plugin या theme में नहीं। इसका मतलब है कि अगर आपकी WordPress, Joomla, Drupal, Magento या कोई custom PHP website unpatched PHP पर चल रही है, तो वह खतरे में हो सकती है।

PHP team ने 21 October 2026 को official security advisory जारी करके सभी users को तुरंत update करने को कहा है। Advisory के अनुसार ये flaws बिना login के remote code execution (RCE) तक ले जा सकते हैं, और Apache mod_php पर एक exploit demonstrate भी किया गया है। इसलिए यह “बाद में देखेंगे” वाला update नहीं है।

⚡ Quick Answer: PHP2Shell से बचने के लिए क्या करें?

  • PHP को patched upstream release पर update करें: 8.2.35, 8.3.36, 8.4.27 या 8.5.12 (या नया)
  • Linux distro या hosting का PHP package है, तो उनका security backport install और confirm करें — version number upstream से अलग दिख सकता है
  • PHP 8.1 या पुराना है तो PHP project से नया release नहीं आएगा — supported branch पर जाएं या vendor से backport confirm करें
  • Update के बाद website चलाने वाले सभी PHP workers restart करें
  • सिर्फ WordPress core या plugins update करने से यह issue fix नहीं होगा

🆕 Update (23 October 2026)

PHP ने एक informational advisory में सलाह दी है कि अगली regular bugfix release तक session.upload_progress.enabled=0 रखें। यह एक नए, unlikely RCE vector (CVE-2026-115560) से बचाने के लिए है, जो सिर्फ एक असामान्य configuration में होता है। अगर आपने CVE-2026-109619 के mitigation में यह setting पहले ही लगा दी है, तो उसे लगा रहने दें। Source: php.net

PHP2Shell क्या है? CVE-2026-109618 और CVE-2026-109619 आसान भाषा में

PHP2Shell कोई एक bug नहीं, बल्कि PHP runtime की दो memory-safety vulnerabilities का nickname है। Official advisory के अनुसार दोनों में attacker को login की ज़रूरत नहीं पड़ती।

CVE-2026-109618: RCE via OOM corruption

PHP Out-of-Memory (OOM) error आने पर longjmp() से request को बीच में ही abort कर देता है। कुछ जगहों पर request की memory पूरी तरह initialize होने से पहले ही reachable हो जाती है।

अगर ठीक उसी समय कोई भी allocation fail हो जाए, तो memory invalid state में रह जाती है, और request shutdown के दौरान PHP उसी invalid data को पढ़ सकता है। Advisory बताती है कि multipart request parsing के कुछ तरीकों से OOM लगातार trigger किया जा सकता है। Source: GHSA-w8hw-w9fx-j79w

CVE-2026-109619: RCE via stale global state

PHP worker के पास कुछ global state (error, session, object, extension state) होती है, जो थोड़े समय के लिए एक request की memory की तरफ point करती है। Request खत्म होने से पहले इसे reset होना चाहिए।

Fatal error, OOM या execution timeout जैसी रुकावट से यह reset छूट सकता है। फिर request memory free हो जाती है, लेकिन पुराना reference बचा रहता है। उसी worker पर आने वाली अगली request normal initialization से पहले इस stale state को इस्तेमाल कर सकती है — यह Use-After-Free (CWE-416) है। Source: GHSA-6wmf-4rv5-p3rp

Diagram B: CVE-2026-109618 vs CVE-2026-109619
Point CVE-2026-109618 CVE-2026-109619
Official नाम RCE via OOM corruption RCE via stale global state
Root Cause OOM पर longjmp() abort, adhoori initialized request memory shutdown में पढ़ी जाती है Reset न हुई global state, freed memory का reuse (CWE-416)
Trigger Request parsing या application में OOM Fatal error / OOM / timeout, फिर उसी worker की अगली request
Login चाहिए? नहीं (unauthenticated) नहीं (unauthenticated)
Advisory में validated HTTP पर mod_php के ख़िलाफ़ RCE; FPM source analysis से susceptible PHP 8.5 fatal backtrace path: mod_php पर RCE; session lifecycle: mod_php और FPM पर RCE
Severity (official) CRITICAL · CVSS v4 9.2 CRITICAL · CVSS v4 9.2
Fix दोनों एक ही PHP security release में fix हैं: 8.2.35, 8.3.36, 8.4.27, 8.5.12

Severity पर नोट: इस article में severity PHP की official GitHub advisories से ली गई है, जहां दोनों CVE को Critical (CVSS v4 9.2) बताया गया है। Linux distributions और दूसरे databases अपने हिसाब से अलग score या priority दिखा सकते हैं, इसलिए अपने vendor का page भी देखें।

कौन-सी PHP Setups खतरे में हैं?

Official advisory के अनुसार web requests serve करने वाली सभी PHP installations प्रभावित हो सकती हैं: PHP-FPM, Apache mod_php, php-cgi, FrankenPHP और LiteSpeed। CLI से चलने वाले scripts इस advisory का मुख्य focus नहीं हैं।

  • Apache mod_php: PHP team के अनुसार सबसे ज़्यादा risk। यहां बिना login वाली request application code चलने से पहले ही attack trigger कर सकती है।
  • PHP-FPM: CVE-2026-109619 का session lifecycle path FPM पर validated है। CVE-2026-109618 के लिए source analysis FPM को susceptible बताता है, हालांकि complete FPM exploit demonstrate नहीं हुआ।
  • LiteSpeed (LSAPI) और FrankenPHP: Advisory इन्हें भी likely या conditional candidates मानती है।

Shared hosting पर आप किस SAPI पर हैं, यह hosting company से पूछें या hosting panel में देखें।

PHP2Shell Attack कैसे काम करता है?

नीचे simplified flow है। Steps 1–4 advisories के technical description पर आधारित हैं। नीचे दिए impacts वे संभावित नुकसान हैं जो worker account पर code execution मिलने के बाद हो सकते हैं — हर site पर ये अपने आप नहीं होते।

Diagram A: Attack Flow और Possible Impact
Step 1
Crafted Request
Attacker बिना login के ऐसी HTTP request भेजता है जो memory या error handling पर दबाव डाले।
Step 2
OOM / Fatal Error
Request बीच में abort होती है, internal state adhoori या reset के बिना रह जाती है।
Step 3
Invalid / Stale Memory Use
Shutdown या उसी worker की अगली request उस memory को valid मानकर इस्तेमाल करती है।
Step 4
Possible RCE
Exploit सफल होने पर web worker account की permissions से code चल सकता है।
Possible follow-on impact (अगर exploit सफल हो)
Backdoor / Web Shell
wp-config.php credentials तक पहुंच
Database access
SEO spam injection
Website down (DoS)

Advisory के मुताबिक exploit की reliability PHP build, extensions, frontend और memory layout पर निर्भर करती है। लेकिन research में RCE validate हो चुका है, इसलिए patch को टालना सही नहीं है।

WordPress Plugin Update से यह Fix क्यों नहीं होगा?

बहुत से लोग सोचते हैं कि security plugin लगा लिया या WordPress update कर दिया तो site safe है। PHP2Shell में ऐसा नहीं है, क्योंकि bug उस layer में है जो WordPress को चलाती है। WordPress या plugin vulnerabilities अलग चीज़ हैं — उनका fix plugin update से होता है, जबकि इसका fix PHP update से।

Diagram D: Website Architecture — Bug कहां है?
Layer 1
Visitor
Browser / Bot
Layer 2
Web Server
Nginx / Apache / LiteSpeed
Layer 3 — Bug यहां है
PHP Runtime
PHP-FPM / mod_php / LSAPI
Layer 4
CMS
WordPress, Plugins, Themes
Layer 5
Database
MySQL / MariaDB

WordPress plugins Layer 4 में हैं, जबकि PHP2Shell Layer 3 में है। इसलिए fix भी Layer 3 पर होगा — यानी PHP runtime को patched release या vendor backport पर update करके।

Affected और Fixed PHP Versions की पूरी लिस्ट

नीचे की जानकारी PHP 8 ChangeLog और official advisories से है। “Fixed Version” या उससे नया upstream release patched है:

PHP Branch Affected (upstream) Fixed Version क्या करें?
PHP 8.5 8.5.12 से पहले के सभी 8.5.12+ तुरंत update करें
PHP 8.4 8.4.27 से पहले के सभी 8.4.27+ तुरंत update करें
PHP 8.3 8.3.36 से पहले के सभी 8.3.36+ तुरंत update करें
PHP 8.2 8.2.35 से पहले के सभी 8.2.35+ तुरंत update करें
PHP 8.1, 8.0, 7.4 End-of-Life branches कोई नया official release नहीं Supported branch पर migrate करें, या distro/LTS vendor से backport confirm करें

EOL versions पर नोट: PHP project अब 8.1 और पुराने versions के नए releases नहीं बनाता। Severity को देखते हुए PHP security team ने 7.4, 8.0 और 8.1 के लिए minimal source-backports दिए हैं, लेकिन ये मुख्य रूप से source से build करने वालों के लिए हैं। ज़्यादातर websites के लिए सही रास्ता supported version पर जाना या vendor का backported package लेना है।

📦 Distro backport: “पुराना” version number = हमेशा vulnerable नहीं

PHP advisory के अनुसार Linux distributions और LTS vendors को patches पहले ही दे दिए गए थे। Ubuntu, Debian, RHEL जैसे vendors अक्सर fix को अपने पुराने package version में ही “backport” कर देते हैं। इसलिए php -v में 8.3.36 से कम number दिखने का मतलब यह नहीं कि package vulnerable है — और ऊंचा number दिखने का मतलब भी अपने आप safe नहीं। सही status के लिए अपने vendor का security advisory देखें: Ubuntu, Debian, Red Hat।

PHP 8.6 के pre-release builds चलाने वाले users के लिए fix 8.6.0 RC4 में शामिल है, लेकिन PHP team ने इसे production में इस्तेमाल न करने को कहा है।

Step 1: अपना PHP Version कैसे Check करें?

WordPress Site Health Info Server section mein PHP version check karne ka tarika
WordPress Site Health में current PHP version देखें

WordPress Dashboard से

  1. WordPress Admin में login करें।
  2. Tools → Site Health पर जाएं।
  3. ऊपर Info tab पर click करें।
  4. Server section खोलें और PHP version नोट करें।

यह वही PHP version है जो आपकी website को चला रहा है। WordPress Site Health docs

SSH / Terminal से (सावधानी के साथ)

php -v

ध्यान दें: यह command सिर्फ CLI PHP का version दिखाता है। Website को चलाने वाला PHP (PHP-FPM, mod_php या LiteSpeed का lsphp) अलग version या अलग package हो सकता है। एक server पर कई PHP versions installed होना आम बात है। FPM का version अलग से check करें (version number अपने setup के अनुसार बदलें):

# Example: Ubuntu/Debian पर PHP 8.3 FPM
php-fpm8.3 -v

# Example: RHEL/AlmaLinux पर
php-fpm -v

Distro package status कैसे देखें?

Package manager से देखें कि कौन-सा package version installed है, फिर उसे vendor के security advisory में दी गई fixed package version से मिलाएं:

# Ubuntu / Debian (example)
apt policy php8.3-fpm
dpkg -l | grep -i php

# RHEL / AlmaLinux / Rocky (example)
rpm -qa | grep -i php

कई vendors changelog में CVE ID लिखते हैं, इसलिए यह optional check भी मदद कर सकता है:

apt changelog php8.3-fpm | grep -E "CVE-2026-10961[89]"
rpm -q --changelog php-fpm | grep -E "CVE-2026-10961[89]"

Changelog में CVE न दिखने का मतलब हमेशा vulnerable होना नहीं है — कुछ vendors अलग format इस्तेमाल करते हैं। Final confirmation के लिए vendor advisory ही देखें।

Diagram C: Identify → Patch → Restart/Verify → Monitor
1. IDENTIFY
Site Health से website का PHP version, और hosting/server से SAPI (FPM, mod_php, LiteSpeed) पता करें।
2. PATCH
Backup लें, फिर patched release (8.2.35 / 8.3.36 / 8.4.27 / 8.5.12+) या vendor backport install करें।
3. RESTART / VERIFY
अपने setup की सही PHP service restart करें, फिर Site Health और vendor advisory से status confirm करें।
4. MONITOR
PHP fatal errors, worker crashes, नई PHP files, नए admin users और unusual requests पर नज़र रखें।

Step 2: Shared Hosting (cPanel / hPanel) पर PHP Update कैसे करें?

cPanel MultiPHP Manager aur Hostinger hPanel mein PHP version update karne ka guide
cPanel MultiPHP Manager में PHP branch चुनें

Shared hosting पर आप आमतौर पर PHP branch (जैसे 8.3) चुन सकते हैं, लेकिन उस branch का security patch hosting company server पर install करती है। इसलिए दोनों बातें ज़रूरी हैं:

  1. cPanel: Software → MultiPHP Manager (या Select PHP Version) खोलें। अगर आप 8.1 या पुराने पर हैं, तो domain के लिए supported branch (जैसे 8.3 या 8.4) चुनें।
  2. Hostinger hPanel: Website dashboard में Advanced → PHP Configuration में supported version चुनें। Panel के version के हिसाब से path थोड़ा अलग दिख सकता है।
  3. Branch बदलने के बाद WordPress Site Health में exact version फिर से देखें।
  4. Version fixed list से नीचे दिखे, तो host से पूछें कि उन्होंने upstream release या backport लगाया है या नहीं (नीचे email template है)।

Shared hosting पर .user.ini या ini_set() से CVE-2026-109619 का mitigation लागू नहीं होता — यह server-level setting है, इसके लिए भी host से बात करें।

Step 3: VPS / Dedicated Server पर PHP Patch करें

नीचे के commands examples हैं, हर server के लिए copy-paste fix नहीं। Package manager सिर्फ वही package install करता है जो आपकी configured repository में उपलब्ध है। Ondřej PPA या Remi जैसे third-party repositories का अपना release schedule होता है।

पहले ये 3 चीज़ें पता करें

  1. Backup: Website files और database का ताज़ा backup या server snapshot।
  2. SAPI: Site PHP-FPM, Apache mod_php या LiteSpeed (LSAPI) में से किस पर चलती है।
  3. Service name: Server पर कौन-सी PHP / web server services चल रही हैं:
    systemctl list-units --type=service | grep -Ei "php|fpm|apache|httpd|lsws|nginx"

Ubuntu / Debian (example: PHP 8.3)

sudo apt update
sudo apt install --only-upgrade php8.3-fpm php8.3-cli php8.3-common
# अगर Apache mod_php इस्तेमाल करते हैं, तो उसका package भी:
# sudo apt install --only-upgrade libapache2-mod-php8.3

RHEL / AlmaLinux / Rocky Linux (example)

sudo dnf upgrade --refresh php php-fpm php-cli php-common

Restart: सिर्फ अपने setup के हिसाब से

Advisory हर PHP worker को restart करने को कहती है। Restart से कुछ सेकंड का interruption हो सकता है, इसलिए busy site पर कम traffic वाले समय में करें। नीचे से सिर्फ वही command चुनें जो आपके setup पर लागू हो:

आपका Setup Example Restart Command
PHP-FPM (Ubuntu/Debian) sudo systemctl restart php8.3-fpm
PHP-FPM (RHEL family) sudo systemctl restart php-fpm
Apache mod_php sudo systemctl restart apache2 (Debian/Ubuntu) या sudo systemctl restart httpd (RHEL)
LiteSpeed / OpenLiteSpeed (LSAPI) sudo systemctl restart lsws — LiteSpeed अपने lsphp processes खुद manage करता है
Control panel server (cPanel, Plesk आदि) Panel का अपना PHP-FPM / web server restart option इस्तेमाल करें

Restart के बाद website खोलकर देखें, फिर Site Health में version और vendor advisory से package status दोबारा confirm करें।

⚠️ Restart करना न भूलें

Package update disk पर files बदलता है। पहले से चल रहे PHP workers पुराना code memory में चलाते रह सकते हैं। सही service restart किए बिना यह मत मानिए कि website patched है।

Docker / Container वाली websites

Host OS update करने से container के अंदर का PHP नहीं बदलता। और सिर्फ docker pull करने से पहले से चल रहा container भी patch नहीं होता। सही तरीका:

  1. Dockerfile में ऐसा base image चुनें जो patched PHP release या vendor fix वाला हो। Exact version pin करना साफ रहता है, जैसे FROM php:8.3.36-fpm (official php images)।
  2. Image rebuild करें और container redeploy करें:
    # Example (Docker Compose)
    docker compose build --pull --no-cache
    docker compose up -d
  3. Deploy होने के बाद चल रहे container में version check करें (service name अपने setup से बदलें):
    docker compose exec app php -v

Kubernetes या दूसरे orchestrators में भी यही नियम है: नया patched image build करें, rollout करें और running pods में version confirm करें।

PHP Update के बाद Website टूट जाए तो क्या करें?

8.1 या पुराने version से 8.3/8.4 पर जाने पर कुछ पुराने plugins या themes में error आ सकता है। Safe तरीके से debug करें:

  1. wp-config.php खोलें और पहले देखें कि WP_DEBUG पहले से defined है या नहीं। ज़्यादातर sites में define( 'WP_DEBUG', false ); पहले से होता है — नई line जोड़ने के बजाय उसी को बदलें, ताकि duplicate constant न बने।
  2. Errors को visitors से छिपाकर सिर्फ log में भेजें। बेहतर है कि log file web root से बाहर रहे (path अपने server के अनुसार बदलें):
    define( 'WP_DEBUG', true );
    define( 'WP_DEBUG_LOG', '/home/USERNAME/logs/wp-debug.log' );
    define( 'WP_DEBUG_DISPLAY', false );
    @ini_set( 'display_errors', 0 );

    अगर WP_DEBUG_LOG को true रखते हैं, तो log wp-content/debug.log में बनेगा, जो public URL से खुल सकता है — काम खत्म होते ही उसे delete करें। WordPress debugging docs

  3. Log में देखें कि error किस plugin या theme से आ रहा है।
  4. File Manager या SFTP से /wp-content/plugins/ में उस plugin का folder rename करें। Site वापस खुल जानी चाहिए।
  5. उस plugin का updated version install करें या कोई alternative चुनें।
  6. काम पूरा होने पर WP_DEBUG को वापस false करें और log file हटा दें।

ध्यान दें: Site चलाने के लिए वापस unpatched या EOL PHP पर जाना सुरक्षित option नहीं है।

Temporary Mitigation: Patch तुरंत न हो पाए तो?

PHP की official advisory साफ कहती है: patched release या vendor का confirmed security backport ही पूरा समाधान है। नीचे के उपाय सिर्फ कुछ known attack paths पर exposure कम करते हैं — ये installation को safe नहीं बनाते। ये settings server-level हैं, इसलिए shared hosting users इन्हें अपने host से लागू करवाएं।

CVE-2026-109618 (OOM corruption) के लिए

  • memory_limit=-1 administratively set करें: यह predictable PHP memory-limit failure हटाता है, जिस पर confirmed exploit निर्भर है। इसे ऐसे set करें कि application बदल न सके (जैसे FPM pool या Apache में php_admin_value), और check करें कि कोई pool, directory या application setting वापस finite limit न लगा दे।
  • Risk समझें: -1 का मतलब है PHP की per-script memory limit पूरी तरह हट जाती है। एक भारी या malicious request पूरे server की RAM खा सकती है और दूसरी sites भी down हो सकती हैं। इसे universally safe setting मत मानिए। Advisory के अनुसार यह complete mitigation भी नहीं है — underlying allocation fail होने पर vulnerable path अब भी पहुंचा जा सकता है।
  • Container / cgroup memory limit: Availability boundary के तौर पर इस्तेमाल करें, बेहतर हो कि policy सिर्फ प्रभावित worker को kill करे। RLIMIT_AS या RLIMIT_DATA इस्तेमाल न करें — advisory के अनुसार ये खुद vulnerable allocation failure पैदा कर सकते हैं।
  • post_max_size कम रखें: File uploads की ज़रूरत न हो तो 8M, ज़रूरत हो तो 32M। upload_max_filesize को post_max_size से कम रखें।
  • Frontend पर limits: Web server या proxy पर decoded request size, input field count, multipart part count, header count और nesting depth सीमित करें — उन requests के लिए भी जिनमें usable Content-Length नहीं है। Application multipart forms इस्तेमाल नहीं करती, तो ऐसी requests PHP तक पहुंचने से पहले block करें।

CVE-2026-109619 (stale global state) के लिए

  • session.upload_progress.enabled=0 और हर worker restart: इसे php.ini, FPM pool या ऐसी server configuration में set करें जो request parsing से पहले लागू हो। ini_set() या FPM .user.ini पर भरोसा न करें। यह confirmed session paths को block करता है, दूसरे variants को नहीं।
  • सिर्फ PHP 8.5 पर: fatal_error_backtraces=0 administratively set करें और हर worker restart करें। यह सिर्फ confirmed fatal backtrace path को block करता है।
  • Per-request INI diagnostics हटाएं: .htaccess के php_value/php_flag या nginx से भेजे जाने वाले PHP_VALUE में invalid या deprecated settings हटाएं। error_reporting, display_errors या @ से warnings छिपाने से कोई फायदा नहीं।
  • Attacker-reachable fatal errors और timeouts ठीक करें: खासकर upload, import, callbacks और cleanup paths में।
  • Optional: Performance की चिंता न हो तो advisory pm.max_requests=1 पर विचार करने को कहती है, ताकि एक worker सिर्फ एक request handle करे। इससे CPU load काफी बढ़ सकता है।

Example configuration (अपने setup के हिसाब से बदलें)

PHP-FPM pool (जैसे /etc/php/8.3/fpm/pool.d/www.conf) — बदलाव के बाद FPM restart ज़रूरी:

; CVE-2026-109618 exposure reduction (memory_limit=-1 के risks ऊपर पढ़ें)
php_admin_value[memory_limit] = -1
php_admin_value[post_max_size] = 8M
php_admin_value[upload_max_filesize] = 6M

; CVE-2026-109619 confirmed session path
php_admin_flag[session.upload_progress.enabled] = off

; सिर्फ PHP 8.5:
; php_admin_flag[fatal_error_backtraces] = off

Apache mod_php (VirtualHost या server config में) — बदलाव के बाद Apache restart ज़रूरी:

php_admin_value memory_limit -1
php_admin_value post_max_size 8M
php_admin_value upload_max_filesize 6M
php_admin_flag session.upload_progress.enabled off

Uploads वाली site पर post_max_size को 32M तक रखें और upload_max_filesize उससे कम। Session upload progress docs

⚠️ Mitigation ≠ Fix

WAF, proxy limits या ऊपर की INI settings सिर्फ कुछ attack paths पर exposure कम करते हैं। PHP advisory के अनुसार कोई configuration हर variant को cover नहीं करती। पूरा समाधान PHP को patched release या vendor backport पर update करना ही है।

Hosting Provider को भेजने के लिए Email Template

Shared hosting पर हैं और Site Health में version fixed list से पुराना दिख रहा है, तो यह message support ticket में भेजें:

Subject: Urgent: PHP2Shell (CVE-2026-109618 / CVE-2026-109619) patch status

Hello Support Team,

Please confirm the patch status for PHP2Shell
(CVE-2026-109618 and CVE-2026-109619) on my account.

Domain: [yourdomain.com]
Account/Server ID: [your-account-id]
Current PHP version (WordPress Site Health): [e.g. 8.3.30]

1. Has the PHP runtime for my account been updated to a fixed release
   (8.2.35 / 8.3.36 / 8.4.27 / 8.5.12 or later), or to a vendor
   package that includes the backported fixes?
2. Have all PHP workers (PHP-FPM / LSAPI / Apache) been restarted
   after the update?
3. Until the patch is applied, can you apply the mitigations from the
   official PHP advisory at server level
   (e.g. session.upload_progress.enabled=0)?
4. If my site is on PHP 8.1 or older, which supported version do you
   recommend I switch to?

Thank you,
[Your Name]

Agency और SysAdmin के लिए Remediation Checklist

  • Inventory: सभी servers, containers और hosting accounts पर PHP branch, installed package version और SAPI (FPM / mod_php / LSAPI / FrankenPHP) की list बनाएं।
  • Priority: Public-facing, mod_php वाली, e-commerce और login/payment वाली sites पहले।
  • Backup: Patch से पहले files और database का snapshot।
  • Patch: Upstream fixed release या vendor security backport।
  • Restart: हर server पर सही PHP service restart करें। Containers rebuild और redeploy करें।
  • Verify: Website वाला runtime version (CLI नहीं) और vendor advisory के हिसाब से package status confirm करें।
  • EOL cleanup: PHP 8.1 और पुराने branches वाली sites का migration plan।

Compromise का शक हो तो: शुरुआती जांच

नीचे के checks सिर्फ clues देते हैं, इनसे exploitation साबित नहीं होता। Legitimate deployments और plugin updates भी files बदलते हैं, और attacker files के timestamps पुराने भी दिख सकते हैं।

  • हाल में बदली गई PHP files की list (path अपने server के अनुसार):
    find /var/www -name "*.php" -type f -mtime -3
  • WordPress users list में अनजान administrator accounts।
  • /wp-content/uploads/ में अनपेक्षित .php files।
  • Server crontab और WordPress cron में अनजान बदलाव।
  • Web server और PHP logs में unusual errors, worker crashes और suspicious requests। Advisory के अनुसार logs में error न दिखना भी safety का सबूत नहीं है।

Compromise के ठोस संकेत मिलें तो

  1. Files delete या server rebuild करने से पहले relevant logs और suspicious files की copy सुरक्षित रखें, ताकि ठीक से जांच हो सके।
  2. Incident की गंभीरता के हिसाब से किसी अनुभवी security professional या hosting security team से जांच करवाएं।
  3. जांच के दायरे के अनुसार WordPress admin passwords, database credentials, SFTP/SSH keys, API keys और wp-config.php की salts/keys बदलें।
  4. Backup से restore तभी करें जब पक्का हो कि वह backup compromise से पहले का और clean है — वरना backdoor वापस आ सकता है। Restore के बाद भी PHP patch ज़रूर करें।
  5. Financial fraud या data theft हुआ है, तो cybercrime.gov.in पर या 1930 helpline पर शिकायत करें।

FAQ: PHP2Shell से जुड़े आम सवाल

1. PHP2Shell क्या है?

PHP2Shell, PHP runtime की दो vulnerabilities — CVE-2026-109618 (RCE via OOM corruption) और CVE-2026-109619 (RCE via stale global state) — का nickname है। PHP की official advisory के अनुसार दोनों बिना login के remote code execution तक ले जा सकती हैं, और दोनों को Critical (CVSS v4 9.2) बताया गया है।

2. क्या WordPress update करने से PHP2Shell fix हो जाएगा?

नहीं। Bug WordPress में नहीं बल्कि PHP runtime में है, जिस पर WordPress चलता है। WordPress core, plugins और themes update रखना अच्छी आदत है, लेकिन इस issue के लिए website चलाने वाले PHP को patched release या vendor backport पर update करना ज़रूरी है।

3. कौन-से PHP versions safe हैं?

Upstream releases में PHP 8.2.35, 8.3.36, 8.4.27 और 8.5.12 या नए versions में fix है। Ubuntu, Debian या RHEL जैसे vendors fix को पुराने version number वाले package में backport कर सकते हैं, इसलिए distro package का status vendor के security advisory से confirm करें।

4. मेरी site PHP 7.4 या 8.1 पर है, क्या करूं?

ये End-of-Life branches हैं और इनके नए official releases नहीं आएंगे। PHP team ने source से build करने वालों के लिए minimal backports दिए हैं, लेकिन ज़्यादातर sites को PHP 8.3 या 8.4 पर migrate करना चाहिए, या अपने LTS vendor से backport confirm करना चाहिए। पहले staging या backup पर test करें।

5. PHP update के बाद restart क्यों ज़रूरी है?

Update से disk पर नई files आती हैं, लेकिन पहले से चल रहे PHP-FPM, Apache या LiteSpeed workers memory में पुराना code चला सकते हैं। Official advisory भी हर worker restart करने को कहती है। अपने setup की सही service restart करने के बाद ही patched code load होता है।

6. क्या WAF या memory_limit=-1 से site safe हो जाएगी?

नहीं। WAF और proxy limits कुछ requests रोक सकते हैं, और memory_limit=-1 CVE-2026-109618 का confirmed exploit path कम करता है, लेकिन advisory के अनुसार कोई भी complete fix नहीं है। memory_limit=-1 से server-wide RAM exhaustion का risk भी बढ़ता है। इन्हें सिर्फ patch होने तक temporary उपाय मानें।

7. Shared hosting पर मैं खुद patch कर सकता हूं?

Shared hosting पर आप cPanel या hPanel से PHP branch बदल सकते हैं, लेकिन exact security patch और server-level mitigations hosting company लागू करती है। Site Health में version check करें और fixed version या confirmed backport न हो तो host को support ticket भेजें।

निष्कर्ष

PHP2Shell (CVE-2026-109618 और CVE-2026-109619) PHP runtime की critical vulnerabilities हैं, इसलिए plugin update से काम नहीं चलेगा। आज ही अपनी website का PHP version check करें, 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12 या vendor backport पर update करें, सही PHP service restart करें और logs monitor करें। Patch में देरी हो तो official mitigations सिर्फ अस्थायी सहारे की तरह इस्तेमाल करें।

Official Sources और Related Article

Please follow and like us:
Pin Share
Edit PHP2Shell क्या है? CVE-2026-109618 और CVE-2026-109619 का Fix (Hindi Guide)

By Joy Dutta

Infotech Keeda ek Hindi technology platform hai jahan Computer, AI, Internet, SEO aur Digital Technology se judi jankari share ki jati hai.

Leave a Reply

Logged in as Joy Dutta. Edit your profile. Log out? Required fields are marked *

Do the social media icons show like you want to?

If not, ask us in the forum, we're happy to help – quickly & for free!

We can also consult you how to place them for maximum effect & assist with anything else.

Ask in forum
Trouble logging in?

Your account on Wordpress.org (where you open a new support thread) is different to the one you login to your WordPress dashboard (where you are now). If you don't have a WordPress.org account yet, please sign up at the top right on the Support Forum page, and then scroll down on that page . It only takes a minute :)

Thank you!