Skip to content
Heist/ feed
Back to feed
Medium

phpMyFAQ 4.2.0-alpha before 4.2.0-beta Stored XSS via SVG DTD Entity Bypass

Type: advisorySources: OSV

phpMyFAQ 4.2.0-alpha before 4.2.0-beta contains a stored cross-site scripting vulnerability in SvgSanitizer that allows users with FAQ_EDIT permission to bypass sanitization using XML DTD custom entities. Attackers can upload an SVG defining an entity that expands to javascript in an anchor href, executing script when viewers click it to hijack admin sessions.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-111903
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 18:41 UTC · Revision 1

Source evidence

phpMyFAQ 4.2.0-alpha before 4.2.0-beta Stored XSS via SVG DTD Entity Bypass

core-osv · Original source

Published 17 Oct 2026, 18:46 UTC

phpMyFAQ 4.2.0-alpha before 4.2.0-beta contains a stored cross-site scripting vulnerability in SvgSanitizer that allows users with FAQ_EDIT permission to bypass sanitization using XML DTD custom entities. Attackers can upload an SVG defining an entity that expands to javascript in an anchor href, executing script when viewers click it to hijack admin sessions.

osv:CVE-2026-111903
Complete source record
{
  "id": "50a917b4642f9398796416be7903a09823b2165be6d1b7d2d6f33e68c1421fed",
  "url": "https://osv.dev/vulnerability/CVE-2026-111903",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "phpMyFAQ 4.2.0-alpha before 4.2.0-beta Stored XSS via SVG DTD Entity Bypass",
    "summary": "phpMyFAQ 4.2.0-alpha before 4.2.0-beta contains a stored cross-site scripting vulnerability in SvgSanitizer that allows users with FAQ_EDIT permission to bypass sanitization using XML DTD custom entities. Attackers can upload an SVG defining an entity that expands to javascript in an anchor href, executing script when viewers click it to hijack admin sessions.",
    "evidence": "osv:CVE-2026-111903",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-111903",
      "aliases": [
        "CVE-2026-111903",
        "GHSA-j3v5-p957-w6gq"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/thorsten/phpmyfaq",
              "type": "GIT",
              "events": [
                {
                  "introduced": "a429fb81a4efe1f7c0aeec5b7bf8a98a50509b85"
                },
                {
                  "fixed": "e137c1e017b15ffa01181a2380b81e1aea5ae1ad"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "4.2.0-alpha"
                      },
                      {
                        "fixed": "4.2.0-beta"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StandardRange"
                  },
                  {
                    "range": [
                      {
                        "introduced": "4.2.0-alpha"
                      },
                      {
                        "fixed": "4.2.0-beta"
                      }
                    ],
                    "source": "DESCRIPTION"
                  }
                ]
              }
            }
          ],
          "versions": [
            "development-nightly-2026-10-03",
            "4.1-nightly-2026-10-03",
            "development-nightly-2026-10-02",
            "4.1-nightly-2026-10-02",
            "development-nightly-2026-10-01",
            "development-nightly-2026-09-30",
            "4.1-nightly-2026-10-01",
            "4.1-nightly-2026-09-30",
            "development-nightly-2026-09-29",
            "4.1-nightly-2026-09-29",
            "development-nightly-2026-09-28",
            "4.1-nightly-2026-09-28",
            "development-nightly-2026-09-27",
            "development-nightly-2026-09-26",
            "development-nightly-2026-09-25",
            "4.1-nightly-2026-09-27",
            "4.1-nightly-2026-09-26",
            "4.1-nightly-2026-09-25",
            "development-nightly-2026-09-24",
            "4.1-nightly-2026-09-24",
            "development-nightly-2026-09-23",
            "4.1-nightly-2026-09-23",
            "development-nightly-2026-09-22",
            "4.1-nightly-2026-09-22",
            "development-nightly-2026-09-21",
            "4.1-nightly-2026-09-21",
            "development-nightly-2026-09-20",
            "4.1-nightly-2026-09-20",
            "4.1-nightly-2026-09-18",
            "development-nightly-2026-09-17",
            "4.1-nightly-2026-09-17",
            "development-nightly-2026-09-16",
            "4.1-nightly-2026-09-16",
            "development-nightly-2026-09-15",
            "4.1-nightly-2026-09-15",
            "development-nightly-2026-09-14",
            "4.1-nightly-2026-09-14",
            "development-nightly-2026-09-13",
            "4.1-nightly-2026-09-13",
            "development-nightly-2026-09-12",
            "4.1-nightly-2026-09-12",
            "development-nightly-2026-09-11",
            "4.1-nightly-2026-09-11",
            "development-nightly-2026-09-10",
            "development-nightly-2026-09-09",
            "development-nightly-2026-09-08",
            "development-nightly-2026-09-07",
            "development-nightly-2026-09-06",
            "development-nightly-2026-09-05",
            "development-nightly-2026-09-04",
            "development-nightly-2026-09-03",
            "development-nightly-2026-09-02",
            "development-nightly-2026-09-01",
            "4.1-nightly-2026-09-10",
            "4.1-nightly-2026-09-09",
            "4.1-nightly-2026-09-08",
            "4.1-nightly-2026-09-07",
            "4.1-nightly-2026-09-06",
            "4.1-nightly-2026-09-05",
            "4.1-nightly-2026-09-04",
            "4.1-nightly-2026-09-03",
            "4.1-nightly-2026-09-02",
            "4.1-nightly-2026-09-01",
            "development-nightly-2026-08-31",
            "development-nightly-2026-08-30",
            "development-nightly-2026-08-29",
            "development-nightly-2026-08-28",
            "development-nightly-2026-08-27",
            "development-nightly-2026-08-26",
            "development-nightly-2026-08-25",
            "development-nightly-2026-08-24",
            "4.1-nightly-2026-08-31",
            "4.1-nightly-2026-08-30",
            "4.1-nightly-2026-08-29",
            "4.1-nightly-2026-08-28",
            "4.1-nightly-2026-08-27",
            "4.1-nightly-2026-08-26",
            "4.1-nightly-2026-08-25",
            "4.1-nightly-2026-08-24",
            "development-nightly-2026-08-21",
            "4.1-nightly-2026-08-21",
            "4.2.0-alpha.2",
            "development-nightly-2026-08-20",
            "4.1-nightly-2026-08-20",
            "development-nightly-2026-08-19",
            "4.1-nightly-2026-08-19",
            "development-nightly-2026-08-18",
            "4.1-nightly-2026-08-18",
            "development-nightly-2026-08-17",
            "4.1-nightly-2026-08-17",
            "development-nightly-2026-08-16",
            "4.1-nightly-2026-08-16",
            "development-nightly-2026-08-15",
            "development-nightly-2026-08-14",
            "4.1-nightly-2026-08-15",
            "4.1-nightly-2026-08-14",
            "development-nightly-2026-08-13",
            "4.1-nightly-2026-08-13",
            "development-nightly-2026-08-12",
            "4.1-nightly-2026-08-12",
            "development-nightly-2026-08-11",
            "4.1-nightly-2026-08-11",
            "development-nightly-2026-08-10",
            "development-nightly-2026-08-09",
            "4.1-nightly-2026-08-10",
            "4.1-nightly-2026-08-09",
            "4.2.0-alpha"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-111903.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:38.229237527Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/111xxx/CVE-2026-111903.json",
        "https://github.com/thorsten/phpMyFAQ/security/advisories/GHSA-j3v5-p957-w6gq",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-111903",
        "https://www.vulncheck.com/advisories/phpmyfaq-4.2.0-alpha-before-4.2.0-beta-stored-xss-via-svg-dtd-entity-bypass"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-79"
        ],
        "cna_assigner": "VulnCheck",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/111xxx/CVE-2026-111903.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-111903",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 505788,
  "published_at": "2026-10-17T18:46:23.442+00:00"
}