{"id":411,"date":"2026-08-20T17:39:00","date_gmt":"2026-08-20T15:39:00","guid":{"rendered":"https:\/\/helloblog.io\/hu\/elementor-pro-kritikus-fajlfeltoltesi-serulekenyseg\/"},"modified":"2026-08-20T17:39:00","modified_gmt":"2026-08-20T15:39:00","slug":"elementor-pro-kritikus-fajlfeltoltesi-serulekenyseg","status":"publish","type":"post","link":"https:\/\/helloblog.io\/hu\/elementor-pro-kritikus-fajlfeltoltesi-serulekenyseg\/","title":{"rendered":"Kritikus, hiteles\u00edt\u00e9s n\u00e9lk\u00fcli f\u00e1jlfelt\u00f6lt\u00e9si hib\u00e1t jav\u00edtott az Elementor Pro"},"content":{"rendered":"\n<p>Kritikus s\u00e9r\u00fcl\u00e9kenys\u00e9get jav\u00edtottak az Elementor Pro WordPress-b\u0151v\u00edtm\u00e9nyben. A hiba lehet\u0151v\u00e9 tette, hogy egy hiteles\u00edt\u00e9s n\u00e9lk\u00fcli t\u00e1mad\u00f3 tetsz\u0151leges f\u00e1jlt &#8211; ak\u00e1r futtathat\u00f3 PHP-k\u00f3dot &#8211; t\u00f6lts\u00f6n fel egy \u00e9rintett oldalra, majd azt a szerveren lefuttassa.<\/p>\n\n\n\n<div class=\"wp-block-group callout callout-danger is-style-danger is-layout-flow wp-block-group-is-layout-flow\" style=\"border-width:1px;border-radius:8px;padding-top:1rem;padding-right:1.5rem;padding-bottom:1rem;padding-left:1.5rem\">\n\n<h4 class=\"wp-block-heading callout-title\">Azonnali teend\u0151<\/h4>\n\n\n<p>Friss\u00edtsd az Elementor Pro-t legal\u00e1bb a 4.2.2-es verzi\u00f3ra. Minden 4.2.1-es vagy kor\u00e1bbi kiad\u00e1s \u00e9rintett.<\/p>\n\n<\/div>\n\n\n\n<p>A hiba CVSS-pontsz\u00e1ma <strong>9,8\/10<\/strong>, azonos\u00edt\u00f3ja <a href=\"https:\/\/www.cve.org\/CVERecord?id=CVE-2026-32475\">CVE-2026-32475<\/a>. A Wordfence Bug Bounty Programj\u00e1n kereszt\u00fcl jelentett s\u00e9r\u00fcl\u00e9kenys\u00e9g a becsl\u00e9sek szerint mintegy hatmilli\u00f3 akt\u00edv telep\u00edt\u00e9st haszn\u00e1l\u00f3 Elementor Pro-t \u00e9rinti.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Mikor t\u00e1madhat\u00f3 az oldal?<\/h2>\n\n\n\n<p>A sikeres kihaszn\u00e1l\u00e1shoz nem kell WordPress-fi\u00f3k vagy m\u00e1s hiteles\u00edt\u00e9s. A t\u00e1mad\u00f3nak csak egy olyan publikus oldalra van sz\u00fcks\u00e9ge, amelyen Elementor Pro Form widget m\u0171k\u00f6dik, \u00e9s abban legal\u00e1bb egy olyan File Upload mez\u0151 tal\u00e1lhat\u00f3, amelyet nem jel\u00f6ltek k\u00f6telez\u0151k\u00e9nt.<\/p>\n\n\n\n<p>Ez a felt\u00e9tel fontos: \u00f6nmag\u00e1ban az Elementor Pro telep\u00edt\u00e9se nem nyitja meg automatikusan a t\u00e1mad\u00e1si fel\u00fcletet. Ha azonban a l\u00e1togat\u00f3k sz\u00e1m\u00e1ra el\u00e9rhet\u0151 \u0171rlapon opcion\u00e1lis f\u00e1jlfelt\u00f6lt\u00e9s van, a jav\u00edt\u00e1s el\u0151tti verzi\u00f3kban a felt\u00f6lt\u00f6tt f\u00e1jl t\u00edpus\u00e1nak \u00e9s kiterjeszt\u00e9s\u00e9nek ellen\u0151rz\u00e9se megker\u00fclhet\u0151 volt.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A hiba oka: egy korai return le\u00e1ll\u00edtotta az ellen\u0151rz\u00e9st<\/h2>\n\n\n\n<p>Az Elementor Pro a vend\u00e9gek \u00e1ltal is el\u00e9rhet\u0151 <code>Ajax_Handler<\/code> oszt\u00e1ly <code>ajax_send_form()<\/code> f\u00fcggv\u00e9ny\u00e9vel dolgozza fel az \u0171rlapbek\u00fcld\u00e9seket. A bek\u00fcld\u00f6tt adatokat \u00e9s felt\u00f6lt\u00f6tt f\u00e1jlokat egy <code>Form_Record<\/code> objektumba csomagolja, majd a File Upload mez\u0151kn\u00e9l az <code>ElementorProModulesFormsFieldsUpload<\/code> oszt\u00e1ly <code>validation()<\/code> \u00e9s <code>process_field()<\/code> met\u00f3dusait h\u00edvja.<\/p>\n\n\n\n<p>A <code>validation()<\/code> el\u0151sz\u00f6r a megengedett f\u00e1jldarabsz\u00e1mot ellen\u0151rzi, majd v\u00e9gigmegy a felt\u00f6lt\u00e9si mez\u0151 f\u00e1jljain. Opcion\u00e1lis mez\u0151n\u00e9l azonban az \u00fcres felt\u00f6lt\u00e9si helyet jelz\u0151 <code>UPLOAD_ERR_NO_FILE<\/code> hib\u00e1ra <code>return<\/code> utas\u00edt\u00e1ssal reag\u00e1lt. Emiatt nemcsak az \u00fcres elemet ugrotta \u00e1t, hanem az adott mez\u0151 \u00f6sszes tov\u00e1bbi f\u00e1jlj\u00e1nak ellen\u0151rz\u00e9s\u00e9t is le\u00e1ll\u00edtotta.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>foreach ( $files[ $id ] as $index =&gt; $file ) {\n    \/\/ Nem k\u00f6telez\u0151 mez\u0151n\u00e9l nincs felt\u00f6lt\u00f6tt f\u00e1jl.\n    if ( ! $field['required'] &amp;&amp; UPLOAD_ERR_NO_FILE === $file['error'] ) {\n        return; \/\/ Hib\u00e1s: az eg\u00e9sz valid\u00e1ci\u00f3b\u00f3l kil\u00e9p.\n    }\n\n    if ( $field['required'] &amp;&amp; UPLOAD_ERR_NO_FILE === $file['error'] ) {\n        $ajax_handler-&gt;add_error( $id, $upload_errors[ $file['error'] ] );\n        return;\n    }\n\n    if ( $file['error'] &gt; UPLOAD_ERR_OK ) {\n        $ajax_handler-&gt;add_error( $id, $upload_errors[ $file['error'] ] );\n        return;\n    }\n\n    if ( ! $this-&gt;is_file_type_valid( $field, $file ) ) {\n        $ajax_handler-&gt;add_error( $id, esc_html__( 'This file type is not allowed.', 'elementor-pro' ) );\n    }\n\n    if ( ! $this-&gt;is_file_size_valid( $field, $file ) ) {\n        $ajax_handler-&gt;add_error( $id, esc_html__( 'This file exceeds the maximum allowed size.', 'elementor-pro' ) );\n    }\n}\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#F97583\">foreach<\/span><span style=\"color:#E1E4E8\"> ( $files[ $id ] <\/span><span style=\"color:#F97583\">as<\/span><span style=\"color:#E1E4E8\"> $index <\/span><span style=\"color:#F97583\">=><\/span><span style=\"color:#E1E4E8\"> $file ) {<\/span><\/span>\n<span class=\"line\"><span style=\"color:#6A737D\">    \/\/ Nem k\u00f6telez\u0151 mez\u0151n\u00e9l nincs felt\u00f6lt\u00f6tt f\u00e1jl.<\/span><\/span>\n<span class=\"line\"><span style=\"color:#F97583\">    if<\/span><span style=\"color:#E1E4E8\"> ( <\/span><span style=\"color:#F97583\">!<\/span><span style=\"color:#E1E4E8\"> $field[<\/span><span style=\"color:#9ECBFF\">'required'<\/span><span style=\"color:#E1E4E8\">] <\/span><span style=\"color:#F97583\">&#x26;&#x26;<\/span><span style=\"color:#79B8FF\"> UPLOAD_ERR_NO_FILE<\/span><span style=\"color:#F97583\"> ===<\/span><span style=\"color:#E1E4E8\"> $file[<\/span><span style=\"color:#9ECBFF\">'error'<\/span><span style=\"color:#E1E4E8\">] ) {<\/span><\/span>\n<span class=\"line\"><span style=\"color:#F97583\">        return<\/span><span style=\"color:#E1E4E8\">; <\/span><span style=\"color:#6A737D\">\/\/ Hib\u00e1s: az eg\u00e9sz valid\u00e1ci\u00f3b\u00f3l kil\u00e9p.<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#F97583\">    if<\/span><span style=\"color:#E1E4E8\"> ( $field[<\/span><span style=\"color:#9ECBFF\">'required'<\/span><span style=\"color:#E1E4E8\">] <\/span><span style=\"color:#F97583\">&#x26;&#x26;<\/span><span style=\"color:#79B8FF\"> UPLOAD_ERR_NO_FILE<\/span><span style=\"color:#F97583\"> ===<\/span><span style=\"color:#E1E4E8\"> $file[<\/span><span style=\"color:#9ECBFF\">'error'<\/span><span style=\"color:#E1E4E8\">] ) {<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">        $ajax_handler<\/span><span style=\"color:#F97583\">-><\/span><span style=\"color:#B392F0\">add_error<\/span><span style=\"color:#E1E4E8\">( $id, $upload_errors[ $file[<\/span><span style=\"color:#9ECBFF\">'error'<\/span><span style=\"color:#E1E4E8\">] ] );<\/span><\/span>\n<span class=\"line\"><span style=\"color:#F97583\">        return<\/span><span style=\"color:#E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#F97583\">    if<\/span><span style=\"color:#E1E4E8\"> ( $file[<\/span><span style=\"color:#9ECBFF\">'error'<\/span><span style=\"color:#E1E4E8\">] <\/span><span style=\"color:#F97583\">><\/span><span style=\"color:#79B8FF\"> UPLOAD_ERR_OK<\/span><span style=\"color:#E1E4E8\"> ) {<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">        $ajax_handler<\/span><span style=\"color:#F97583\">-><\/span><span style=\"color:#B392F0\">add_error<\/span><span style=\"color:#E1E4E8\">( $id, $upload_errors[ $file[<\/span><span style=\"color:#9ECBFF\">'error'<\/span><span style=\"color:#E1E4E8\">] ] );<\/span><\/span>\n<span class=\"line\"><span style=\"color:#F97583\">        return<\/span><span style=\"color:#E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#F97583\">    if<\/span><span style=\"color:#E1E4E8\"> ( <\/span><span style=\"color:#F97583\">!<\/span><span style=\"color:#79B8FF\"> $this<\/span><span style=\"color:#F97583\">-><\/span><span style=\"color:#B392F0\">is_file_type_valid<\/span><span style=\"color:#E1E4E8\">( $field, $file ) ) {<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">        $ajax_handler<\/span><span style=\"color:#F97583\">-><\/span><span style=\"color:#B392F0\">add_error<\/span><span style=\"color:#E1E4E8\">( $id, <\/span><span style=\"color:#B392F0\">esc_html__<\/span><span style=\"color:#E1E4E8\">( <\/span><span style=\"color:#9ECBFF\">'This file type is not allowed.'<\/span><span style=\"color:#E1E4E8\">, <\/span><span style=\"color:#9ECBFF\">'elementor-pro'<\/span><span style=\"color:#E1E4E8\"> ) );<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#F97583\">    if<\/span><span style=\"color:#E1E4E8\"> ( <\/span><span style=\"color:#F97583\">!<\/span><span style=\"color:#79B8FF\"> $this<\/span><span style=\"color:#F97583\">-><\/span><span style=\"color:#B392F0\">is_file_size_valid<\/span><span style=\"color:#E1E4E8\">( $field, $file ) ) {<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">        $ajax_handler<\/span><span style=\"color:#F97583\">-><\/span><span style=\"color:#B392F0\">add_error<\/span><span style=\"color:#E1E4E8\">( $id, <\/span><span style=\"color:#B392F0\">esc_html__<\/span><span style=\"color:#E1E4E8\">( <\/span><span style=\"color:#9ECBFF\">'This file exceeds the maximum allowed size.'<\/span><span style=\"color:#E1E4E8\">, <\/span><span style=\"color:#9ECBFF\">'elementor-pro'<\/span><span style=\"color:#E1E4E8\"> ) );<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>A helyes m\u0171k\u00f6d\u00e9shez itt <code>continue<\/code> kellett volna: az csak az aktu\u00e1lis, \u00fcres t\u00f6mbbejegyz\u00e9st hagyja ki, \u00e9s tov\u00e1bb l\u00e9p a k\u00f6vetkez\u0151re. A hib\u00e1s <code>return<\/code> miatt viszont az <code>is_file_type_valid()<\/code> kiterjeszt\u00e9s- \u00e9s f\u00e1jlt\u00edpus-ellen\u0151rz\u00e9se, valamint a m\u00e9retkorl\u00e1t vizsg\u00e1lata m\u00e1r nem futott le a mez\u0151ben szerepl\u0151 tov\u00e1bbi f\u00e1jlokra.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00cdgy jutott \u00e1t a rosszindulat\u00fa f\u00e1jl<\/h2>\n\n\n\n<p>A t\u00e1mad\u00f3 k\u00e9t elemk\u00e9nt k\u00fcldhette a felt\u00f6lt\u00e9si mez\u0151t. Az els\u0151 elem \u00fcres volt, ez\u00e9rt <code>UPLOAD_ERR_NO_FILE<\/code> \u00e1llapotot kapott \u00e9s kiv\u00e1ltotta a korai kil\u00e9p\u00e9st. A m\u00e1sodik elem tartalmazhatta a rosszindulat\u00fa f\u00e1jlt tetsz\u0151legesen v\u00e1lasztott kiterjeszt\u00e9ssel, amely \u00edgy kimaradt az ellen\u0151rz\u00e9sekb\u0151l.<\/p>\n\n\n\n<p>A feldolgoz\u00f3 <code>process_field()<\/code> met\u00f3dus ezzel szemben helyesen <code>continue<\/code> utas\u00edt\u00e1st haszn\u00e1l az \u00fcres els\u0151 elemn\u00e9l. Ez\u00e9rt \u00e1tugorja azt, de a m\u00e1sodik, m\u00e1r valid\u00e1latlan f\u00e1jlt tov\u00e1bbra is feldolgozza. A f\u00e1jln\u00e9v kiterjeszt\u00e9s\u00e9t k\u00f6zvetlen\u00fcl a kliens \u00e1ltal k\u00fcld\u00f6tt n\u00e9vb\u0151l olvassa ki, majd egy egyedi n\u00e9vhez f\u0171zve menti el.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>foreach ( $files[ $id ] as $index =&gt; $file ) {\n    if ( UPLOAD_ERR_NO_FILE === $file['error'] ) {\n        continue; \/\/ Az \u00fcres elem kimarad, a k\u00f6vetkez\u0151 feldolgoz\u00f3dik.\n    }\n\n    $uploads_dir = $this-&gt;get_ensure_upload_dir();\n    $file_extension = pathinfo( $file['name'], PATHINFO_EXTENSION );\n    $filename = uniqid() . '.' . $file_extension;\n    $filename = wp_unique_filename( $uploads_dir, $filename );\n    $new_file = trailingslashit( $uploads_dir ) . $filename;\n\n    if ( is_dir( $uploads_dir ) &amp;&amp; is_writable( $uploads_dir ) ) {\n        $move_new_file = Plugin::instance()-&gt;php_api-&gt;move_uploaded_file(\n            $file['tmp_name'],\n            $new_file\n        );\n\n        if ( false !== $move_new_file ) {\n            @chmod( $new_file, 0644 );\n        }\n    }\n}\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#F97583\">foreach<\/span><span style=\"color:#E1E4E8\"> ( $files[ $id ] <\/span><span style=\"color:#F97583\">as<\/span><span style=\"color:#E1E4E8\"> $index <\/span><span style=\"color:#F97583\">=><\/span><span style=\"color:#E1E4E8\"> $file ) {<\/span><\/span>\n<span class=\"line\"><span style=\"color:#F97583\">    if<\/span><span style=\"color:#E1E4E8\"> ( <\/span><span style=\"color:#79B8FF\">UPLOAD_ERR_NO_FILE<\/span><span style=\"color:#F97583\"> ===<\/span><span style=\"color:#E1E4E8\"> $file[<\/span><span style=\"color:#9ECBFF\">'error'<\/span><span style=\"color:#E1E4E8\">] ) {<\/span><\/span>\n<span class=\"line\"><span style=\"color:#F97583\">        continue<\/span><span style=\"color:#E1E4E8\">; <\/span><span style=\"color:#6A737D\">\/\/ Az \u00fcres elem kimarad, a k\u00f6vetkez\u0151 feldolgoz\u00f3dik.<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">    $uploads_dir <\/span><span style=\"color:#F97583\">=<\/span><span style=\"color:#79B8FF\"> $this<\/span><span style=\"color:#F97583\">-><\/span><span style=\"color:#B392F0\">get_ensure_upload_dir<\/span><span style=\"color:#E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">    $file_extension <\/span><span style=\"color:#F97583\">=<\/span><span style=\"color:#79B8FF\"> pathinfo<\/span><span style=\"color:#E1E4E8\">( $file[<\/span><span style=\"color:#9ECBFF\">'name'<\/span><span style=\"color:#E1E4E8\">], <\/span><span style=\"color:#79B8FF\">PATHINFO_EXTENSION<\/span><span style=\"color:#E1E4E8\"> );<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">    $filename <\/span><span style=\"color:#F97583\">=<\/span><span style=\"color:#79B8FF\"> uniqid<\/span><span style=\"color:#E1E4E8\">() <\/span><span style=\"color:#F97583\">.<\/span><span style=\"color:#9ECBFF\"> '.'<\/span><span style=\"color:#F97583\"> .<\/span><span style=\"color:#E1E4E8\"> $file_extension;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">    $filename <\/span><span style=\"color:#F97583\">=<\/span><span style=\"color:#B392F0\"> wp_unique_filename<\/span><span style=\"color:#E1E4E8\">( $uploads_dir, $filename );<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">    $new_file <\/span><span style=\"color:#F97583\">=<\/span><span style=\"color:#B392F0\"> trailingslashit<\/span><span style=\"color:#E1E4E8\">( $uploads_dir ) <\/span><span style=\"color:#F97583\">.<\/span><span style=\"color:#E1E4E8\"> $filename;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#F97583\">    if<\/span><span style=\"color:#E1E4E8\"> ( <\/span><span style=\"color:#79B8FF\">is_dir<\/span><span style=\"color:#E1E4E8\">( $uploads_dir ) <\/span><span style=\"color:#F97583\">&#x26;&#x26;<\/span><span style=\"color:#79B8FF\"> is_writable<\/span><span style=\"color:#E1E4E8\">( $uploads_dir ) ) {<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">        $move_new_file <\/span><span style=\"color:#F97583\">=<\/span><span style=\"color:#79B8FF\"> Plugin<\/span><span style=\"color:#F97583\">::<\/span><span style=\"color:#B392F0\">instance<\/span><span style=\"color:#E1E4E8\">()<\/span><span style=\"color:#F97583\">-><\/span><span style=\"color:#E1E4E8\">php_api<\/span><span style=\"color:#F97583\">-><\/span><span style=\"color:#B392F0\">move_uploaded_file<\/span><span style=\"color:#E1E4E8\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">            $file[<\/span><span style=\"color:#9ECBFF\">'tmp_name'<\/span><span style=\"color:#E1E4E8\">],<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">            $new_file<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">        );<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#F97583\">        if<\/span><span style=\"color:#E1E4E8\"> ( <\/span><span style=\"color:#79B8FF\">false<\/span><span style=\"color:#F97583\"> !==<\/span><span style=\"color:#E1E4E8\"> $move_new_file ) {<\/span><\/span>\n<span class=\"line\"><span style=\"color:#F97583\">            @<\/span><span style=\"color:#79B8FF\">chmod<\/span><span style=\"color:#E1E4E8\">( $new_file, <\/span><span style=\"color:#79B8FF\">0644<\/span><span style=\"color:#E1E4E8\"> );<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Mivel a k\u00f3d meg\u0151rzi a t\u00e1mad\u00f3 \u00e1ltal megadott kiterjeszt\u00e9st, egy <code>.php<\/code> f\u00e1jl k\u00f6zvetlen\u00fcl a <code>\/wp-content\/uploads\/elementor\/forms\/<\/code> k\u00f6nyvt\u00e1rba ker\u00fclhetett. A t\u00e1mad\u00f3 ezt k\u00f6vet\u0151en HTTP-n k\u00e9rhette le a f\u00e1jlt, ami a PHP-payload futtat\u00e1s\u00e1t, t\u00e1voli k\u00f3dfuttat\u00e1st \u00e9s v\u00e9gs\u0151 soron a teljes webhely \u00e1tv\u00e9tel\u00e9t tehette lehet\u0151v\u00e9. Tetsz\u0151leges f\u00e1jlfelt\u00f6lt\u00e9si hib\u00e1kn\u00e1l webshell \u00e9s m\u00e1s technik\u00e1k is vezethetnek teljes kompromitt\u00e1l\u00f3d\u00e1shoz.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00c9rintett \u00e9s jav\u00edtott verzi\u00f3k<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><strong>\u00c9rintett b\u0151v\u00edtm\u00e9ny:<\/strong> Elementor Website Builder Pro (<code>elementor-pro<\/code>)<\/li>\n\n\n<li><strong>\u00c9rintett verzi\u00f3k:<\/strong> 4.2.1 \u00e9s minden kor\u00e1bbi verzi\u00f3<\/li>\n\n\n<li><strong>Jav\u00edtott verzi\u00f3:<\/strong> 4.2.2<\/li>\n\n\n<li><strong>S\u00e9r\u00fcl\u00e9kenys\u00e9g:<\/strong> hiteles\u00edt\u00e9s n\u00e9lk\u00fcli, korl\u00e1tozatlan f\u00e1jlt\u00edpus-felt\u00f6lt\u00e9s<\/li>\n\n\n<li><strong>Felt\u00e9tel:<\/strong> publikus Elementor Pro Form widget legal\u00e1bb egy nem k\u00f6telez\u0151 File Upload mez\u0151vel<\/li>\n\n\n<li><strong>Kock\u00e1zat:<\/strong> t\u00e1voli k\u00f3dfuttat\u00e1s \u00e9s teljes webhely\u00e1tv\u00e9tel<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">A jav\u00edt\u00e1s id\u0151vonala<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n\n<li><strong>2026. j\u00falius 24.<\/strong> &#8211; Bejelentett\u00e9k a hiteles\u00edt\u00e9s n\u00e9lk\u00fcli, tetsz\u0151leges f\u00e1jlfelt\u00f6lt\u00e9st lehet\u0151v\u00e9 tev\u0151 hib\u00e1t.<\/li>\n\n\n<li><strong>2026. j\u00falius 27.<\/strong> &#8211; Ellen\u0151rizt\u00e9k a bejelent\u00e9st, meger\u0151s\u00edtett\u00e9k a proof-of-concept m\u0171k\u00f6d\u00e9s\u00e9t, \u00e9s \u00e9rtes\u00edtett\u00e9k az Elementort.<\/li>\n\n\n<li><strong>2026. augusztus 2.<\/strong> &#8211; Az Elementor jelezte, hogy egy m\u00e1sik kutat\u00f3 is jelentette a hib\u00e1t, \u00e9s dolgoznak a jav\u00edt\u00e1son.<\/li>\n\n\n<li><strong>2026. augusztus 19.<\/strong> &#8211; Megjelent a teljes jav\u00edt\u00e1st tartalmaz\u00f3 Elementor Pro 4.2.2.<\/li>\n\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Mit ellen\u0151rizz most?<\/h2>\n\n\n\n<p>N\u00e9zd meg minden WordPress-oldalon az Elementor Pro aktu\u00e1lis verzi\u00f3j\u00e1t, \u00e9s telep\u00edtsd legal\u00e1bb a 4.2.2-es kiad\u00e1st. K\u00fcl\u00f6n\u00f6sen s\u00fcrg\u0151s a friss\u00edt\u00e9s, ha publikus kapcsolatfelv\u00e9teli, jelentkez\u00e9si vagy \u00fcgyf\u00e9lbek\u00fcld\u0151 \u0171rlapokon opcion\u00e1lis f\u00e1jlfelt\u00f6lt\u00e9st haszn\u00e1lsz.<\/p>\n\n\n\n<p>A friss\u00edt\u00e9s ut\u00e1n m\u00e9rd fel az Elementor \u0171rlapok felt\u00f6lt\u00e9si mez\u0151it \u00e9s a <code>\/wp-content\/uploads\/elementor\/forms\/<\/code> k\u00f6nyvt\u00e1r tartalm\u00e1t is. Ha gyan\u00fas vagy indokolatlan PHP-f\u00e1jlt tal\u00e1lsz, kezeld azt lehets\u00e9ges kompromitt\u00e1l\u00f3d\u00e1s jelek\u00e9nt, \u00e9s vizsg\u00e1ld \u00e1t a teljes oldalt.<\/p>\n\n\n<div class=\"references-section\">\n                <h2>Hivatkoz\u00e1sok \/ Forr\u00e1sok<\/h2>\n                <ul class=\"references-list\"><li><a href=\"https:\/\/www.wordfence.com\/blog\/2026\/08\/critical-arbitrary-file-upload-vulnerability-patched-in-elementor-pro-wordpress-plugin\/\" target=\"_blank\" rel=\"noopener noreferrer\">Critical Arbitrary File Upload Vulnerability Patched in Elementor Pro WordPress Plugin<\/a><\/li><li><a href=\"https:\/\/www.wordfence.com\/threat-intel\/vulnerabilities\/id\/0a32b02f-db40-42fe-b46c-4a5f2bc9ba09\" target=\"_blank\" rel=\"noopener noreferrer\">Elementor Pro &lt;= 4.2.1 &#8211; Unauthenticated Arbitrary File Upload via Upload Field Array Validation Bypass<\/a><\/li><li><a href=\"https:\/\/www.cve.org\/CVERecord?id=CVE-2026-32475\" target=\"_blank\" rel=\"noopener noreferrer\">CVE-2026-32475<\/a><\/li><\/ul>\n            <\/div>","protected":false},"excerpt":{"rendered":"<p>Egy publikus, nem k\u00f6telez\u0151 f\u00e1jlfelt\u00f6lt\u0151t tartalmaz\u00f3 Elementor Pro \u0171rlap el\u00e9g lehetett ahhoz, hogy t\u00e1mad\u00f3 PHP-f\u00e1jlt t\u00f6lts\u00f6n fel a szerverre. Az \u00e9rintett oldalakon azonnal friss\u00edts 4.2.2-es vagy \u00fajabb verzi\u00f3ra.<\/p>\n","protected":false},"author":5,"featured_media":410,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[183,182,184,185,88],"class_list":["post-411","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-biztonsag","tag-cve-2026-32475","tag-elementor-pro","tag-fajlfeltoltes","tag-serulekenyseg","tag-wordpress-biztonsag"],"_links":{"self":[{"href":"https:\/\/helloblog.io\/hu\/wp-json\/wp\/v2\/posts\/411","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/helloblog.io\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/helloblog.io\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/helloblog.io\/hu\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/helloblog.io\/hu\/wp-json\/wp\/v2\/comments?post=411"}],"version-history":[{"count":0,"href":"https:\/\/helloblog.io\/hu\/wp-json\/wp\/v2\/posts\/411\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/helloblog.io\/hu\/wp-json\/wp\/v2\/media\/410"}],"wp:attachment":[{"href":"https:\/\/helloblog.io\/hu\/wp-json\/wp\/v2\/media?parent=411"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/helloblog.io\/hu\/wp-json\/wp\/v2\/categories?post=411"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/helloblog.io\/hu\/wp-json\/wp\/v2\/tags?post=411"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}