{"uuid": "b073c531-15a2-4034-ad03-a55f15acb116", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "9f56dd64-161d-43a6-b9c3-555944290a09", "vulnerability": "CVE-2025-12352", "type": "seen", "source": "https://t.me/cyberedrussia/1799", "content": "\ud83d\udee1 \u041a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c \u0432 WordPress Gravity Forms: \u043a\u0430\u043a \u0437\u0430\u0449\u0438\u0442\u0438\u0442\u044c\u0441\u044f\n\nCVE-2025-12352 (CVSS 9.8) \u2014 \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c \u0432 \u043f\u043b\u0430\u0433\u0438\u043d\u0435 WordPress Gravity Forms (\u0432\u0435\u0440\u0441\u0438\u0438 \u2264 2.9.20) \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0447\u0435\u0440\u0435\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u044e Post Image.\n\n\u27a1\ufe0fGravity Forms \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c \u0432 copy_post_image() \u2014 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 URL \u0432 wp-content/uploads \u0431\u0435\u0437 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0442\u0438\u043f\u0430/\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f. \u0415\u0441\u043b\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b post-creation + \u043f\u043e\u043b\u0435 Post Image \u0438 \u0432 PHP \u0432\u043a\u043b\u044e\u0447\u0451\u043d allow_url_fopen, \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u0432 uploads \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u0444\u0430\u0439\u043b (\u0432\u043a\u043b\u044e\u0447\u0430\u044f .php) \u2014 \u0438 \u043f\u0440\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432 uploads \u044d\u0442\u043e \u0434\u0430\u0451\u0442 \u043f\u0443\u0442\u044c \u043a RCE. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0431\u044b\u0441\u0442\u0440\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 2.9.21, \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0443\u0436\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e.\n\n\u26ab\ufe0f\u041a\u043e\u0433\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f?\n\n\u2022 \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 Gravity Forms \u2264 2.9.20\n\u2022 \u041d\u0430\u043b\u0438\u0447\u0438\u0435 \u0444\u043e\u0440\u043c\u044b \u0441 post-creation \u0438 \u043f\u043e\u043b\u0435\u043c Post Image\n\u2022 allow_url_fopen = On \u0432 PHP\n\u2022 \u0421\u0435\u0440\u0432\u0435\u0440 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438\u0437 wp-content/uploads\n\u0415\u0441\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0443\u043d\u043a\u0442\u043e\u0432 \u043f\u0440\u043e \u0432\u0430\u0441 \u2014 \u0440\u0438\u0441\u043a\u0438 \u0435\u0441\u0442\u044c.\n\n\ud83d\udc49\u041a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442?\n\n\u0424\u043e\u0440\u043c\u0430 \u0441 Post Image \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 URL \u2192 copy_post_image() \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u0442 \u0440\u0435\u0441\u0443\u0440\u0441 \u0431\u0435\u0437 \u0444\u0438\u043b\u044c\u0442\u0440\u0430 \u2192 \u0444\u0430\u0439\u043b \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 uploads \u2192 \u0435\u0441\u043b\u0438 \u0441\u0435\u0440\u0432\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442 PHP \u0432 uploads \u2014 \u0444\u0430\u0439\u043b \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c RCE. \u042d\u0442\u043e \u043a\u043b\u0430\u0441\u0441\u0438\u043a\u0430 CWE-434: unrestricted upload of dangerous file type.\n\n\ud83d\udca1 \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u043f\u043e \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044e\n\n\u25aa\ufe0f1. \u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c Gravity Forms \u0434\u043e 2.9.21.\n\u25aa\ufe0f2. \u041f\u043e\u043a\u0430 \u043d\u0435 \u043e\u0431\u043d\u043e\u0432\u0438\u043b\u0438 \u2014 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c/\u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c Post Image \u0438 post-creation \u043d\u0430 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0445.\n\u25aa\ufe0f3. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c allow_url_fopen = Off \u0432 php.ini (\u043e\u0446\u0435\u043d\u0438\u0442\u044c \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u043d\u0430 \u0441\u0430\u0439\u0442).\n\u25aa\ufe0f4. \u0417\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 PHP \u0432 wp-content/uploads:\nApache:\n\n  php_admin_flag engine off\n\nNginx:\nlocation ~* /wp-content/uploads/.*\\.php$ {\n  deny all;\n}\n\u25aa\ufe0f5. WAF / \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430: \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443/\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432 \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u043c\u0438 .php, .phtml \u0438 \u0442.\u043f. \u0432 uploads.\n\u25aa\ufe0f6. \u041f\u0440\u043e\u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c uploads \u043d\u0430 \u043f\u0440\u0435\u0434\u043c\u0435\u0442 \u043f\u043e\u0434\u043e\u0437\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432:\nfind wp-content/uploads -type f -iname \"*.php*\"\n\u25aa\ufe0f7. \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043b\u043e\u0433\u0438 \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u043b\u043e\u0433\u0438 \u0444\u043e\u0440\u043c \u043d\u0430 \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u044b\u0435 POST/GET (\u043f\u043e \u0434\u0430\u0442\u0435 \u0438 IP).\n\u25aa\ufe0f8. \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0442\u0430\u043a\u0438\u0445 \u0444\u043e\u0440\u043c \u0432 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u0430\u0443\u0434\u0438\u0442 WordPress \u0438 \u0432 CI/CD (\u0441\u0442\u0430\u0442\u0438\u043a/\u0441\u043a\u0440\u0438\u043f\u0442\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438).\n\n\u26a1\ufe0f\u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0430\u043c\u043e\u0442\u0435\u0441\u0442\n\n1. \u0415\u0441\u0442\u044c \u043b\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 Gravity Forms \u0441 \u043e\u043f\u0446\u0438\u0435\u0439 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u043e\u0441\u0442\u043e\u0432 \u0438 \u043f\u043e\u043b\u0435\u043c Post Image?\n2. \u0412\u043a\u043b\u044e\u0447\u0451\u043d \u043b\u0438 allow_url_fopen? (\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430: php -i | grep allow_url_fopen \u0438\u043b\u0438 phpinfo)\n3. \u0415\u0441\u0442\u044c \u043b\u0438 \u0432 wp-content/uploads \u043f\u043e\u0434\u043e\u0437\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u043c\u0438 \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430?\n\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u044f \u0431\u044b \u0434\u0432\u0430 \u043e\u0442\u0432\u0435\u0442\u0430 \u2014 \u00ab\u0434\u0430\u00bb \u2014 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0439\u0442\u0435 \u0447\u0435\u043a-\u043b\u0438\u0441\u0442 \u0441\u0432\u0435\u0440\u0445\u0443.", "creation_timestamp": "2026-07-29T12:01:52.451745Z"}