Elementor Pro 4.2.1 ਅਤੇ ਇਸ ਤੋਂ ਪਹਿਲਾਂ ਦੇ ਵਰਜ਼ਨਾਂ ਵਿੱਚ Forms widget ਦੇ file-upload field ਵਿੱਚ ਇੱਕ unauthenticated remote-code-execution (RCE) ਖਾਮੀ ਕਾਰਨ ਸਾਈਟਾਂ ਨਾਲ ਛੇੜਛਾੜ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ; ਇਸ ਸਮੱਸਿਆ ਨੂੰ version 4.2.2 ਵਿੱਚ ਠੀਕ (patch) ਕਰ ਦਿੱਤਾ ਗਿਆ ਹੈ, ਇਸ ਲਈ ਪੁਰਾਣੇ ਕੋਡ ਵਾਲੀਆਂ ਸਾਈਟਾਂ ਨੂੰ ਤੁਰੰਤ ਅੱਪਗ੍ਰੇਡ ਕਰ ਲੈਣਾ ਚਾਹੀਦਾ ਹੈ।
ਇਹ ਬੱਗ ਕੀ ਕਰਦਾ ਹੈ
ਇਸ ਕਮਜ਼ੋਰੀ ਦੀ CVSS ਰੇਟਿੰਗ 9.0 ਹੈ, ਜਿਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਇੱਕ ਹਮਲਾਵਰ ਜੋ ਕਮਜ਼ੋਰ ਸਾਈਟ ਤੱਕ ਪਹੁੰਚ ਸਕਦਾ ਹੈ, ਉਹ ਬਿਨਾਂ ਲੌਗਇਨ ਕੀਤੇ ਜਾਂ ਕੋਈ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲ ਦਿੱਤੇ ਸਰਵਰ 'ਤੇ ਕੋਈ ਵੀ PHP ਕੋਡ ਚਲਾ ਸਕਦਾ ਹੈ। ਸਮੱਸਿਆ Elementor Pro ਦੁਆਰਾ ਆਪਣੇ Forms widget ਵਿੱਚ file uploads ਨੂੰ ਪ੍ਰੋਸੈਸ ਕਰਨ ਦੇ ਤਰੀਕੇ ਵਿੱਚ ਹੈ। ਪਲੱਗਇਨ ਦੋ ਵੱਖ-ਵੱਖ ਲੂਪ (loops) ਚਲਾਉਂਦਾ ਹੈ: ਇੱਕ ਜੋ ਹਰੇਕ ਅਪਲੋਡ ਕੀਤੀ ਫਾਈਲ ਦੀ ਜਾਂਚ (validate) ਕਰਦਾ ਹੈ, ਅਤੇ ਦੂਜਾ ਜੋ ਫਾਈਲ ਨੂੰ ਵੈੱਬ-ਐਕਸੈਸਿਬਲ ਅਪਲੋਡ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਸੇਵ ਕਰਦਾ ਹੈ।
ਇੱਕ ਹਮਲਾਵਰ ਇੱਕ ਅਜਿਹੀ ਸਿੰਗਲ ਰਿਕਵੈਸਟ ਤਿਆਰ ਕਰ ਸਕਦਾ ਹੈ ਜਿਸ ਵਿੱਚ ਦੋ ਫਾਈਲਾਂ ਹੋਣ। ਪਹਿਲੀ ਫਾਈਲ ਦਾ ਨਾਮ ਖਾਲੀ ਰੱਖਿਆ ਜਾਂਦਾ ਹੈ, ਜਿਸ ਕਾਰਨ ਵੈਲੀਡੇਸ਼ਨ ਲੂਪ ਇਸਦੀ ਜਾਂਚ ਨੂੰ ਛੱਡ ਦਿੰਦਾ ਹੈ। ਦੂਜੀ ਫਾਈਲ, ਜੋ ਕਿ ਇੱਕ ਮਾਲੀਸ਼ੀਅਸ PHP ਸਕ੍ਰਿਪਟ ਹੈ, ਦੂਜੇ ਲੂਪ ਵਿੱਚੋਂ ਲੰਘ ਜਾਂਦੀ ਹੈ ਅਤੇ ਇੱਕ ਪਬਲਿਕ ਫੋਲਡਰ ਵਿੱਚ ਲਿਖ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ। ਕਿਉਂਕਿ Elementor Pro ਅਪਲੋਡ ਕੀਤੀਆਂ ਫਾਈਲਾਂ ਦੇ ਨਾਮ ਟਾਈਮਸਟੈਂਪ (timestamp) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਰੱਖਦਾ ਹੈ, ਹਮਲਾਵਰ ਫਾਈਲ ਦੇ ਨਾਮ ਦਾ ਅੰਦਾਜ਼ਾ ਲਗਾ ਸਕਦਾ ਹੈ ਅਤੇ ਬਾਅਦ ਵਿੱਚ ਕੋਡ ਚਲਾਉਣ ਲਈ ਸਿੱਧੇ ਤੌਰ 'ਤੇ ਉਸਦੀ ਰਿਕਵੈਸਟ ਕਰ ਸਕਦਾ ਹੈ।
ਇਹ ਖਾਮੀ ਕਿਵੇਂ ਉਭਰੀ
ਡਿਊਲ-ਲੂਪ ਡਿਜ਼ਾਈਨ ਦਾ ਉਦੇਸ਼ ਵੈਲੀਡੇਸ਼ਨ ਅਤੇ ਸਟੋਰੇਜ ਨੂੰ ਸੁਤੰਤਰ ਰੱਖਣਾ ਸੀ, ਪਰ ਇੱਕ ਸਾਂਝੀ ਸੈਨਿਟੀ ਚੈੱਕ (sanity check) ਦੀ ਘਾਟ ਕਾਰਨ ਖਾਲੀ-ਨਾਮ ਵਾਲੀ ਚਾਲ (empty-name trick) ਅੰਦਰੋਂ ਨਿਕਲ ਗਈ। ਇਹ ਬੱਗ ਹਰ ਉਸ ਇੰਸਟਾਲੇਸ਼ਨ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕਰਦਾ ਹੈ ਜੋ Forms widget ਦੇ file-upload field ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ, ਭਾਵੇਂ ਸਾਈਟ ਮਾਲਕ ਨੇ ਵਿਜ਼ਿਟਰਾਂ ਲਈ ਉਹ ਫੀਚਰ ਚਾਲੂ ਕੀਤਾ ਹੋਵੇ ਜਾਂ ਨਹੀਂ।
ਕੌਣ ਖਤਰੇ ਵਿੱਚ ਹੈ
ਕੋਈ ਵੀ WordPress ਸਾਈਟ ਜਿਸ ਵਿੱਚ Elementor Pro 4.2.1 ਜਾਂ ਇਸ ਤੋਂ ਪਹਿਲਾਂ ਦਾ ਰਿਲੀਜ਼ ਇੰਸਟਾਲ ਹੈ, ਉਹ ਖਤਰੇ ਵਿੱਚ ਹੈ। ਕਿਉਂਕਿ ਇਸ ਐਕਸਪਲੋਇਟ ਲਈ ਅਥੈਂਟੀਕੇਸ਼ਨ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ, ਇਸ ਲਈ ਉਹ ਸਾਈਟਾਂ ਵੀ ਕਮਜ਼ੋਰ ਹਨ ਜੋ ਐਡਮਿਨ ਐਕਸੈਸ ਨੂੰ ਸੀਮਤ ਕਰਦੀਆਂ ਹਨ। ਸਫਲ ਐਕਸਪਲੋਇਟੇਸ਼ਨ ਹਮਲਾਵਰ ਨੂੰ ਹੋਸਟਿੰਗ ਮਾਹੌਲ 'ਤੇ ਪੂਰਾ ਕੰਟਰੋਲ ਦਿੰਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਡਾਟਾ ਚੋਰੀ, ਸਾਈਟ ਡੇਫੇਸਮੈਂਟ, ਜਾਂ ਰੈਂਸਮਵੇਅਰ ਲਗਾਉਣ ਦਾ ਰਸਤਾ ਖੁੱਲ੍ਹ ਜਾਂਦਾ ਹੈ।
ਹੁਣ ਕੀ ਕਰਨਾ ਹੈ
WordPress CLI ਕਮਾਂਡ ਨਾਲ ਇੰਸਟਾਲ ਕੀਤੇ ਗਏ ਵਰਜ਼ਨ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ:
wp plugin list --name=elementor-pro --field=versionਜੇਕਰ ਆਉਟਪੁੱਟ 4.2.1 ਜਾਂ ਇਸ ਤੋਂ ਘੱਟ ਦਿਖ
