2026-10-12 21:53CVE-2026-104140GitHub_M
PUBLISHED5.2CWE-79

QGIS: Stored XSS in WFS3 getFeatures HTML page via unescaped feature attribute values

QGIS is a free, open source, cross-platform geographic information system. Prior to 3.44.12 and 4.0.0 through 4.2.3, QGIS Server renders feature data in WFS3 (OGC API Features) HTML responses without HTML escaping. Attacker-controlled feature.properties values from a published writable vector layer reach resources/server/api/ogc/templates/wfs3/getFeatures.html through QgsServerOgcApiHandler::htmlDump and the if_nullptr_null_str callback. A user who opens an items HTML page can execute stored markup or script in the QGIS Server origin, which can expose the viewer's session data or issue authenticated requests with the viewer's privileges. This issue is fixed in version 3.44.12.

Problem type

Affected products

qgis

QGIS

< 3.44.12 - AFFECTED

>= 4.0.0, <= 4.2.3 - AFFECTED

References

JSON source

https://cveawg.mitre.org/api/cve/CVE-2026-104140
Click to expand
{
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "cveMetadata": {
    "cveId": "CVE-2026-104140",
    "assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
    "assignerShortName": "GitHub_M",
    "dateUpdated": "2026-10-12T21:53:29.041Z",
    "dateReserved": "2026-10-01T18:47:30.995Z",
    "datePublished": "2026-10-12T21:53:29.041Z",
    "state": "PUBLISHED"
  },
  "containers": {
    "cna": {
      "providerMetadata": {
        "orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
        "shortName": "GitHub_M",
        "dateUpdated": "2026-10-12T21:53:29.041Z"
      },
      "title": "QGIS: Stored XSS in WFS3 getFeatures HTML page via unescaped feature attribute values",
      "descriptions": [
        {
          "lang": "en",
          "value": "QGIS is a free, open source, cross-platform geographic information system. Prior to 3.44.12 and 4.0.0 through 4.2.3, QGIS Server renders feature data in WFS3 (OGC API Features) HTML responses without HTML escaping. Attacker-controlled feature.properties values from a published writable vector layer reach resources/server/api/ogc/templates/wfs3/getFeatures.html through QgsServerOgcApiHandler::htmlDump and the if_nullptr_null_str callback. A user who opens an items HTML page can execute stored markup or script in the QGIS Server origin, which can expose the viewer's session data or issue authenticated requests with the viewer's privileges. This issue is fixed in version 3.44.12."
        }
      ],
      "affected": [
        {
          "vendor": "qgis",
          "product": "QGIS",
          "versions": [
            {
              "version": "< 3.44.12",
              "status": "affected"
            },
            {
              "version": ">= 4.0.0, <= 4.2.3",
              "status": "affected"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "lang": "en",
              "description": "CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')",
              "cweId": "CWE-79",
              "type": "CWE"
            }
          ]
        }
      ],
      "references": [
        {
          "url": "https://github.com/qgis/QGIS/security/advisories/GHSA-cr49-pm9v-m788",
          "name": "https://github.com/qgis/QGIS/security/advisories/GHSA-cr49-pm9v-m788",
          "tags": [
            "x_refsource_CONFIRM"
          ]
        },
        {
          "url": "https://github.com/qgis/QGIS/pull/66616",
          "name": "https://github.com/qgis/QGIS/pull/66616",
          "tags": [
            "x_refsource_MISC"
          ]
        },
        {
          "url": "https://github.com/qgis/QGIS/pull/67044",
          "name": "https://github.com/qgis/QGIS/pull/67044",
          "tags": [
            "x_refsource_MISC"
          ]
        },
        {
          "url": "https://github.com/qgis/QGIS/commit/1930e81c918818a4f5412219f8f7e470d2709f91",
          "name": "https://github.com/qgis/QGIS/commit/1930e81c918818a4f5412219f8f7e470d2709f91",
          "tags": [
            "x_refsource_MISC"
          ]
        },
        {
          "url": "https://github.com/qgis/QGIS/commit/ca76fcac616dbf1c0446514fd6517296eb7c6904",
          "name": "https://github.com/qgis/QGIS/commit/ca76fcac616dbf1c0446514fd6517296eb7c6904",
          "tags": [
            "x_refsource_MISC"
          ]
        },
        {
          "url": "https://github.com/qgis/QGIS/releases/tag/final-3_44_12",
          "name": "https://github.com/qgis/QGIS/releases/tag/final-3_44_12",
          "tags": [
            "x_refsource_MISC"
          ]
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "version": "3.1",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N",
            "attackVector": "NETWORK",
            "attackComplexity": "LOW",
            "privilegesRequired": "NONE",
            "userInteraction": "REQUIRED",
            "scope": "CHANGED",
            "confidentialityImpact": "LOW",
            "integrityImpact": "LOW",
            "availabilityImpact": "NONE",
            "baseScore": 6.1,
            "baseSeverity": "MEDIUM"
          }
        }
      ]
    }
  }
}