GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration
Search

Find a vulnerability

Search criteria

    986 vulnerabilities

    CVE-2026-89307 (GCVE-0-2026-89307)

    Vulnerability from cvelistv5 – Published: 2026-09-15 15:23 – Updated: 2026-09-15 17:31
    VLAI
    Title
    HTML injection allows open redirection in WordPress theme design-scuole-wordpress-theme
    Summary
    The "Firma Circolare" feature in the "Design Scuole Italia" WordPress theme allows an authenticated attacker to inject arbitrary HTML via the sign parameter, enabling forced redirection of visiting users to an attacker-controlled URL (Stored HTML Injection / Open Redirect).
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-15 17:16 UTC
    CWE
    • CWE-601 - URL redirection to untrusted site ('open redirect')
    Impacted products
    Vendor Product Version
    Developers Italia design-scuole-wordpress-theme Affected: 1.0 , ≤ 2.17.3 (semver)
        cpe:2.3:a:developers_italia:design-scuole-wordpress-theme:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-89307",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-15T17:16:36.848070Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-15T17:31:45.292Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "design-scuole-wordpress-theme",
              "repo": "https://github.com/italia/design-scuole-wordpress-theme",
              "vendor": "Developers Italia",
              "versions": [
                {
                  "lessThanOrEqual": "2.17.3",
                  "status": "affected",
                  "version": "1.0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:developers_italia:design-scuole-wordpress-theme:*:*:*:*:*:*:*:*",
                      "versionEndIncluding": "2.17.3",
                      "versionStartIncluding": "1.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "OR"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Lorenzo Zarfati"
            },
            {
              "lang": "en",
              "type": "coordinator",
              "value": "CSIRT-IT"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "The \"Firma Circolare\" feature in the \"Design Scuole Italia\" WordPress theme allows an authenticated attacker to inject arbitrary HTML via the sign parameter, enabling forced redirection of visiting users to an attacker-controlled URL (Stored HTML Injection / Open Redirect)."
                }
              ],
              "value": "The \"Firma Circolare\" feature in the \"Design Scuole Italia\" WordPress theme allows an authenticated attacker to inject arbitrary HTML via the sign parameter, enabling forced redirection of visiting users to an attacker-controlled URL (Stored HTML Injection / Open Redirect)."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-98",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-98 Phishing"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 5.1,
                "baseSeverity": "MEDIUM",
                "exploitMaturity": "NOT_DEFINED",
                "privilegesRequired": "LOW",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "PASSIVE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "LOW",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-601",
                  "description": "CWE-601 URL redirection to untrusted site (\u0027open redirect\u0027)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-15T15:23:40.292Z",
            "orgId": "a6d3dc9e-0591-4a13-bce7-0f5b31ff6158",
            "shortName": "ENISA"
          },
          "references": [
            {
              "tags": [
                "product"
              ],
              "url": "https://github.com/italia/design-scuole-wordpress-theme"
            },
            {
              "tags": [
                "government-resource"
              ],
              "url": "https://www.acn.gov.it/portale/w/rilevate-vulnerabilita-nel-tema-wordpress-design-scuole-italia-"
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "title": "HTML injection allows open redirection in WordPress theme design-scuole-wordpress-theme",
          "x_generator": {
            "engine": "Vulnogram 1.0.4"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "a6d3dc9e-0591-4a13-bce7-0f5b31ff6158",
        "assignerShortName": "ENISA",
        "cveId": "CVE-2026-89307",
        "datePublished": "2026-09-15T15:23:40.292Z",
        "dateReserved": "2026-09-11T13:54:43.619Z",
        "dateUpdated": "2026-09-15T17:31:45.292Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-87793 (GCVE-0-2026-87793)

    Vulnerability from cvelistv5 – Published: 2026-09-15 15:21 – Updated: 2026-09-15 17:31
    VLAI
    Title
    Reflected XSS in WordPress theme design-scuole-wordpress-theme
    Summary
    The "Design Scuole Italia" WordPress theme is affected by a Reflected XSS vulnerability in the filters-scheda-didattica.php file, allowing an unauthenticated attacker to execute arbitrary JavaScript in a victim's browser via a crafted URL containing a malicious archive parameter.
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-15 17:16 UTC
    CWE
    • CWE-79 - Improper neutralization of input during web page generation ('cross-site scripting')
    Impacted products
    Vendor Product Version
    Developers Italia design-scuole-wordpress-theme Affected: 1.0 , ≤ 2.18.2 (semver)
        cpe:2.3:a:developers_italia:design-scuole-wordpress-theme:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-87793",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-15T17:16:46.753126Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-15T17:31:45.479Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "affected",
              "product": "design-scuole-wordpress-theme",
              "repo": "https://github.com/italia/design-scuole-wordpress-theme",
              "vendor": "Developers Italia",
              "versions": [
                {
                  "lessThanOrEqual": "2.18.2",
                  "status": "affected",
                  "version": "1.0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:developers_italia:design-scuole-wordpress-theme:*:*:*:*:*:*:*:*",
                      "versionEndIncluding": "2.18.2",
                      "versionStartIncluding": "1.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "OR"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Lorenzo Zarfati"
            },
            {
              "lang": "en",
              "type": "coordinator",
              "value": "CSIRT-IT"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "The \"Design Scuole Italia\" WordPress theme is affected by a Reflected XSS vulnerability in the\u0026nbsp;\u003ccode\u003efilters-scheda-didattica.php\u003c/code\u003e\u0026nbsp;file,\n allowing an unauthenticated attacker to execute arbitrary JavaScript in\n a victim\u0027s browser via a crafted URL containing a malicious\u0026nbsp;\u003ccode\u003earchive\u003c/code\u003e\u0026nbsp;parameter."
                }
              ],
              "value": "The \"Design Scuole Italia\" WordPress theme is affected by a Reflected XSS vulnerability in the\u00a0filters-scheda-didattica.php\u00a0file,\n allowing an unauthenticated attacker to execute arbitrary JavaScript in\n a victim\u0027s browser via a crafted URL containing a malicious\u00a0archive\u00a0parameter."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-591",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-591 Reflected XSS"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 5.1,
                "baseSeverity": "MEDIUM",
                "exploitMaturity": "NOT_DEFINED",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "ACTIVE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "LOW",
                "vulnIntegrityImpact": "LOW",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-79",
                  "description": "CWE-79 Improper neutralization of input during web page generation (\u0027cross-site scripting\u0027)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-15T15:21:47.322Z",
            "orgId": "a6d3dc9e-0591-4a13-bce7-0f5b31ff6158",
            "shortName": "ENISA"
          },
          "references": [
            {
              "tags": [
                "product"
              ],
              "url": "https://github.com/italia/design-scuole-wordpress-theme"
            },
            {
              "tags": [
                "government-resource"
              ],
              "url": "https://www.acn.gov.it/portale/w/rilevate-vulnerabilita-nel-tema-wordpress-design-scuole-italia-"
            }
          ],
          "solutions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cblockquote\u003e\u003cp\u003eTo fix the vulnerability, replace \u003ccode\u003e\u0026lt;?php echo $archive; ?\u0026gt;\u003c/code\u003e with \u003ccode\u003e\u0026lt;?php echo esc_attr($archive); ?\u0026gt;\u003c/code\u003e in both affected files.\u003c/p\u003e\n\u003c/blockquote\u003e\n\n\n\u003cbr\u003e"
                }
              ],
              "value": "To fix the vulnerability, replace \u003c?php echo $archive; ?\u003e with \u003c?php echo esc_attr($archive); ?\u003e in both affected files."
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "title": "Reflected XSS in WordPress theme design-scuole-wordpress-theme",
          "x_generator": {
            "engine": "Vulnogram 1.0.4"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "a6d3dc9e-0591-4a13-bce7-0f5b31ff6158",
        "assignerShortName": "ENISA",
        "cveId": "CVE-2026-87793",
        "datePublished": "2026-09-15T15:21:47.322Z",
        "dateReserved": "2026-09-09T09:28:48.222Z",
        "dateUpdated": "2026-09-15T17:31:45.479Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-87792 (GCVE-0-2026-87792)

    Vulnerability from cvelistv5 – Published: 2026-09-15 15:20 – Updated: 2026-09-15 17:31
    VLAI
    Title
    Multiple authorization bypass in WordPress theme design-scuole-wordpress-theme
    Summary
    The "Design Scuole Italia" WordPress theme is affected by multiple Authorization Bypass vulnerabilities in the dsi_pdf_generator and dsi_csv_generator functions, allowing an unauthenticated attacker to access restricted "Circolare" content and registered users' data. An unauthenticated RSS feed at /circolare/feed/ further facilitates exploitation.
    SSVC
    Exploitation: none Automatable: yes Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-15 17:17 UTC
    Impacted products
    Vendor Product Version
    Developers Italia design-scuole-wordpress-theme Affected: 1.0 , ≤ 2.17.3 (semver)
        cpe:2.3:a:developers_italia:design-scuole-wordpress-theme:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-87792",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "yes"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-15T17:17:00.469779Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-15T17:31:45.662Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "design-scuole-wordpress-theme",
              "repo": "https://github.com/italia/design-scuole-wordpress-theme",
              "vendor": "Developers Italia",
              "versions": [
                {
                  "lessThanOrEqual": "2.17.3",
                  "status": "affected",
                  "version": "1.0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:developers_italia:design-scuole-wordpress-theme:*:*:*:*:*:*:*:*",
                      "versionEndIncluding": "2.17.3",
                      "versionStartIncluding": "1.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "OR"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Filippo Sorbellini"
            },
            {
              "lang": "en",
              "type": "coordinator",
              "value": "CSIRT-IT"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "The \"Design Scuole Italia\" WordPress theme is affected by multiple Authorization Bypass vulnerabilities in the\u0026nbsp;\u003ccode\u003edsi_pdf_generator\u003c/code\u003e\u0026nbsp;and\u0026nbsp;\u003ccode\u003edsi_csv_generator\u003c/code\u003e\u0026nbsp;functions, allowing an unauthenticated attacker to access restricted \"Circolare\" content and registered users\u0027 data. An unauthenticated RSS feed at\u0026nbsp;\u003ccode\u003e/circolare/feed/\u003c/code\u003e\u0026nbsp;further facilitates exploitation."
                }
              ],
              "value": "The \"Design Scuole Italia\" WordPress theme is affected by multiple Authorization Bypass vulnerabilities in the\u00a0dsi_pdf_generator\u00a0and\u00a0dsi_csv_generator\u00a0functions, allowing an unauthenticated attacker to access restricted \"Circolare\" content and registered users\u0027 data. An unauthenticated RSS feed at\u00a0/circolare/feed/\u00a0further facilitates exploitation."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-1",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-1 Accessing Functionality Not Properly Constrained by ACLs"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 8.7,
                "baseSeverity": "HIGH",
                "exploitMaturity": "NOT_DEFINED",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "HIGH",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-862",
                  "description": "CWE-862",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-200",
                  "description": "CWE-200",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-15T15:20:17.877Z",
            "orgId": "a6d3dc9e-0591-4a13-bce7-0f5b31ff6158",
            "shortName": "ENISA"
          },
          "references": [
            {
              "tags": [
                "government-resource"
              ],
              "url": "https://www.acn.gov.it/portale/w/rilevate-vulnerabilita-nel-tema-wordpress-design-scuole-italia-"
            },
            {
              "tags": [
                "product"
              ],
              "url": "https://github.com/italia/design-scuole-wordpress-theme"
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "title": "Multiple authorization bypass in WordPress theme design-scuole-wordpress-theme",
          "x_generator": {
            "engine": "Vulnogram 1.0.4"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "a6d3dc9e-0591-4a13-bce7-0f5b31ff6158",
        "assignerShortName": "ENISA",
        "cveId": "CVE-2026-87792",
        "datePublished": "2026-09-15T15:20:17.877Z",
        "dateReserved": "2026-09-09T09:28:48.222Z",
        "dateUpdated": "2026-09-15T17:31:45.662Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-87791 (GCVE-0-2026-87791)

    Vulnerability from cvelistv5 – Published: 2026-09-15 15:10 – Updated: 2026-09-15 17:31
    VLAI
    Title
    Path traversal vulnerability in WordPress theme design-scuole-wordpress-theme
    Summary
    A path traversal vulnerability exists in the reserved_file_check function of the functions.php file in the WordPress Design Scuole Italia theme. The vulnerability allows an unauthenticated attacker to download arbitrary files accessible by the web server process.
    SSVC
    Exploitation: none Automatable: yes Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-15 17:17 UTC
    CWE
    Impacted products
    Vendor Product Version
    Developers Italia design-scuole-wordpress-theme Affected: 2.6.0 , ≤ 2.18.1 (semver)
        cpe:2.3:a:developers_italia:design-scuole-wordpress-theme:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-87791",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "yes"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-15T17:17:30.522591Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-15T17:31:45.818Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "design-scuole-wordpress-theme",
              "repo": "https://github.com/italia/design-scuole-wordpress-theme",
              "vendor": "Developers Italia",
              "versions": [
                {
                  "lessThanOrEqual": "2.18.1",
                  "status": "affected",
                  "version": "2.6.0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:developers_italia:design-scuole-wordpress-theme:*:*:*:*:*:*:*:*",
                      "versionEndIncluding": "2.18.1",
                      "versionStartIncluding": "2.6.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "OR"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Filippo Sorbellini"
            },
            {
              "lang": "en",
              "type": "coordinator",
              "value": "CSIRT-IT"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cdiv\u003eA path traversal vulnerability exists in the \u003ccode\u003ereserved_file_check\u003c/code\u003e function of the\u0026nbsp;\u003ccode\u003efunctions.php\u003c/code\u003e\u0026nbsp;file in the WordPress Design Scuole Italia theme. The vulnerability allows an unauthenticated attacker to download arbitrary files accessible by the web server process.\u003c/div\u003e"
                }
              ],
              "value": "A path traversal vulnerability exists in the reserved_file_check function of the\u00a0functions.php\u00a0file in the WordPress Design Scuole Italia theme. The vulnerability allows an unauthenticated attacker to download arbitrary files accessible by the web server process."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-126",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-126 Path Traversal"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 8.7,
                "baseSeverity": "HIGH",
                "exploitMaturity": "NOT_DEFINED",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "HIGH",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-22",
                  "description": "CWE-22",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-15T15:10:37.613Z",
            "orgId": "a6d3dc9e-0591-4a13-bce7-0f5b31ff6158",
            "shortName": "ENISA"
          },
          "references": [
            {
              "tags": [
                "product"
              ],
              "url": "https://github.com/italia/design-scuole-wordpress-theme"
            },
            {
              "tags": [
                "government-resource"
              ],
              "url": "https://www.acn.gov.it/portale/w/rilevate-vulnerabilita-nel-tema-wordpress-design-scuole-italia-"
            }
          ],
          "solutions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "Update to version 2.18.2"
                }
              ],
              "value": "Update to version 2.18.2"
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "timeline": [
            {
              "lang": "en",
              "time": "2026-05-30T07:03:00.000Z",
              "value": "patched in v2.18.2"
            }
          ],
          "title": "Path traversal vulnerability in WordPress theme design-scuole-wordpress-theme",
          "x_generator": {
            "engine": "Vulnogram 1.0.4"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "a6d3dc9e-0591-4a13-bce7-0f5b31ff6158",
        "assignerShortName": "ENISA",
        "cveId": "CVE-2026-87791",
        "datePublished": "2026-09-15T15:10:37.613Z",
        "dateReserved": "2026-09-09T09:28:48.222Z",
        "dateUpdated": "2026-09-15T17:31:45.818Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-89308 (GCVE-0-2026-89308)

    Vulnerability from cvelistv5 – Published: 2026-09-15 11:44 – Updated: 2026-09-15 12:30
    VLAI
    Title
    Arbitrary command execution in TrxTimeATTENDANCE
    Summary
    An unauthenticated OS command injection vulnerability exists in the ping.php endpoint, allowing remote attackers to execute arbitrary commands on the underlying operating system and achieve remote code execution.
    SSVC
    Exploitation: none Automatable: yes Technical Impact: total
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-15 12:30 UTC
    CWE
    • CWE-78 - Improper neutralization of special elements used in an OS command ('OS command injection')
    References
    Impacted products
    Vendor Product Version
    TREXOM TrxTimeATTENDANCE Affected: 1.0.5 , < 1.9.6 (semver)
        cpe:2.3:a:trexom:trxtimeattendance:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-89308",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "yes"
                      },
                      {
                        "Technical Impact": "total"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-15T12:30:47.734324Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-15T12:30:57.222Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "TrxTimeATTENDANCE",
              "vendor": "TREXOM",
              "versions": [
                {
                  "lessThan": "1.9.6",
                  "status": "affected",
                  "version": "1.0.5",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:trexom:trxtimeattendance:*:*:*:*:*:*:*:*",
                      "versionEndIncluding": "1.9.5",
                      "versionStartIncluding": "1.0.5",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "OR"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "@VolpinaRegina"
            },
            {
              "lang": "en",
              "type": "coordinator",
              "value": "CSIRT-IT"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cspan\u003eAn unauthenticated OS command injection vulnerability exists in the\u003cspan\u003e\u0026nbsp;\u003c/span\u003e\u003c/span\u003e\u003ccode\u003eping.php\u003c/code\u003e\u003cspan\u003e\u003cspan\u003e\u0026nbsp;\u003c/span\u003eendpoint, allowing remote attackers to execute arbitrary commands on the underlying operating system and achieve remote code execution.\u003c/span\u003e"
                }
              ],
              "value": "An unauthenticated OS command injection vulnerability exists in the\u00a0ping.php\u00a0endpoint, allowing remote attackers to execute arbitrary commands on the underlying operating system and achieve remote code execution."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-88",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-88 OS Command Injection"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 9.3,
                "baseSeverity": "CRITICAL",
                "exploitMaturity": "NOT_DEFINED",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "HIGH",
                "vulnConfidentialityImpact": "HIGH",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-78",
                  "description": "CWE-78 Improper neutralization of special elements used in an OS command (\u0027OS command injection\u0027)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-15T11:44:00.803Z",
            "orgId": "a6d3dc9e-0591-4a13-bce7-0f5b31ff6158",
            "shortName": "ENISA"
          },
          "references": [
            {
              "tags": [
                "product"
              ],
              "url": "https://www.trexom.net/sviluppo-di-app/"
            },
            {
              "tags": [
                "government-resource"
              ],
              "url": "https://www.acn.gov.it/portale/w/trexom-aggiornamenti-di-sicurezza"
            }
          ],
          "solutions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "Update to version 1.9.6"
                }
              ],
              "value": "Update to version 1.9.6"
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "title": "Arbitrary command execution in TrxTimeATTENDANCE",
          "workarounds": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "Block all HTTP requests to the ping.php endpoint at the web server or firewall level."
                }
              ],
              "value": "Block all HTTP requests to the ping.php endpoint at the web server or firewall level."
            }
          ],
          "x_generator": {
            "engine": "Vulnogram 1.0.4"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "a6d3dc9e-0591-4a13-bce7-0f5b31ff6158",
        "assignerShortName": "ENISA",
        "cveId": "CVE-2026-89308",
        "datePublished": "2026-09-15T11:44:00.803Z",
        "dateReserved": "2026-09-11T13:54:43.619Z",
        "dateUpdated": "2026-09-15T12:30:57.222Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-92003 (GCVE-0-2026-92003)

    Vulnerability from cvelistv5 – Published: 2026-09-15 11:43 – Updated: 2026-09-15 12:32
    VLAI
    Title
    MISP Unthrottled Authentication Failure Log Writes Enable Resource Exhaustion
    Summary
    Affected versions of MISP do not consistently apply the existing authentication-failure logging throttle. Two API authentication failure branches wrote directly to the Log model:  - API requests with no authentication key;  - requests supplying an API key with an incorrect length Unlike other authentication failures, these paths bypassed _shouldLog(), so every request could create another durable auth_fail entry. Version affected: ≤2.5.45
    SSVC
    Exploitation: none Automatable: yes Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-15 12:31 UTC
    CWE
    • CWE-770 - Allocation of Resources Without Limits or Throttling
    • CWE-400 - Uncontrolled Resource Consumption
    References
    Impacted products
    Vendor Product Version
    MISP MISP Affected: 0 , < 2.5.46 (semver)
    Create a notification for this product.
    GCVE extensions
    AI involvement GCVE-BCP-05-X-01
    Whole record AI-generated Review: review GNA-1

    Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.

    ai-computer-assisted:llm-generatedai-computer-assisted:classification
    Model Source Identifier
    qwen3.8:27b ollama qwen3.8:27b
    Patch provenance GCVE-BCP-05-X-02
    Generator
    patch2vuln.py on 2026-09-15 11:37
    Model
    qwen3.8:27b
    Input
    https://github.com/MISP/MISP/commit/2bf887433.patch db6f78e69079…
    Confidence
    medium
    Commit Subject Patch SHA-256
    2bf887433651 fix: [logging] Throttle the two unguarded auth_fail writes db6f78e69079…
    Fix summary

    The fix applies the existing hourly per-key log throttle to the two previously unguarded authentication-failure log writes. The throttle key is now derived from the client's source IP address rather than from caller-supplied input, preventing an attacker from generating unbounded Redis throttle entries. A per-request memo (stored in Configure::read('CurrentRequestAuthFailKeys')) is added to _shouldLog() to prevent duplicate log entries when beforeFilter() executes a second time via CakeErrorController on an exception, ensuring one request produces at most one log entry per key regardless of the operator's log_each_individual_auth_fail setting.

    Patch summary

    In app/Controller/AppController.php: (1) The 'no authkey' branch in beforeFilter() now calls _shouldLog('noauthkey:' . $this->User->_remoteIp()) before writing the log entry. (2) The 'incorrect length' branch in __loginByAuthKey() now calls _shouldLog('badauthkeylength:' . $this->User->_remoteIp()) before writing the log entry. (3) _shouldLog() is refactored to first check a per-request memo array (Configure 'CurrentRequestAuthFailKeys') to suppress duplicate logging across the double beforeFilter() invocation, then evaluate the log_each_individual_auth_fail setting, then fall through to the Redis EXISTS/SETEX 3600-second throttle, and finally record the key in the memo. The Redis-unavailable fallback (log everything) is preserved.

    CVSS rationale

    The vulnerable paths are reachable over the network (AV:N) with no authentication (PR:N) and no user interaction (UI:N). The attack complexity is low (AC:L): an attacker simply sends repeated HTTP requests to the MISP API without an API key or with a key of the wrong length. No attack target is required (AT:N). There is no impact on confidentiality (VC:N, SC:N) or integrity (VI:N, SI:N). The availability impact is high (VA:H) because unbounded log writes can exhaust database storage, degrade query performance, and ultimately make the MISP instance unavailable. No secondary availability impact (SA:N) is evident from the patch.

    Weakness rationale
    • CWE-770 Two authentication-failure log write paths lacked any rate-limiting or throttling mechanism, allowing an unauthenticated remote attacker to generate an unbounded number of database log entries and exhaust storage or I/O resources. The fix adds the missing hourly per-key throttle.
    • CWE-400 The unthrottled log writes constitute uncontrolled consumption of database write capacity and disk storage, enabling a denial-of-service condition. CWE-770 is the more specific primary weakness; CWE-400 captures the broader resource-exhaustion impact.
    Assumptions to verify
    • The tag_version_boundary (v2.5.46, 188 commits after fix) is used as an approximate upper bound for affected versions; the exact fixed release tag is not stated in the patch metadata.
    • The log entries are written to a relational database (MySQL/PostgreSQL) via MISP's Log model, based on the createLogEntry() call pattern; the specific backend is not confirmed in the patch.
    • The Redis instance used for throttling is assumed to be co-located with the MISP application; a Redis outage degrades to logging everything (fail-open), which is a design choice documented in the patch comments.
    • CVSS VA:H assumes that sustained unthrottled log writes can exhaust storage or I/O capacity sufficient to degrade or halt the MISP service; actual impact depends on deployment sizing and disk capacity.
    Model comparison

    Selected qwen3.8:27b by deterministic-consensus-v1
    The selected result is closest to model consensus; this heuristic does not establish factual correctness and human review remains required.

    Model Score Agreement Confidence Assumptions
    qwen3.8:27b 6 9 medium 4
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-92003",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "yes"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-15T12:31:54.934768Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-15T12:32:06.515Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "modules": [
                "app/Controller/AppController.php"
              ],
              "product": "MISP",
              "programFiles": [
                "app/Controller/AppController.php"
              ],
              "repo": "https://github.com/MISP/MISP",
              "vendor": "MISP",
              "versions": [
                {
                  "lessThan": "2.5.46",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "iglocska"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Claude Opus 5 (1M context)"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eAffected versions of MISP do not consistently apply the existing authentication-failure logging throttle.\u003c/p\u003e\n\u003cp\u003eTwo API authentication failure branches wrote directly to the \u003ccode\u003eLog\u003c/code\u003e model:\u003c/p\u003e\u2003- API requests with \u003cstrong\u003eno authentication key\u003c/strong\u003e;\u003cbr\u003e\u003cdiv\u003e\u2003- requests supplying an API key with an \u003cstrong\u003eincorrect length\u003c/strong\u003e\u003c/div\u003e\u003cdiv\u003e\u003cstrong\u003e\u003cbr\u003e\u003c/strong\u003e\u003c/div\u003e\u003cp\u003eUnlike other authentication failures, these paths bypassed \u003ccode\u003e_shouldLog()\u003c/code\u003e, so every request could create another durable \u003ccode\u003eauth_fail\u003c/code\u003e entry.\u003c/p\u003eVersion affected: \u22642.5.45\u003cbr\u003e"
                }
              ],
              "value": "Affected versions of MISP do not consistently apply the existing authentication-failure logging throttle.\n\n\nTwo API authentication failure branches wrote directly to the Log model:\n\n\u2003- API requests with no authentication key;\n\u2003- requests supplying an API key with an incorrect length\n\n\n\n\nUnlike other authentication failures, these paths bypassed _shouldLog(), so every request could create another durable auth_fail entry.\n\nVersion affected: \u22642.5.45"
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-125",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-125 Flooding"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 6.9,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "LOW",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-770",
                  "description": "CWE-770 Allocation of Resources Without Limits or Throttling",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-400",
                  "description": "CWE-400 Uncontrolled Resource Consumption",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-15T11:43:19.403Z",
            "orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
            "shortName": "CIRCL"
          },
          "references": [
            {
              "name": "Security patch",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/MISP/MISP/commit/2bf887433"
            }
          ],
          "solutions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eThe fix applies the existing hourly per-key log throttle to the two previously unguarded authentication-failure log writes. The throttle key is now derived from the client\u0027s source IP address rather than from caller-supplied input, preventing an attacker from generating unbounded Redis throttle entries. A per-request memo (stored in Configure::read(\u0027CurrentRequestAuthFailKeys\u0027)) is added to _shouldLog() to prevent duplicate log entries when beforeFilter() executes a second time via CakeErrorController on an exception, ensuring one request produces at most one log entry per key regardless of the operator\u0027s log_each_individual_auth_fail setting.\u003c/p\u003e"
                }
              ],
              "value": "The fix applies the existing hourly per-key log throttle to the two previously unguarded authentication-failure log writes. The throttle key is now derived from the client\u0027s source IP address rather than from caller-supplied input, preventing an attacker from generating unbounded Redis throttle entries. A per-request memo (stored in Configure::read(\u0027CurrentRequestAuthFailKeys\u0027)) is added to _shouldLog() to prevent duplicate log entries when beforeFilter() executes a second time via CakeErrorController on an exception, ensuring one request produces at most one log entry per key regardless of the operator\u0027s log_each_individual_auth_fail setting."
            }
          ],
          "title": "MISP Unthrottled Authentication Failure Log Writes Enable Resource Exhaustion",
          "x_gcve": [
            {
              "extensions": {
                "bcp-05-x-01": {
                  "ai_annotations": [
                    {
                      "ai_level": "generated",
                      "description": "Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.",
                      "gna_source": 1,
                      "models": [
                        {
                          "gna_source": 1,
                          "identifier": "qwen3.8:27b",
                          "name": "qwen3.8:27b",
                          "source": "ollama"
                        }
                      ],
                      "review_status": "review",
                      "scope": "record",
                      "tags": [
                        "ai-computer-assisted:llm-generated",
                        "ai-computer-assisted:classification"
                      ]
                    }
                  ]
                },
                "bcp-05-x-02": {
                  "x_patch2vuln": {
                    "assumptions": [
                      "The tag_version_boundary (v2.5.46, 188 commits after fix) is used as an approximate upper bound for affected versions; the exact fixed release tag is not stated in the patch metadata.",
                      "The log entries are written to a relational database (MySQL/PostgreSQL) via MISP\u0027s Log model, based on the createLogEntry() call pattern; the specific backend is not confirmed in the patch.",
                      "The Redis instance used for throttling is assumed to be co-located with the MISP application; a Redis outage degrades to logging everything (fail-open), which is a design choice documented in the patch comments.",
                      "CVSS VA:H assumes that sustained unthrottled log writes can exhaust storage or I/O capacity sufficient to degrade or halt the MISP service; actual impact depends on deployment sizing and disk capacity."
                    ],
                    "commit": "2bf8874336518d8c5ef6a42e51e78900ec242630",
                    "confidence": "medium",
                    "credits": [
                      {
                        "lang": "en",
                        "type": "remediation developer",
                        "value": "iglocska"
                      },
                      {
                        "lang": "en",
                        "type": "remediation developer",
                        "value": "Claude Opus 5 (1M context)"
                      }
                    ],
                    "cvssRationale": "The vulnerable paths are reachable over the network (AV:N) with no authentication (PR:N) and no user interaction (UI:N). The attack complexity is low (AC:L): an attacker simply sends repeated HTTP requests to the MISP API without an API key or with a key of the wrong length. No attack target is required (AT:N). There is no impact on confidentiality (VC:N, SC:N) or integrity (VI:N, SI:N). The availability impact is high (VA:H) because unbounded log writes can exhaust database storage, degrade query performance, and ultimately make the MISP instance unavailable. No secondary availability impact (SA:N) is evident from the patch.",
                    "draft": false,
                    "fixSummary": "The fix applies the existing hourly per-key log throttle to the two previously unguarded authentication-failure log writes. The throttle key is now derived from the client\u0027s source IP address rather than from caller-supplied input, preventing an attacker from generating unbounded Redis throttle entries. A per-request memo (stored in Configure::read(\u0027CurrentRequestAuthFailKeys\u0027)) is added to _shouldLog() to prevent duplicate log entries when beforeFilter() executes a second time via CakeErrorController on an exception, ensuring one request produces at most one log entry per key regardless of the operator\u0027s log_each_individual_auth_fail setting.",
                    "generatedAt": "2026-09-15T11:37:41.625192Z",
                    "generator": "patch2vuln.py",
                    "model": "qwen3.8:27b",
                    "modelComparison": {
                      "rankings": [
                        {
                          "agreementScore": 9,
                          "assumptionCount": 4,
                          "confidence": "medium",
                          "model": "qwen3.8:27b",
                          "score": 6
                        }
                      ],
                      "selectedModel": "qwen3.8:27b",
                      "selectionMethod": "deterministic-consensus-v1",
                      "selectionNotice": "The selected result is closest to model consensus; this heuristic does not establish factual correctness and human review remains required."
                    },
                    "patchSha256": "db6f78e69079c91d4ba1dac46c4ed5b8ff1ca617c00cd6733bff926c0925a2e3",
                    "patchSummary": "In app/Controller/AppController.php: (1) The \u0027no authkey\u0027 branch in beforeFilter() now calls _shouldLog(\u0027noauthkey:\u0027 . $this-\u003eUser-\u003e_remoteIp()) before writing the log entry. (2) The \u0027incorrect length\u0027 branch in __loginByAuthKey() now calls _shouldLog(\u0027badauthkeylength:\u0027 . $this-\u003eUser-\u003e_remoteIp()) before writing the log entry. (3) _shouldLog() is refactored to first check a per-request memo array (Configure \u0027CurrentRequestAuthFailKeys\u0027) to suppress duplicate logging across the double beforeFilter() invocation, then evaluate the log_each_individual_auth_fail setting, then fall through to the Redis EXISTS/SETEX 3600-second throttle, and finally record the key in the memo. The Redis-unavailable fallback (log everything) is preserved.",
                    "patchTruncated": false,
                    "patches": [
                      {
                        "commit": "2bf8874336518d8c5ef6a42e51e78900ec242630",
                        "patchSha256": "db6f78e69079c91d4ba1dac46c4ed5b8ff1ca617c00cd6733bff926c0925a2e3",
                        "source": "https://github.com/MISP/MISP/commit/2bf887433.patch",
                        "sourceUrl": "https://github.com/MISP/MISP/commit/2bf887433.patch",
                        "subject": "fix: [logging] Throttle the two unguarded auth_fail writes"
                      }
                    ],
                    "source": "https://github.com/MISP/MISP/commit/2bf887433.patch",
                    "subject": "fix: [logging] Throttle the two unguarded auth_fail writes",
                    "tagVersionBoundary": {
                      "commits_after_fix": 188,
                      "repository": "https://github.com/MISP/MISP",
                      "tag": "v2.5.46",
                      "version": "2.5.46",
                      "version_type": "semver"
                    },
                    "weaknessRationale": [
                      {
                        "cweId": "CWE-770",
                        "rationale": "Two authentication-failure log write paths lacked any rate-limiting or throttling mechanism, allowing an unauthenticated remote attacker to generate an unbounded number of database log entries and exhaust storage or I/O resources. The fix adds the missing hourly per-key throttle."
                      },
                      {
                        "cweId": "CWE-400",
                        "rationale": "The unthrottled log writes constitute uncontrolled consumption of database write capacity and disk storage, enabling a denial-of-service condition. CWE-770 is the more specific primary weakness; CWE-400 captures the broader resource-exhaustion impact."
                      }
                    ]
                  }
                }
              },
              "recordType": "advisory",
              "vulnId": "GCVE-1-2026-20158"
            }
          ]
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
        "assignerShortName": "CIRCL",
        "cveId": "CVE-2026-92003",
        "datePublished": "2026-09-15T11:43:19.403Z",
        "dateReserved": "2026-09-15T11:43:17.522Z",
        "dateUpdated": "2026-09-15T12:32:06.515Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-92002 (GCVE-0-2026-92002)

    Vulnerability from cvelistv5 – Published: 2026-09-15 11:24 – Updated: 2026-09-15 12:09
    VLAI
    Title
    MISP: Authentication failure logging suppressed during Redis unavailability
    Summary
    Affected versions of MISP use Redis to throttle repeated authentication-failure log entries. The intent is to avoid excessive duplicate logs while still recording failed authentication activity. However, User->setupRedis() returns false when Redis cannot be reached. The vulnerable _shouldLog() logic only returned true when a Redis instance existed and no throttle key was present. Therefore, when Redis was unavailable, the function did not allow the log write at all, effectively silencing authentication-failure logging for the duration of the outage. Version affected: ≤2.5.45
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-15 12:00 UTC
    CWE
    References
    Impacted products
    Vendor Product Version
    MISP MISP Affected: 0 , < 2.5.46 (semver)
    Create a notification for this product.
    GCVE extensions
    AI involvement GCVE-BCP-05-X-01
    Whole record AI-generated Review: review GNA-1

    Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.

    ai-computer-assisted:llm-generatedai-computer-assisted:classification
    Model Source Identifier
    qwen3.8:27b ollama qwen3.8:27b
    Patch provenance GCVE-BCP-05-X-02
    Generator
    patch2vuln.py on 2026-09-15 09:34
    Model
    qwen3.8:27b
    Input
    https://github.com/MISP/MISP/commit/a39b25d2f.patch ab1b5a5a68cf…
    Confidence
    medium
    Commit Subject Patch SHA-256
    a39b25d2f141 fix: [logging] Log auth failures when the throttle cannot ab1b5a5a68cf…
    Fix summary

    The _shouldLog() method now explicitly checks whether the Redis connection is available before attempting to use it. If setupRedis() returns false, the method immediately returns true, causing every authentication-failure event to be logged. This converts the previous fail-closed behavior (silence on dependency failure) into a fail-open behavior for security logging (log everything when the throttle state is unavailable), ensuring that a Redis outage cannot be used to suppress the audit trail of failed authentication attempts.

    Patch summary

    In app/Controller/AppController.php, the _shouldLog() method was restructured: a new early-return guard "if (!$redis) { return true; }" was inserted immediately after the setupRedis() call, so that an unavailable Redis connection causes all auth-failure events to be logged. The subsequent throttle check was simplified to "if (!$redis->exists(...))" since the null case is already handled. Additionally, a block of commented-out Redis throttle code in the afterFilter() method (lines referencing misp:auth_fail_throttling) was removed as dead code.

    CVSS rationale

    The vulnerability is reachable over the network (AV:N) because MISP is a web application. Attack complexity is High (AC:H) because exploitation requires the Redis instance to be specifically unavailable at the time authentication failures occur; it is not a simple request. No attack target is required (AT:N). No privileges are needed (PR:N) because the suppressed logs pertain to unauthenticated authentication-failure events. No user interaction is required (UI:N). There is no direct confidentiality or integrity impact on the MISP data store (VC:N, VI:N). The availability impact is Low (VA:L) because the security-logging/audit function is unavailable during the Redis outage, impairing detection and forensic capabilities, but the core MISP service remains operational. No cross-scope impacts (SC:N, SI:N, SA:N).

    Weakness rationale
    • CWE-778 The system fails to record security-relevant events (authentication failures) when a supporting dependency (Redis) is unavailable. The logging path silently drops all audit entries under a specific operational condition, which is a textbook case of insufficient logging of security events.
    Assumptions to verify
    • The affected version range is inferred from the tag_version_boundary metadata (v2.5.46 with 189 commits after the fix), suggesting the fix landed before the v2.5.46 release; exact affected version boundaries are not explicitly stated in the patch.
    • The CVSS availability impact (VA:L) reflects the loss of the security-logging function rather than a denial of service against the MISP application itself.
    • The patch does not indicate whether the Redis throttle was the sole mechanism for auth-failure logging or whether a fallback file-based logger existed; the analysis assumes the Redis-gated path was the primary logging path for auth failures.
    • The commit date (2 Sep 2026) is taken at face value from the patch metadata.
    Model comparison

    Selected qwen3.8:27b by deterministic-consensus-v1
    The selected result is closest to model consensus; this heuristic does not establish factual correctness and human review remains required.

    Model Score Agreement Confidence Assumptions
    qwen3.8:27b 6 9 medium 4
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-92002",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-15T12:00:12.607042Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-15T12:09:48.540Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "modules": [
                "app/Controller/AppController.php"
              ],
              "product": "MISP",
              "programFiles": [
                "app/Controller/AppController.php"
              ],
              "repo": "https://github.com/MISP/MISP",
              "vendor": "MISP",
              "versions": [
                {
                  "lessThan": "2.5.46",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "iglocska"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Claude Opus 5 (1M context)"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003e\u003c/p\u003e\u003cp\u003eAffected versions of MISP use Redis to throttle repeated authentication-failure log entries. The intent is to avoid excessive duplicate logs while still recording failed authentication activity.\u003c/p\u003e\n\u003cp\u003eHowever, \u003ccode\u003eUser-\u0026gt;setupRedis()\u003c/code\u003e returns false when Redis cannot be reached. The vulnerable \u003ccode\u003e_shouldLog()\u003c/code\u003e logic only returned true when a Redis instance existed and no throttle key was present. Therefore, when Redis was unavailable, the function did not allow the log write at all, effectively silencing authentication-failure logging for the duration of the outage.\u003c/p\u003e\u003cp\u003eVersion affected: \u22642.5.45\u003cbr\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e"
                }
              ],
              "value": "Affected versions of MISP use Redis to throttle repeated authentication-failure log entries. The intent is to avoid excessive duplicate logs while still recording failed authentication activity.\n\n\nHowever, User-\u003esetupRedis() returns false when Redis cannot be reached. The vulnerable _shouldLog() logic only returned true when a Redis instance existed and no throttle key was present. Therefore, when Redis was unavailable, the function did not allow the log write at all, effectively silencing authentication-failure logging for the duration of the outage.\n\nVersion affected: \u22642.5.45"
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 5.1,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "LOW",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "PASSIVE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "LOW",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-778",
                  "description": "CWE-778 Insufficient Logging",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-15T11:24:21.354Z",
            "orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
            "shortName": "CIRCL"
          },
          "references": [
            {
              "name": "Security patch",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/MISP/MISP/commit/a39b25d2f"
            }
          ],
          "solutions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eThe _shouldLog() method now explicitly checks whether the Redis connection is available before attempting to use it. If setupRedis() returns false, the method immediately returns true, causing every authentication-failure event to be logged. This converts the previous fail-closed behavior (silence on dependency failure) into a fail-open behavior for security logging (log everything when the throttle state is unavailable), ensuring that a Redis outage cannot be used to suppress the audit trail of failed authentication attempts.\u003c/p\u003e"
                }
              ],
              "value": "The _shouldLog() method now explicitly checks whether the Redis connection is available before attempting to use it. If setupRedis() returns false, the method immediately returns true, causing every authentication-failure event to be logged. This converts the previous fail-closed behavior (silence on dependency failure) into a fail-open behavior for security logging (log everything when the throttle state is unavailable), ensuring that a Redis outage cannot be used to suppress the audit trail of failed authentication attempts."
            }
          ],
          "title": "MISP: Authentication failure logging suppressed during Redis unavailability",
          "x_gcve": [
            {
              "extensions": {
                "bcp-05-x-01": {
                  "ai_annotations": [
                    {
                      "ai_level": "generated",
                      "description": "Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.",
                      "gna_source": 1,
                      "models": [
                        {
                          "gna_source": 1,
                          "identifier": "qwen3.8:27b",
                          "name": "qwen3.8:27b",
                          "source": "ollama"
                        }
                      ],
                      "review_status": "review",
                      "scope": "record",
                      "tags": [
                        "ai-computer-assisted:llm-generated",
                        "ai-computer-assisted:classification"
                      ]
                    }
                  ]
                },
                "bcp-05-x-02": {
                  "x_patch2vuln": {
                    "assumptions": [
                      "The affected version range is inferred from the tag_version_boundary metadata (v2.5.46 with 189 commits after the fix), suggesting the fix landed before the v2.5.46 release; exact affected version boundaries are not explicitly stated in the patch.",
                      "The CVSS availability impact (VA:L) reflects the loss of the security-logging function rather than a denial of service against the MISP application itself.",
                      "The patch does not indicate whether the Redis throttle was the sole mechanism for auth-failure logging or whether a fallback file-based logger existed; the analysis assumes the Redis-gated path was the primary logging path for auth failures.",
                      "The commit date (2 Sep 2026) is taken at face value from the patch metadata."
                    ],
                    "commit": "a39b25d2f141dde954a2f00feed5c6eb9e3989b5",
                    "confidence": "medium",
                    "credits": [
                      {
                        "lang": "en",
                        "type": "remediation developer",
                        "value": "iglocska"
                      },
                      {
                        "lang": "en",
                        "type": "remediation developer",
                        "value": "Claude Opus 5 (1M context)"
                      }
                    ],
                    "cvssRationale": "The vulnerability is reachable over the network (AV:N) because MISP is a web application. Attack complexity is High (AC:H) because exploitation requires the Redis instance to be specifically unavailable at the time authentication failures occur; it is not a simple request. No attack target is required (AT:N). No privileges are needed (PR:N) because the suppressed logs pertain to unauthenticated authentication-failure events. No user interaction is required (UI:N). There is no direct confidentiality or integrity impact on the MISP data store (VC:N, VI:N). The availability impact is Low (VA:L) because the security-logging/audit function is unavailable during the Redis outage, impairing detection and forensic capabilities, but the core MISP service remains operational. No cross-scope impacts (SC:N, SI:N, SA:N).",
                    "draft": false,
                    "fixSummary": "The _shouldLog() method now explicitly checks whether the Redis connection is available before attempting to use it. If setupRedis() returns false, the method immediately returns true, causing every authentication-failure event to be logged. This converts the previous fail-closed behavior (silence on dependency failure) into a fail-open behavior for security logging (log everything when the throttle state is unavailable), ensuring that a Redis outage cannot be used to suppress the audit trail of failed authentication attempts.",
                    "generatedAt": "2026-09-15T09:34:28.852379Z",
                    "generator": "patch2vuln.py",
                    "model": "qwen3.8:27b",
                    "modelComparison": {
                      "rankings": [
                        {
                          "agreementScore": 9,
                          "assumptionCount": 4,
                          "confidence": "medium",
                          "model": "qwen3.8:27b",
                          "score": 6
                        }
                      ],
                      "selectedModel": "qwen3.8:27b",
                      "selectionMethod": "deterministic-consensus-v1",
                      "selectionNotice": "The selected result is closest to model consensus; this heuristic does not establish factual correctness and human review remains required."
                    },
                    "patchSha256": "ab1b5a5a68cf32cfb514f541d5db607932836ebf557634a44adfa822631afe9c",
                    "patchSummary": "In app/Controller/AppController.php, the _shouldLog() method was restructured: a new early-return guard \"if (!$redis) { return true; }\" was inserted immediately after the setupRedis() call, so that an unavailable Redis connection causes all auth-failure events to be logged. The subsequent throttle check was simplified to \"if (!$redis-\u003eexists(...))\" since the null case is already handled. Additionally, a block of commented-out Redis throttle code in the afterFilter() method (lines referencing misp:auth_fail_throttling) was removed as dead code.",
                    "patchTruncated": false,
                    "patches": [
                      {
                        "commit": "a39b25d2f141dde954a2f00feed5c6eb9e3989b5",
                        "patchSha256": "ab1b5a5a68cf32cfb514f541d5db607932836ebf557634a44adfa822631afe9c",
                        "source": "https://github.com/MISP/MISP/commit/a39b25d2f.patch",
                        "sourceUrl": "https://github.com/MISP/MISP/commit/a39b25d2f.patch",
                        "subject": "fix: [logging] Log auth failures when the throttle cannot"
                      }
                    ],
                    "source": "https://github.com/MISP/MISP/commit/a39b25d2f.patch",
                    "subject": "fix: [logging] Log auth failures when the throttle cannot",
                    "tagVersionBoundary": {
                      "commits_after_fix": 189,
                      "repository": "https://github.com/MISP/MISP",
                      "tag": "v2.5.46",
                      "version": "2.5.46",
                      "version_type": "semver"
                    },
                    "weaknessRationale": [
                      {
                        "cweId": "CWE-778",
                        "rationale": "The system fails to record security-relevant events (authentication failures) when a supporting dependency (Redis) is unavailable. The logging path silently drops all audit entries under a specific operational condition, which is a textbook case of insufficient logging of security events."
                      }
                    ]
                  }
                }
              },
              "recordType": "advisory",
              "vulnId": "GCVE-1-2026-20172"
            }
          ]
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
        "assignerShortName": "CIRCL",
        "cveId": "CVE-2026-92002",
        "datePublished": "2026-09-15T11:24:21.354Z",
        "dateReserved": "2026-09-15T11:24:19.778Z",
        "dateUpdated": "2026-09-15T12:09:48.540Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-91859 (GCVE-0-2026-91859)

    Vulnerability from cvelistv5 – Published: 2026-09-15 09:26 – Updated: 2026-09-15 13:05
    VLAI
    Title
    MISP Access Log Entry Overwritten by Error Controller's Second beforeFilter Pass
    Summary
    Affected versions of MISP can record incorrect access-log data for requests that terminate in an exception. Because CakeErrorController extends AppController, exception rendering runs the application startup path a second time. As a result, __accessMonitor() calls AccessLog::logRequest() twice for one HTTP request. The second deferred writer measures the error-controller execution instead of the original request and can overwrite the row created by the first pass. The corrupted fields include request duration, SQL query count, memory usage, and potentially the recorded query log. The bug was masked because the same model instance retained the ID of the first saved row, causing the later save to issue an UPDATE rather than insert an obvious duplicate row. Version affected: ≤2.5.45
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-15 13:04 UTC
    CWE
    • CWE-778 - Insufficient Logging
    • CWE-223 - Omission of Security-relevant Information in Logs
    References
    Impacted products
    Vendor Product Version
    MISP MISP Affected: 0 , < 2.5.46 (semver)
    Create a notification for this product.
    GCVE extensions
    AI involvement GCVE-BCP-05-X-01
    Whole record AI-generated Review: review GNA-1

    Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.

    ai-computer-assisted:llm-generatedai-computer-assisted:classification
    Model Source Identifier
    qwen3.8:27b ollama qwen3.8:27b
    Patch provenance GCVE-BCP-05-X-02
    Generator
    patch2vuln.py on 2026-09-15 09:22
    Model
    qwen3.8:27b
    Input
    https://github.com/MISP/MISP/commit/0dae5c072.patch 4eeecd38b5b8…
    Confidence
    medium
    Commit Subject Patch SHA-256
    0dae5c072d86 fix: [logging] Stop the error controller overwriting the 4eeecd38b5b8…
    Fix summary

    The fix introduces a per-instance boolean guard ($deferredWriterRegistered) in the AccessLog model so that logRequest() returns early on the second beforeFilter pass, preventing the error controller from overwriting the original request's log entry. Additionally, a $this->create() call is added before $this->save() in saveOnShutdown() to ensure each save issues an INSERT rather than an UPDATE, providing defense-in-depth against accidental row mutation.

    Patch summary

    In app/Model/AccessLog.php: (1) Added a private $deferredWriterRegistered property (default false). (2) At the top of logRequest(), added an early-return guard: if $this->deferredWriterRegistered is true, return true immediately. (3) Set $this->deferredWriterRegistered = true immediately before register_shutdown_function() so the flag is latched on the first pass. (4) In saveOnShutdown(), added $this->create() before $this->save() to force a new-row INSERT and prevent the model from issuing an UPDATE against a previously saved id. (5) Added explanatory doc-comments describing the double-beforeFilter mechanism and the ClassRegistry single-instance behavior.

    CVSS rationale

    The vulnerability is exploitable over the network (AV:N) with low complexity (AC:L) by any authenticated user who can trigger an unhandled exception (e.g., via a malformed request). No attack target manipulation is required (AT:N). Low privileges are sufficient (PR:L) as any authenticated MISP user can cause an error. No user interaction is needed (UI:N). There is no direct confidentiality or availability impact on MISP itself (VC:N, VA:N). The integrity impact is low (VI:L) because the access-log row is overwritten with incorrect metrics rather than deleted, and only requests that trigger exceptions are affected. No secondary impacts are identified (SC:N, SI:N, SA:N). The overall severity is low, reflecting a logging-integrity weakness that degrades audit reliability but does not directly expose data or disrupt service.

    Weakness rationale
    • CWE-778 The access-log mechanism fails to preserve accurate, immutable records of each request. The second beforeFilter pass overwrites the first pass's data, so the log does not faithfully reflect the actual request's duration, query count, memory usage, or SQL activity. This constitutes insufficient logging because the security-relevant audit data is corrupted rather than simply missing.
    • CWE-223 The genuine request metrics (duration, query count, memory, query log) are replaced by the error controller's metrics, effectively omitting the security-relevant information that the original request produced. This is a secondary mapping; CWE-778 is the primary weakness.
    Assumptions to verify
    • MISP requires authentication for the operations that produce access-log entries; PR:L assumes a low-privilege authenticated user can trigger an unhandled exception.
    • The affected version range is inferred from the tag_version_boundary (v2.5.46, 190 commits after fix); the exact first-affected and last-affected versions are not stated in the patch metadata.
    • The security impact is limited to log-integrity degradation; no direct data exfiltration, privilege escalation, or denial-of-service is evidenced by the patch.
    • The double beforeFilter invocation is a CakePHP framework behavior (ExceptionRenderer::_getController calling startupProcess on CakeErrorController) and is not itself a MISP vulnerability, but MISP's AccessLog model did not guard against it.
    Model comparison

    Selected qwen3.8:27b by deterministic-consensus-v1
    The selected result is closest to model consensus; this heuristic does not establish factual correctness and human review remains required.

    Model Score Agreement Confidence Assumptions
    qwen3.8:27b 6 9 medium 4
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-91859",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-15T13:04:57.329720Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-15T13:05:17.132Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "modules": [
                "app/Model/AccessLog.php"
              ],
              "product": "MISP",
              "programFiles": [
                "app/Model/AccessLog.php"
              ],
              "repo": "https://github.com/MISP/MISP",
              "vendor": "MISP",
              "versions": [
                {
                  "lessThan": "2.5.46",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "iglocska"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Claude Opus 5 (1M context)"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003e\u003c/p\u003e\u003cp\u003eAffected versions of MISP can record incorrect access-log data for requests that terminate in an exception.\u003c/p\u003e\n\u003cp\u003eBecause \u003ccode\u003eCakeErrorController\u003c/code\u003e extends \u003ccode\u003eAppController\u003c/code\u003e, exception rendering runs the application startup path a second time. As a result, \u003ccode\u003e__accessMonitor()\u003c/code\u003e calls \u003ccode\u003eAccessLog::logRequest()\u003c/code\u003e twice for one HTTP request. The second deferred writer measures the error-controller execution instead of the original request and can overwrite the row created by the first pass. The corrupted fields include request duration, SQL query count, memory usage, and potentially the recorded query log.\u003c/p\u003e\n\u003cp\u003eThe bug was masked because the same model instance retained the ID of the first saved row, causing the later save to issue an \u003ccode\u003eUPDATE\u003c/code\u003e rather than insert an obvious duplicate row.\u003c/p\u003e\u003cp\u003eVersion affected: \u22642.5.45\u003cbr\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e"
                }
              ],
              "value": "Affected versions of MISP can record incorrect access-log data for requests that terminate in an exception.\n\n\nBecause CakeErrorController extends AppController, exception rendering runs the application startup path a second time. As a result, __accessMonitor() calls AccessLog::logRequest() twice for one HTTP request. The second deferred writer measures the error-controller execution instead of the original request and can overwrite the row created by the first pass. The corrupted fields include request duration, SQL query count, memory usage, and potentially the recorded query log.\n\n\nThe bug was masked because the same model instance retained the ID of the first saved row, causing the later save to issue an UPDATE rather than insert an obvious duplicate row.\n\nVersion affected: \u22642.5.45"
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 5.3,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "LOW",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "LOW",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-778",
                  "description": "CWE-778 Insufficient Logging",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-223",
                  "description": "CWE-223 Omission of Security-relevant Information in Logs",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-15T09:26:35.198Z",
            "orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
            "shortName": "CIRCL"
          },
          "references": [
            {
              "name": "Security patch",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/MISP/MISP/commit/0dae5c072"
            }
          ],
          "solutions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eThe fix introduces a per-instance boolean guard ($deferredWriterRegistered) in the AccessLog model so that logRequest() returns early on the second beforeFilter pass, preventing the error controller from overwriting the original request\u0027s log entry. Additionally, a $this-\u0026gt;create() call is added before $this-\u0026gt;save() in saveOnShutdown() to ensure each save issues an INSERT rather than an UPDATE, providing defense-in-depth against accidental row mutation.\u003c/p\u003e"
                }
              ],
              "value": "The fix introduces a per-instance boolean guard ($deferredWriterRegistered) in the AccessLog model so that logRequest() returns early on the second beforeFilter pass, preventing the error controller from overwriting the original request\u0027s log entry. Additionally, a $this-\u003ecreate() call is added before $this-\u003esave() in saveOnShutdown() to ensure each save issues an INSERT rather than an UPDATE, providing defense-in-depth against accidental row mutation."
            }
          ],
          "title": "MISP Access Log Entry Overwritten by Error Controller\u0027s Second beforeFilter Pass",
          "x_gcve": [
            {
              "extensions": {
                "bcp-05-x-01": {
                  "ai_annotations": [
                    {
                      "ai_level": "generated",
                      "description": "Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.",
                      "gna_source": 1,
                      "models": [
                        {
                          "gna_source": 1,
                          "identifier": "qwen3.8:27b",
                          "name": "qwen3.8:27b",
                          "source": "ollama"
                        }
                      ],
                      "review_status": "review",
                      "scope": "record",
                      "tags": [
                        "ai-computer-assisted:llm-generated",
                        "ai-computer-assisted:classification"
                      ]
                    }
                  ]
                },
                "bcp-05-x-02": {
                  "x_patch2vuln": {
                    "assumptions": [
                      "MISP requires authentication for the operations that produce access-log entries; PR:L assumes a low-privilege authenticated user can trigger an unhandled exception.",
                      "The affected version range is inferred from the tag_version_boundary (v2.5.46, 190 commits after fix); the exact first-affected and last-affected versions are not stated in the patch metadata.",
                      "The security impact is limited to log-integrity degradation; no direct data exfiltration, privilege escalation, or denial-of-service is evidenced by the patch.",
                      "The double beforeFilter invocation is a CakePHP framework behavior (ExceptionRenderer::_getController calling startupProcess on CakeErrorController) and is not itself a MISP vulnerability, but MISP\u0027s AccessLog model did not guard against it."
                    ],
                    "commit": "0dae5c072d86e62140c385cf507135f196415fa6",
                    "confidence": "medium",
                    "credits": [
                      {
                        "lang": "en",
                        "type": "remediation developer",
                        "value": "iglocska"
                      },
                      {
                        "lang": "en",
                        "type": "remediation developer",
                        "value": "Claude Opus 5 (1M context)"
                      }
                    ],
                    "cvssRationale": "The vulnerability is exploitable over the network (AV:N) with low complexity (AC:L) by any authenticated user who can trigger an unhandled exception (e.g., via a malformed request). No attack target manipulation is required (AT:N). Low privileges are sufficient (PR:L) as any authenticated MISP user can cause an error. No user interaction is needed (UI:N). There is no direct confidentiality or availability impact on MISP itself (VC:N, VA:N). The integrity impact is low (VI:L) because the access-log row is overwritten with incorrect metrics rather than deleted, and only requests that trigger exceptions are affected. No secondary impacts are identified (SC:N, SI:N, SA:N). The overall severity is low, reflecting a logging-integrity weakness that degrades audit reliability but does not directly expose data or disrupt service.",
                    "draft": false,
                    "fixSummary": "The fix introduces a per-instance boolean guard ($deferredWriterRegistered) in the AccessLog model so that logRequest() returns early on the second beforeFilter pass, preventing the error controller from overwriting the original request\u0027s log entry. Additionally, a $this-\u003ecreate() call is added before $this-\u003esave() in saveOnShutdown() to ensure each save issues an INSERT rather than an UPDATE, providing defense-in-depth against accidental row mutation.",
                    "generatedAt": "2026-09-15T09:22:08.485154Z",
                    "generator": "patch2vuln.py",
                    "model": "qwen3.8:27b",
                    "modelComparison": {
                      "rankings": [
                        {
                          "agreementScore": 9,
                          "assumptionCount": 4,
                          "confidence": "medium",
                          "model": "qwen3.8:27b",
                          "score": 6
                        }
                      ],
                      "selectedModel": "qwen3.8:27b",
                      "selectionMethod": "deterministic-consensus-v1",
                      "selectionNotice": "The selected result is closest to model consensus; this heuristic does not establish factual correctness and human review remains required."
                    },
                    "patchSha256": "4eeecd38b5b824e3c5c1ae20886e62534ebed473410f59bea7276f83b32d4051",
                    "patchSummary": "In app/Model/AccessLog.php: (1) Added a private $deferredWriterRegistered property (default false). (2) At the top of logRequest(), added an early-return guard: if $this-\u003edeferredWriterRegistered is true, return true immediately. (3) Set $this-\u003edeferredWriterRegistered = true immediately before register_shutdown_function() so the flag is latched on the first pass. (4) In saveOnShutdown(), added $this-\u003ecreate() before $this-\u003esave() to force a new-row INSERT and prevent the model from issuing an UPDATE against a previously saved id. (5) Added explanatory doc-comments describing the double-beforeFilter mechanism and the ClassRegistry single-instance behavior.",
                    "patchTruncated": false,
                    "patches": [
                      {
                        "commit": "0dae5c072d86e62140c385cf507135f196415fa6",
                        "patchSha256": "4eeecd38b5b824e3c5c1ae20886e62534ebed473410f59bea7276f83b32d4051",
                        "source": "https://github.com/MISP/MISP/commit/0dae5c072.patch",
                        "sourceUrl": "https://github.com/MISP/MISP/commit/0dae5c072.patch",
                        "subject": "fix: [logging] Stop the error controller overwriting the"
                      }
                    ],
                    "source": "https://github.com/MISP/MISP/commit/0dae5c072.patch",
                    "subject": "fix: [logging] Stop the error controller overwriting the",
                    "tagVersionBoundary": {
                      "commits_after_fix": 190,
                      "repository": "https://github.com/MISP/MISP",
                      "tag": "v2.5.46",
                      "version": "2.5.46",
                      "version_type": "semver"
                    },
                    "weaknessRationale": [
                      {
                        "cweId": "CWE-778",
                        "rationale": "The access-log mechanism fails to preserve accurate, immutable records of each request. The second beforeFilter pass overwrites the first pass\u0027s data, so the log does not faithfully reflect the actual request\u0027s duration, query count, memory usage, or SQL activity. This constitutes insufficient logging because the security-relevant audit data is corrupted rather than simply missing."
                      },
                      {
                        "cweId": "CWE-223",
                        "rationale": "The genuine request metrics (duration, query count, memory, query log) are replaced by the error controller\u0027s metrics, effectively omitting the security-relevant information that the original request produced. This is a secondary mapping; CWE-778 is the primary weakness."
                      }
                    ]
                  }
                }
              },
              "recordType": "advisory",
              "vulnId": "GCVE-1-2026-20138"
            }
          ]
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
        "assignerShortName": "CIRCL",
        "cveId": "CVE-2026-91859",
        "datePublished": "2026-09-15T09:26:35.198Z",
        "dateReserved": "2026-09-15T09:26:32.260Z",
        "dateUpdated": "2026-09-15T13:05:17.132Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-91857 (GCVE-0-2026-91857)

    Vulnerability from cvelistv5 – Published: 2026-09-15 09:14 – Updated: 2026-09-15 13:19
    VLAI
    Title
    MISP: State-changing actions accessible via GET request enabling CSRF
    Summary
    Affected versions of MISP expose several state-changing controller actions without restricting them to POST. The affected actions are:  - EventReportsController::purgeUnusedPictures()  - NoticelistsController::enableNoticelist()  - ServersController::removeOrphanedCorrelations()  - WorkflowsController::rebuildRedis() The patch adds allowMethod(['post']) to each action, preventing them from being triggered through ordinary GET requests. For purgeUnusedPictures(), the corresponding UI previously used $.get(). The fix converts that request to POST and supplies X-CSRF-Token, while the controller enables header-only CSRF validation for that AJAX action. Because GET requests can be induced cross-origin through links, images, redirects, or navigation, accepting GET for these state-changing operations can let an attacker trigger them using the authenticated victim's session. Version affected: ≤2.5.45
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-15 13:10 UTC
    CWE
    • CWE-352 - Cross-Site Request Forgery (CSRF)
    References
    Impacted products
    Vendor Product Version
    MISP MISP Affected: 0 , < 2.5.46 (semver)
    Create a notification for this product.
    GCVE extensions
    AI involvement GCVE-BCP-05-X-01
    Whole record AI-generated Review: review GNA-1

    Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.

    ai-computer-assisted:llm-generatedai-computer-assisted:classification
    Model Source Identifier
    qwen3.8:27b ollama qwen3.8:27b
    Patch provenance GCVE-BCP-05-X-02
    Generator
    patch2vuln.py on 2026-09-15 09:10
    Model
    qwen3.8:27b
    Input
    https://github.com/MISP/MISP/commit/b4a5486b5.patch adc31514b96a…
    Confidence
    high
    Commit Subject Patch SHA-256
    b4a5486b5ddd fix: [security] Require POST for four remaining adc31514b96a…
    Fix summary

    The vulnerability is remediated by restricting all four state-changing actions to accept only POST requests via the CakePHP allowMethod() guard. Additionally, the client-side JavaScript for purgeUnusedPictures is updated to issue a POST request with the page's CSRF token in the X-CSRF-Token header, and a beforeFilter() hook is added to EventReportsController to configure header-only CSRF token validation for that specific action, since it is invoked via hand-built AJAX rather than a rendered form.

    Patch summary

    Adds $this->request->allowMethod(['post']) to purgeUnusedPictures, enableNoticelist, removeOrphanedCorrelations, and rebuildRedis. Adds a beforeFilter() method to EventReportsController calling _csrfTokenHeaderOnly(['purgeUnusedPictures']) to permit CSRF token validation via the X-CSRF-Token header. Updates the managed_imported_pictures.ctp view to replace $.get() with $.ajax() using type 'post' and the X-CSRF-Token header. Adds REST response handling and flash/redirect logic to rebuildRedis for consistency with other actions.

    CVSS rationale

    AV:N: The attack is delivered over the network (e.g., a malicious link or page). AC:L: No special race conditions or complex setup are required; a simple GET URL suffices. AT:N: No prior compromise or manipulation of the target system is needed. PR:L: The attacker requires the victim to be an authenticated MISP user; the attacker themselves need not be authenticated. UI:A: The victim must actively interact (click a link or navigate to a crafted page) to trigger the forged request. VC:N: No confidential data is exposed by the affected actions. VI:L: Integrity impact is low; the actions cause limited state changes (deleting unused pictures, toggling a noticelist, removing orphaned correlations, rebuilding a cache) rather than corrupting critical data. VA:N: No meaningful availability impact; the actions do not cause denial of service. SC/SI/SA:N: No impact on subsequent systems.

    Weakness rationale
    • CWE-352 The root cause is that state-changing endpoints accept GET requests, which are not protected by the framework's CSRF token mechanism. This allows an attacker to forge requests on behalf of an authenticated user via links, auto-loading resources, or other passive/active user interactions, which is the defining characteristic of CSRF.
    Assumptions to verify
    • The fix commit is 196 commits before the v2.5.46 tag, implying the vulnerability existed in versions prior to v2.5.46; exact affected version range is not explicitly stated in the patch.
    • MISP requires user authentication to access the affected endpoints; the PR:L assumption is based on MISP's standard authentication model.
    • The CSRF token mechanism in CakePHP (the framework used by MISP) is assumed to protect POST requests but not GET requests, consistent with the patch's own comments.
    • The vulnerability was found during internal review and was not externally reported, per the commit message.
    Model comparison

    Selected qwen3.8:27b by deterministic-consensus-v1
    The selected result is closest to model consensus; this heuristic does not establish factual correctness and human review remains required.

    Model Score Agreement Confidence Assumptions
    qwen3.8:27b 7 9 high 4
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-91857",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-15T13:10:25.729586Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-15T13:19:25.134Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "modules": [
                "EventReportsController",
                "NoticelistsController",
                "ServersController",
                "WorkflowsController"
              ],
              "product": "MISP",
              "programFiles": [
                "app/Controller/EventReportsController.php",
                "app/Controller/NoticelistsController.php",
                "app/Controller/ServersController.php",
                "app/Controller/WorkflowsController.php",
                "app/View/EventReports/managed_imported_pictures.ctp"
              ],
              "repo": "https://github.com/MISP/MISP",
              "vendor": "MISP",
              "versions": [
                {
                  "lessThan": "2.5.46",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "iglocska"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Claude Opus 5 (1M context)"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003e\u003c/p\u003e\u003cp\u003eAffected versions of MISP expose several state-changing controller actions without restricting them to POST.\u003c/p\u003e\n\u003cp\u003eThe affected actions are:\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003ccode\u003e\u2003-\u0026nbsp;EventReportsController::purgeUnusedPictures()\u003c/code\u003e\n\u003cbr\u003e\u003ccode\u003e\u2003-\u0026nbsp;NoticelistsController::enableNoticelist()\u003c/code\u003e\n\u003cbr\u003e\u003ccode\u003e\u2003-\u0026nbsp;ServersController::removeOrphanedCorrelations()\u003c/code\u003e\n\u003cbr\u003e\u003cdiv\u003e\u003ccode\u003e\u2003- WorkflowsController::rebuildRedis()\u003c/code\u003e\u003c/div\u003e\u003cdiv\u003e\u003ccode\u003e\u003cbr\u003e\u003c/code\u003e\u003c/div\u003e\u003cp\u003e\u003ccode\u003e\u003c/code\u003e\u003c/p\u003e\u003cp\u003eThe patch adds \u003ccode\u003eallowMethod([\u0027post\u0027])\u003c/code\u003e to each action, preventing them from being triggered through ordinary GET requests.\u003c/p\u003e\n\u003cp\u003eFor \u003ccode\u003epurgeUnusedPictures()\u003c/code\u003e, the corresponding UI previously used \u003ccode\u003e$.get()\u003c/code\u003e. The fix converts that request to POST and supplies \u003ccode\u003eX-CSRF-Token\u003c/code\u003e, while the controller enables header-only CSRF validation for that AJAX action.\u003c/p\u003e\n\u003cp\u003eBecause GET requests can be induced cross-origin through links, images, redirects, or navigation, accepting GET for these state-changing operations can let an attacker trigger them using the authenticated victim\u0027s session.\u003c/p\u003e\u003cp\u003eVersion affected: \u22642.5.45\u003cbr\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e"
                }
              ],
              "value": "Affected versions of MISP expose several state-changing controller actions without restricting them to POST.\n\n\nThe affected actions are:\n\n\n\n\u2003-\u00a0EventReportsController::purgeUnusedPictures()\n\n\u2003-\u00a0NoticelistsController::enableNoticelist()\n\n\u2003-\u00a0ServersController::removeOrphanedCorrelations()\n\n\u2003- WorkflowsController::rebuildRedis()\n\n\n\n\n\n\nThe patch adds allowMethod([\u0027post\u0027]) to each action, preventing them from being triggered through ordinary GET requests.\n\n\nFor purgeUnusedPictures(), the corresponding UI previously used $.get(). The fix converts that request to POST and supplies X-CSRF-Token, while the controller enables header-only CSRF validation for that AJAX action.\n\n\nBecause GET requests can be induced cross-origin through links, images, redirects, or navigation, accepting GET for these state-changing operations can let an attacker trigger them using the authenticated victim\u0027s session.\n\nVersion affected: \u22642.5.45"
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-62",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-62 Cross Site Request Forgery"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 5.3,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "PASSIVE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "LOW",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "LOW",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-352",
                  "description": "CWE-352 Cross-Site Request Forgery (CSRF)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-15T09:14:43.722Z",
            "orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
            "shortName": "CIRCL"
          },
          "references": [
            {
              "name": "Security patch",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/MISP/MISP/commit/b4a5486b5"
            }
          ],
          "solutions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eThe vulnerability is remediated by restricting all four state-changing actions to accept only POST requests via the CakePHP allowMethod() guard. Additionally, the client-side JavaScript for purgeUnusedPictures is updated to issue a POST request with the page\u0027s CSRF token in the X-CSRF-Token header, and a beforeFilter() hook is added to EventReportsController to configure header-only CSRF token validation for that specific action, since it is invoked via hand-built AJAX rather than a rendered form.\u003c/p\u003e"
                }
              ],
              "value": "The vulnerability is remediated by restricting all four state-changing actions to accept only POST requests via the CakePHP allowMethod() guard. Additionally, the client-side JavaScript for purgeUnusedPictures is updated to issue a POST request with the page\u0027s CSRF token in the X-CSRF-Token header, and a beforeFilter() hook is added to EventReportsController to configure header-only CSRF token validation for that specific action, since it is invoked via hand-built AJAX rather than a rendered form."
            }
          ],
          "title": "MISP: State-changing actions accessible via GET request enabling CSRF",
          "x_gcve": [
            {
              "extensions": {
                "bcp-05-x-01": {
                  "ai_annotations": [
                    {
                      "ai_level": "generated",
                      "description": "Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.",
                      "gna_source": 1,
                      "models": [
                        {
                          "gna_source": 1,
                          "identifier": "qwen3.8:27b",
                          "name": "qwen3.8:27b",
                          "source": "ollama"
                        }
                      ],
                      "review_status": "review",
                      "scope": "record",
                      "tags": [
                        "ai-computer-assisted:llm-generated",
                        "ai-computer-assisted:classification"
                      ]
                    }
                  ]
                },
                "bcp-05-x-02": {
                  "x_patch2vuln": {
                    "assumptions": [
                      "The fix commit is 196 commits before the v2.5.46 tag, implying the vulnerability existed in versions prior to v2.5.46; exact affected version range is not explicitly stated in the patch.",
                      "MISP requires user authentication to access the affected endpoints; the PR:L assumption is based on MISP\u0027s standard authentication model.",
                      "The CSRF token mechanism in CakePHP (the framework used by MISP) is assumed to protect POST requests but not GET requests, consistent with the patch\u0027s own comments.",
                      "The vulnerability was found during internal review and was not externally reported, per the commit message."
                    ],
                    "commit": "b4a5486b5ddd078dc11248cbd7f21725fb1f43cf",
                    "confidence": "high",
                    "credits": [
                      {
                        "lang": "en",
                        "type": "remediation developer",
                        "value": "iglocska"
                      },
                      {
                        "lang": "en",
                        "type": "remediation developer",
                        "value": "Claude Opus 5 (1M context)"
                      }
                    ],
                    "cvssRationale": "AV:N: The attack is delivered over the network (e.g., a malicious link or page). AC:L: No special race conditions or complex setup are required; a simple GET URL suffices. AT:N: No prior compromise or manipulation of the target system is needed. PR:L: The attacker requires the victim to be an authenticated MISP user; the attacker themselves need not be authenticated. UI:A: The victim must actively interact (click a link or navigate to a crafted page) to trigger the forged request. VC:N: No confidential data is exposed by the affected actions. VI:L: Integrity impact is low; the actions cause limited state changes (deleting unused pictures, toggling a noticelist, removing orphaned correlations, rebuilding a cache) rather than corrupting critical data. VA:N: No meaningful availability impact; the actions do not cause denial of service. SC/SI/SA:N: No impact on subsequent systems.",
                    "draft": false,
                    "fixSummary": "The vulnerability is remediated by restricting all four state-changing actions to accept only POST requests via the CakePHP allowMethod() guard. Additionally, the client-side JavaScript for purgeUnusedPictures is updated to issue a POST request with the page\u0027s CSRF token in the X-CSRF-Token header, and a beforeFilter() hook is added to EventReportsController to configure header-only CSRF token validation for that specific action, since it is invoked via hand-built AJAX rather than a rendered form.",
                    "generatedAt": "2026-09-15T09:10:36.581856Z",
                    "generator": "patch2vuln.py",
                    "model": "qwen3.8:27b",
                    "modelComparison": {
                      "rankings": [
                        {
                          "agreementScore": 9,
                          "assumptionCount": 4,
                          "confidence": "high",
                          "model": "qwen3.8:27b",
                          "score": 7
                        }
                      ],
                      "selectedModel": "qwen3.8:27b",
                      "selectionMethod": "deterministic-consensus-v1",
                      "selectionNotice": "The selected result is closest to model consensus; this heuristic does not establish factual correctness and human review remains required."
                    },
                    "patchSha256": "adc31514b96a99a411ca1ed5a31abf99642d19de3a09f536e62310b298d2552b",
                    "patchSummary": "Adds $this-\u003erequest-\u003eallowMethod([\u0027post\u0027]) to purgeUnusedPictures, enableNoticelist, removeOrphanedCorrelations, and rebuildRedis. Adds a beforeFilter() method to EventReportsController calling _csrfTokenHeaderOnly([\u0027purgeUnusedPictures\u0027]) to permit CSRF token validation via the X-CSRF-Token header. Updates the managed_imported_pictures.ctp view to replace $.get() with $.ajax() using type \u0027post\u0027 and the X-CSRF-Token header. Adds REST response handling and flash/redirect logic to rebuildRedis for consistency with other actions.",
                    "patchTruncated": false,
                    "patches": [
                      {
                        "commit": "b4a5486b5ddd078dc11248cbd7f21725fb1f43cf",
                        "patchSha256": "adc31514b96a99a411ca1ed5a31abf99642d19de3a09f536e62310b298d2552b",
                        "source": "https://github.com/MISP/MISP/commit/b4a5486b5.patch",
                        "sourceUrl": "https://github.com/MISP/MISP/commit/b4a5486b5.patch",
                        "subject": "fix: [security] Require POST for four remaining"
                      }
                    ],
                    "source": "https://github.com/MISP/MISP/commit/b4a5486b5.patch",
                    "subject": "fix: [security] Require POST for four remaining",
                    "tagVersionBoundary": {
                      "commits_after_fix": 196,
                      "repository": "https://github.com/MISP/MISP",
                      "tag": "v2.5.46",
                      "version": "2.5.46",
                      "version_type": "semver"
                    },
                    "weaknessRationale": [
                      {
                        "cweId": "CWE-352",
                        "rationale": "The root cause is that state-changing endpoints accept GET requests, which are not protected by the framework\u0027s CSRF token mechanism. This allows an attacker to forge requests on behalf of an authenticated user via links, auto-loading resources, or other passive/active user interactions, which is the defining characteristic of CSRF."
                      }
                    ]
                  }
                }
              },
              "recordType": "advisory",
              "vulnId": "GCVE-1-2026-20242"
            }
          ]
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
        "assignerShortName": "CIRCL",
        "cveId": "CVE-2026-91857",
        "datePublished": "2026-09-15T09:14:43.722Z",
        "dateReserved": "2026-09-15T09:14:39.778Z",
        "dateUpdated": "2026-09-15T13:19:25.134Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-91851 (GCVE-0-2026-91851)

    Vulnerability from cvelistv5 – Published: 2026-09-15 08:50 – Updated: 2026-09-15 13:29
    VLAI
    Title
    MISP Dashboard Template ACL Bypass Due to VARCHAR-to-Integer Type Coercion in Permission Flag Comparison
    Summary
    Affected versions of MISP incorrectly filter dashboard templates that are restricted to a specific permission flag. DashboardsController::listTemplates() allowed a template when either:  - its restrict_to_permission_flag matched one of the current user’s permission flags, or  - restrict_to_permission_flag equaled integer 0 However, restrict_to_permission_flag is a varchar. MySQL therefore performed numeric coercion when comparing the column against integer 0. Strings such as perm_site_admin convert numerically to zero, making expressions such as perm_site_admin = 0 evaluate true and causing the “unrestricted” branch to match permission-restricted templates as well. Version affected: ≤2.5.45
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-15 13:29 UTC
    CWE
    References
    Impacted products
    Vendor Product Version
    MISP MISP Affected: 0 , < 2.5.46 (semver)
    Create a notification for this product.
    GCVE extensions
    AI involvement GCVE-BCP-05-X-01
    Whole record AI-generated Review: review GNA-1

    Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.

    ai-computer-assisted:llm-generatedai-computer-assisted:classification
    Model Source Identifier
    qwen3.8:27b ollama qwen3.8:27b
    Patch provenance GCVE-BCP-05-X-02
    Generator
    patch2vuln.py on 2026-09-15 08:40
    Model
    qwen3.8:27b
    Input
    https://github.com/MISP/MISP/commit/245b8d63a.patch ac03cd1103d5…
    Confidence
    medium
    Commit Subject Patch SHA-256
    245b8d63a379 fix: [acl] Compare the dashboard template permission flag as ac03cd1103d5…
    Fix summary

    The fix corrects the type mismatch in the permission flag comparison by replacing the integer literal 0 with the explicit string values '' and '0', which are the actual database values representing an unrestricted dashboard template. This ensures MySQL performs a proper string-to-string comparison, so only rows genuinely marked as unrestricted are returned, restoring the intended per-permission-level access control on dashboard templates.

    Patch summary

    In app/Controller/DashboardsController.php, the listTemplates() method's query condition was changed from ['Dashboard.restrict_to_permission_flag' => 0] to ['Dashboard.restrict_to_permission_flag' => ['', '0']]. A multi-line comment was added explaining that restrict_to_permission_flag is a VARCHAR column and that comparing it to integer 0 causes MySQL to coerce the column, making the clause a no-op. The two values that actually represent unrestricted access are the empty string (column default) and the string '0' (posted by the save form).

    CVSS rationale

    The vulnerability is exploitable over the network (AV:N) via the MISP web interface with low attack complexity (AC:L) and no attack target manipulation (AT:N). It requires a low-privilege authenticated user (PR:L) and no user interaction (UI:N). The impact is limited to confidentiality (VC:L) as restricted dashboard template definitions are disclosed to unauthorized users; there is no integrity or availability impact (VI:N, VA:N) and no secondary effects (SC:N, SI:N, SA:N). The severity is moderate because the disclosed data is dashboard template metadata rather than raw threat intelligence, but it still represents a breach of the intended access control boundary.

    Weakness rationale
    • CWE-863 The permission-based filter on dashboard templates was effectively bypassed because the type-coerced comparison matched all rows, allowing any authenticated user to access templates restricted to higher-privilege roles. The authorization check was present in code but did not function correctly.
    • CWE-697 The root cause is a comparison between a VARCHAR column and an integer literal. MySQL's implicit type coercion caused the comparison to evaluate to TRUE for all non-numeric string values, making the intended filter a no-op. This is a classic incorrect comparison due to type mismatch.
    Assumptions to verify
    • The affected version range is inferred from the tag_version_boundary (v2.5.46 with 200 commits after fix); no explicit affected or fixed version is stated in the patch metadata.
    • The vulnerability requires an authenticated MISP user with any role; the exact minimum privilege level needed to access the listTemplates endpoint is not specified in the patch.
    • The impact is assessed as Low confidentiality because the disclosed data is dashboard template definitions (layout, widget configuration) rather than raw threat intelligence or user credentials.
    • The MySQL type-coercion behavior described in the commit message and code comments is assumed to be accurate for the MySQL versions supported by MISP.
    Model comparison

    Selected qwen3.8:27b by deterministic-consensus-v1
    The selected result is closest to model consensus; this heuristic does not establish factual correctness and human review remains required.

    Model Score Agreement Confidence Assumptions
    qwen3.8:27b 6 9 medium 4
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-91851",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-15T13:29:22.086413Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-15T13:29:55.108Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "modules": [
                "DashboardsController"
              ],
              "product": "MISP",
              "programFiles": [
                "app/Controller/DashboardsController.php"
              ],
              "repo": "https://github.com/MISP/MISP",
              "vendor": "MISP",
              "versions": [
                {
                  "lessThan": "2.5.46",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "iglocska"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Claude Opus 5 (1M context)"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003e\u003c/p\u003e\u003cp\u003eAffected versions of MISP incorrectly filter dashboard templates that are restricted to a specific permission flag.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eDashboardsController::listTemplates()\u003c/code\u003e allowed a template when either:\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cdiv\u003e\u2003-\u0026nbsp;its \u003ccode\u003erestrict_to_permission_flag\u003c/code\u003e matched one of the current user\u2019s permission flags, or\u003c/div\u003e\u003cdiv\u003e\u2003-\u0026nbsp;\u003ccode\u003erestrict_to_permission_flag\u003c/code\u003e equaled integer \u003ccode\u003e0\u003c/code\u003e\u003c/div\u003e\u003cdiv\u003e\u003cbr\u003e\u003ccode\u003e\u003c/code\u003e\u003c/div\u003e\u003cp\u003e\u003ccode\u003e\u003c/code\u003e\u003c/p\u003e\u003cp\u003eHowever, \u003ccode\u003erestrict_to_permission_flag\u003c/code\u003e is a \u003ccode\u003evarchar\u003c/code\u003e. MySQL therefore performed numeric coercion when comparing the column against integer \u003ccode\u003e0\u003c/code\u003e. Strings such as \u003ccode\u003eperm_site_admin\u003c/code\u003e convert numerically to zero, making expressions such as \u003ccode\u003eperm_site_admin = 0\u003c/code\u003e evaluate true and causing the \u201cunrestricted\u201d branch to match permission-restricted templates as well.\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003eVersion affected: \u22642.5.45\u003cbr\u003e\u003c/p\u003e"
                }
              ],
              "value": "Affected versions of MISP incorrectly filter dashboard templates that are restricted to a specific permission flag.\n\n\nDashboardsController::listTemplates() allowed a template when either:\n\n\n\n\u2003-\u00a0its restrict_to_permission_flag matched one of the current user\u2019s permission flags, or\n\n\u2003-\u00a0restrict_to_permission_flag equaled integer 0\n\n\n\n\n\n\nHowever, restrict_to_permission_flag is a varchar. MySQL therefore performed numeric coercion when comparing the column against integer 0. Strings such as perm_site_admin convert numerically to zero, making expressions such as perm_site_admin = 0 evaluate true and causing the \u201cunrestricted\u201d branch to match permission-restricted templates as well.\n\n\n\nVersion affected: \u22642.5.45"
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-1",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-1 Accessing Functionality Not Properly Constrained by ACLs"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 5.3,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "LOW",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "LOW",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-863",
                  "description": "CWE-863 Incorrect Authorization",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-697",
                  "description": "CWE-697 Incorrect Comparison",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-15T08:50:01.513Z",
            "orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
            "shortName": "CIRCL"
          },
          "references": [
            {
              "name": "Security patch",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/MISP/MISP/commit/245b8d63a"
            }
          ],
          "solutions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eThe fix corrects the type mismatch in the permission flag comparison by replacing the integer literal 0 with the explicit string values \u0027\u0027 and \u00270\u0027, which are the actual database values representing an unrestricted dashboard template. This ensures MySQL performs a proper string-to-string comparison, so only rows genuinely marked as unrestricted are returned, restoring the intended per-permission-level access control on dashboard templates.\u003c/p\u003e"
                }
              ],
              "value": "The fix corrects the type mismatch in the permission flag comparison by replacing the integer literal 0 with the explicit string values \u0027\u0027 and \u00270\u0027, which are the actual database values representing an unrestricted dashboard template. This ensures MySQL performs a proper string-to-string comparison, so only rows genuinely marked as unrestricted are returned, restoring the intended per-permission-level access control on dashboard templates."
            }
          ],
          "title": "MISP Dashboard Template ACL Bypass Due to VARCHAR-to-Integer Type Coercion in Permission Flag Comparison",
          "x_gcve": [
            {
              "extensions": {
                "bcp-05-x-01": {
                  "ai_annotations": [
                    {
                      "ai_level": "generated",
                      "description": "Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.",
                      "gna_source": 1,
                      "models": [
                        {
                          "gna_source": 1,
                          "identifier": "qwen3.8:27b",
                          "name": "qwen3.8:27b",
                          "source": "ollama"
                        }
                      ],
                      "review_status": "review",
                      "scope": "record",
                      "tags": [
                        "ai-computer-assisted:llm-generated",
                        "ai-computer-assisted:classification"
                      ]
                    }
                  ]
                },
                "bcp-05-x-02": {
                  "x_patch2vuln": {
                    "assumptions": [
                      "The affected version range is inferred from the tag_version_boundary (v2.5.46 with 200 commits after fix); no explicit affected or fixed version is stated in the patch metadata.",
                      "The vulnerability requires an authenticated MISP user with any role; the exact minimum privilege level needed to access the listTemplates endpoint is not specified in the patch.",
                      "The impact is assessed as Low confidentiality because the disclosed data is dashboard template definitions (layout, widget configuration) rather than raw threat intelligence or user credentials.",
                      "The MySQL type-coercion behavior described in the commit message and code comments is assumed to be accurate for the MySQL versions supported by MISP."
                    ],
                    "commit": "245b8d63a3794d048fb88275512fa0d32981f0b8",
                    "confidence": "medium",
                    "credits": [
                      {
                        "lang": "en",
                        "type": "remediation developer",
                        "value": "iglocska"
                      },
                      {
                        "lang": "en",
                        "type": "remediation developer",
                        "value": "Claude Opus 5 (1M context)"
                      }
                    ],
                    "cvssRationale": "The vulnerability is exploitable over the network (AV:N) via the MISP web interface with low attack complexity (AC:L) and no attack target manipulation (AT:N). It requires a low-privilege authenticated user (PR:L) and no user interaction (UI:N). The impact is limited to confidentiality (VC:L) as restricted dashboard template definitions are disclosed to unauthorized users; there is no integrity or availability impact (VI:N, VA:N) and no secondary effects (SC:N, SI:N, SA:N). The severity is moderate because the disclosed data is dashboard template metadata rather than raw threat intelligence, but it still represents a breach of the intended access control boundary.",
                    "draft": false,
                    "fixSummary": "The fix corrects the type mismatch in the permission flag comparison by replacing the integer literal 0 with the explicit string values \u0027\u0027 and \u00270\u0027, which are the actual database values representing an unrestricted dashboard template. This ensures MySQL performs a proper string-to-string comparison, so only rows genuinely marked as unrestricted are returned, restoring the intended per-permission-level access control on dashboard templates.",
                    "generatedAt": "2026-09-15T08:40:44.690048Z",
                    "generator": "patch2vuln.py",
                    "model": "qwen3.8:27b",
                    "modelComparison": {
                      "rankings": [
                        {
                          "agreementScore": 9,
                          "assumptionCount": 4,
                          "confidence": "medium",
                          "model": "qwen3.8:27b",
                          "score": 6
                        }
                      ],
                      "selectedModel": "qwen3.8:27b",
                      "selectionMethod": "deterministic-consensus-v1",
                      "selectionNotice": "The selected result is closest to model consensus; this heuristic does not establish factual correctness and human review remains required."
                    },
                    "patchSha256": "ac03cd1103d5fb0998c2406836df41d3449e5a5d6a0a5d2ffc77685eba48e188",
                    "patchSummary": "In app/Controller/DashboardsController.php, the listTemplates() method\u0027s query condition was changed from [\u0027Dashboard.restrict_to_permission_flag\u0027 =\u003e 0] to [\u0027Dashboard.restrict_to_permission_flag\u0027 =\u003e [\u0027\u0027, \u00270\u0027]]. A multi-line comment was added explaining that restrict_to_permission_flag is a VARCHAR column and that comparing it to integer 0 causes MySQL to coerce the column, making the clause a no-op. The two values that actually represent unrestricted access are the empty string (column default) and the string \u00270\u0027 (posted by the save form).",
                    "patchTruncated": false,
                    "patches": [
                      {
                        "commit": "245b8d63a3794d048fb88275512fa0d32981f0b8",
                        "patchSha256": "ac03cd1103d5fb0998c2406836df41d3449e5a5d6a0a5d2ffc77685eba48e188",
                        "source": "https://github.com/MISP/MISP/commit/245b8d63a.patch",
                        "sourceUrl": "https://github.com/MISP/MISP/commit/245b8d63a.patch",
                        "subject": "fix: [acl] Compare the dashboard template permission flag as"
                      }
                    ],
                    "source": "https://github.com/MISP/MISP/commit/245b8d63a.patch",
                    "subject": "fix: [acl] Compare the dashboard template permission flag as",
                    "tagVersionBoundary": {
                      "commits_after_fix": 200,
                      "repository": "https://github.com/MISP/MISP",
                      "tag": "v2.5.46",
                      "version": "2.5.46",
                      "version_type": "semver"
                    },
                    "weaknessRationale": [
                      {
                        "cweId": "CWE-863",
                        "rationale": "The permission-based filter on dashboard templates was effectively bypassed because the type-coerced comparison matched all rows, allowing any authenticated user to access templates restricted to higher-privilege roles. The authorization check was present in code but did not function correctly."
                      },
                      {
                        "cweId": "CWE-697",
                        "rationale": "The root cause is a comparison between a VARCHAR column and an integer literal. MySQL\u0027s implicit type coercion caused the comparison to evaluate to TRUE for all non-numeric string values, making the intended filter a no-op. This is a classic incorrect comparison due to type mismatch."
                      }
                    ]
                  }
                }
              },
              "recordType": "advisory",
              "vulnId": "GCVE-1-2026-20010"
            }
          ]
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
        "assignerShortName": "CIRCL",
        "cveId": "CVE-2026-91851",
        "datePublished": "2026-09-15T08:50:01.513Z",
        "dateReserved": "2026-09-15T08:49:59.734Z",
        "dateUpdated": "2026-09-15T13:29:55.108Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-91846 (GCVE-0-2026-91846)

    Vulnerability from cvelistv5 – Published: 2026-09-15 08:36 – Updated: 2026-09-15 13:50
    VLAI
    Title
    MISP Collection Element Add Missing Authorization on Referenced Object UUID
    Summary
    Affected versions of MISP allow a collection element to be created from a bare UUID without consistently checking whether the acting user is allowed to access the referenced object. The commit explains that collection elements themselves only store UUIDs, while the collection view later resolves those UUIDs into their underlying objects. Before this fix, the generic add() path could therefore persist a UUID for an Event or Galaxy Cluster that the caller could not normally read. The patch explicitly notes that this made collections a way to reference another organisation’s private data and had caused disclosure of organisation-only events in the beta collection view. The fix centralizes authorization in __assertCanUseElements(). Event UUIDs are validated through Event::fetchSimpleEvent() under the current user’s ACL, while Galaxy Cluster UUIDs are checked through GalaxyCluster::fetchGalaxyClusters(). The check is applied both to the CRUD add() path and to addElementToCollection(). Version affected: ≤2.5.45
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-15 13:41 UTC
    CWE
    • CWE-862 - Missing Authorization
    • CWE-639 - Authorization Bypass Through User-Controlled Key
    References
    Impacted products
    Vendor Product Version
    MISP MISP Affected: 0 , < 2.5.46 (semver)
    Create a notification for this product.
    GCVE extensions
    AI involvement GCVE-BCP-05-X-01
    Whole record AI-generated Review: review GNA-1

    Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.

    ai-computer-assisted:llm-generatedai-computer-assisted:classification
    Model Source Identifier
    qwen3.8:27b ollama qwen3.8:27b
    Patch provenance GCVE-BCP-05-X-02
    Generator
    patch2vuln.py on 2026-09-15 08:32
    Model
    qwen3.8:27b
    Input
    https://github.com/MISP/MISP/commit/334d53709.patch 259d46cb7727…
    Confidence
    medium
    Commit Subject Patch SHA-256
    334d53709597 fix: [acl] Authorise the object a collection element points 259d46cb7727…
    Fix summary

    The fix introduces a dedicated __assertCanUseElements() authorization guard that is invoked in the beforeSave callback of the add() CRUD path (covering both form and REST submission) and in addElementToCollection(). For each element UUID, the method resolves the element type (deducing it if the caller omitted the field, preventing bypass by omission) and performs an ACL-aware lookup: for Events it calls fetchSimpleEvent() scoped to the current user, and for GalaxyClusters it calls fetchGalaxyClusters() with the user context. If the object does not exist or the caller lacks access, a NotFoundException is raised and the save is aborted. This ensures that no collection element can reference an object the caller is not authorized to read.

    Patch summary

    In app/Controller/CollectionElementsController.php, a new private method __assertCanUseElements() is added (approximately 45 lines) that iterates over normalized element UUIDs, deduces the element type when not explicitly supplied, and performs an ACL-scoped existence check via Event::fetchSimpleEvent() or GalaxyCluster::fetchGalaxyClusters(). The add() method's beforeSave closure is modified to call this guard before persisting the row. The addElementToCollection() method is refactored to replace its inline Event-only check with a call to the same __assertCanUseElements() helper, gaining GalaxyCluster coverage. Net change: 53 insertions, 12 deletions in one file.

    CVSS rationale

    AV:N: MISP is a network-accessible web application. AC:L: The attacker simply submits a UUID to the existing add endpoint; no race condition or complex bypass is needed. AT:N: No prior compromise or user interaction is required. PR:L: An authenticated MISP user with permission to manage collection elements is required. UI:N: No victim interaction is needed; the disclosure occurs when the attacker views their own collection. VC:L: The attacker gains read access to Events or GalaxyClusters belonging to other organizations or restricted scopes. VI:L: Unauthorized references are persisted in the collection, altering data integrity. VA:N: No availability impact. SC/SI/SA:N: No impact on adjacent systems.

    Weakness rationale
    • CWE-862 The add() method stored collection element UUIDs without performing any authorization check on the referenced object. The fix adds an explicit ACL verification step before persistence, confirming the original code lacked the required authorization control.
    • CWE-639 The attacker-supplied UUID (a user-controlled key) was accepted and stored without verifying that the caller held a valid access grant for that specific object, allowing reference to objects outside the caller's authorized scope.
    Assumptions to verify
    • The affected version range is not explicitly stated in the patch; the tag boundary indicates the fix is 204 commits after v2.5.46, but the exact fixed release version is unconfirmed.
    • PR:L assumes the attacker needs only a basic authenticated MISP account with collection-element management rights; if a higher privilege level is required, PR should be raised.
    • The commit message references 'V17' as a related disclosure scenario; this is treated as internal context and not used to expand the affected scope.
    • The deduceType() fallback path is assumed to be reachable by an attacker omitting the element_type field, which the patch explicitly guards against.
    Model comparison

    Selected qwen3.8:27b by deterministic-consensus-v1
    The selected result is closest to model consensus; this heuristic does not establish factual correctness and human review remains required.

    Model Score Agreement Confidence Assumptions
    qwen3.8:27b 6 9 medium 4
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-91846",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-15T13:41:15.313807Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-15T13:50:14.847Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "modules": [
                "CollectionElementsController"
              ],
              "product": "MISP",
              "programFiles": [
                "app/Controller/CollectionElementsController.php"
              ],
              "repo": "https://github.com/MISP/MISP",
              "vendor": "MISP",
              "versions": [
                {
                  "lessThan": "2.5.46",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "iglocska"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Claude Opus 5 (1M context)"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003e\u003c/p\u003e\u003cp\u003eAffected versions of MISP allow a collection element to be created from a bare UUID without consistently checking whether the acting user is allowed to access the referenced object.\u003c/p\u003e\n\u003cp\u003eThe commit explains that collection elements themselves only store UUIDs, while the collection view later resolves those UUIDs into their underlying objects. Before this fix, the generic \u003ccode\u003eadd()\u003c/code\u003e path could therefore persist a UUID for an Event or Galaxy Cluster that the caller could not normally read. The patch explicitly notes that this made collections a way to reference another organisation\u2019s private data and had caused disclosure of organisation-only events in the beta collection view.\u003c/p\u003e\n\u003cp\u003eThe fix centralizes authorization in \u003ccode\u003e__assertCanUseElements()\u003c/code\u003e. Event UUIDs are validated through \u003ccode\u003eEvent::fetchSimpleEvent()\u003c/code\u003e under the current user\u2019s ACL, while Galaxy Cluster UUIDs are checked through \u003ccode\u003eGalaxyCluster::fetchGalaxyClusters()\u003c/code\u003e. The check is applied both to the CRUD \u003ccode\u003eadd()\u003c/code\u003e path and to \u003ccode\u003eaddElementToCollection()\u003c/code\u003e.\u003c/p\u003e\u003cp\u003eVersion affected: \u22642.5.45\u003cbr\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e"
                }
              ],
              "value": "Affected versions of MISP allow a collection element to be created from a bare UUID without consistently checking whether the acting user is allowed to access the referenced object.\n\n\nThe commit explains that collection elements themselves only store UUIDs, while the collection view later resolves those UUIDs into their underlying objects. Before this fix, the generic add() path could therefore persist a UUID for an Event or Galaxy Cluster that the caller could not normally read. The patch explicitly notes that this made collections a way to reference another organisation\u2019s private data and had caused disclosure of organisation-only events in the beta collection view.\n\n\nThe fix centralizes authorization in __assertCanUseElements(). Event UUIDs are validated through Event::fetchSimpleEvent() under the current user\u2019s ACL, while Galaxy Cluster UUIDs are checked through GalaxyCluster::fetchGalaxyClusters(). The check is applied both to the CRUD add() path and to addElementToCollection().\n\nVersion affected: \u22642.5.45"
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-1",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-1 Accessing Functionality Not Properly Constrained by ACLs"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 7.1,
                "baseSeverity": "HIGH",
                "privilegesRequired": "LOW",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "HIGH",
                "vulnIntegrityImpact": "LOW",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-862",
                  "description": "CWE-862 Missing Authorization",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-639",
                  "description": "CWE-639 Authorization Bypass Through User-Controlled Key",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-15T08:36:22.825Z",
            "orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
            "shortName": "CIRCL"
          },
          "references": [
            {
              "name": "Security patch",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/MISP/MISP/commit/334d53709"
            }
          ],
          "solutions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eThe fix introduces a dedicated __assertCanUseElements() authorization guard that is invoked in the beforeSave callback of the add() CRUD path (covering both form and REST submission) and in addElementToCollection(). For each element UUID, the method resolves the element type (deducing it if the caller omitted the field, preventing bypass by omission) and performs an ACL-aware lookup: for Events it calls fetchSimpleEvent() scoped to the current user, and for GalaxyClusters it calls fetchGalaxyClusters() with the user context. If the object does not exist or the caller lacks access, a NotFoundException is raised and the save is aborted. This ensures that no collection element can reference an object the caller is not authorized to read.\u003c/p\u003e"
                }
              ],
              "value": "The fix introduces a dedicated __assertCanUseElements() authorization guard that is invoked in the beforeSave callback of the add() CRUD path (covering both form and REST submission) and in addElementToCollection(). For each element UUID, the method resolves the element type (deducing it if the caller omitted the field, preventing bypass by omission) and performs an ACL-aware lookup: for Events it calls fetchSimpleEvent() scoped to the current user, and for GalaxyClusters it calls fetchGalaxyClusters() with the user context. If the object does not exist or the caller lacks access, a NotFoundException is raised and the save is aborted. This ensures that no collection element can reference an object the caller is not authorized to read."
            }
          ],
          "title": "MISP Collection Element Add Missing Authorization on Referenced Object UUID",
          "x_gcve": [
            {
              "extensions": {
                "bcp-05-x-01": {
                  "ai_annotations": [
                    {
                      "ai_level": "generated",
                      "description": "Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.",
                      "gna_source": 1,
                      "models": [
                        {
                          "gna_source": 1,
                          "identifier": "qwen3.8:27b",
                          "name": "qwen3.8:27b",
                          "source": "ollama"
                        }
                      ],
                      "review_status": "review",
                      "scope": "record",
                      "tags": [
                        "ai-computer-assisted:llm-generated",
                        "ai-computer-assisted:classification"
                      ]
                    }
                  ]
                },
                "bcp-05-x-02": {
                  "x_patch2vuln": {
                    "assumptions": [
                      "The affected version range is not explicitly stated in the patch; the tag boundary indicates the fix is 204 commits after v2.5.46, but the exact fixed release version is unconfirmed.",
                      "PR:L assumes the attacker needs only a basic authenticated MISP account with collection-element management rights; if a higher privilege level is required, PR should be raised.",
                      "The commit message references \u0027V17\u0027 as a related disclosure scenario; this is treated as internal context and not used to expand the affected scope.",
                      "The deduceType() fallback path is assumed to be reachable by an attacker omitting the element_type field, which the patch explicitly guards against."
                    ],
                    "commit": "334d537095971df4855a4a4d9d9da0d6fd93d0df",
                    "confidence": "medium",
                    "credits": [
                      {
                        "lang": "en",
                        "type": "remediation developer",
                        "value": "iglocska"
                      },
                      {
                        "lang": "en",
                        "type": "remediation developer",
                        "value": "Claude Opus 5 (1M context)"
                      }
                    ],
                    "cvssRationale": "AV:N: MISP is a network-accessible web application. AC:L: The attacker simply submits a UUID to the existing add endpoint; no race condition or complex bypass is needed. AT:N: No prior compromise or user interaction is required. PR:L: An authenticated MISP user with permission to manage collection elements is required. UI:N: No victim interaction is needed; the disclosure occurs when the attacker views their own collection. VC:L: The attacker gains read access to Events or GalaxyClusters belonging to other organizations or restricted scopes. VI:L: Unauthorized references are persisted in the collection, altering data integrity. VA:N: No availability impact. SC/SI/SA:N: No impact on adjacent systems.",
                    "draft": false,
                    "fixSummary": "The fix introduces a dedicated __assertCanUseElements() authorization guard that is invoked in the beforeSave callback of the add() CRUD path (covering both form and REST submission) and in addElementToCollection(). For each element UUID, the method resolves the element type (deducing it if the caller omitted the field, preventing bypass by omission) and performs an ACL-aware lookup: for Events it calls fetchSimpleEvent() scoped to the current user, and for GalaxyClusters it calls fetchGalaxyClusters() with the user context. If the object does not exist or the caller lacks access, a NotFoundException is raised and the save is aborted. This ensures that no collection element can reference an object the caller is not authorized to read.",
                    "generatedAt": "2026-09-15T08:32:37.109406Z",
                    "generator": "patch2vuln.py",
                    "model": "qwen3.8:27b",
                    "modelComparison": {
                      "rankings": [
                        {
                          "agreementScore": 9,
                          "assumptionCount": 4,
                          "confidence": "medium",
                          "model": "qwen3.8:27b",
                          "score": 6
                        }
                      ],
                      "selectedModel": "qwen3.8:27b",
                      "selectionMethod": "deterministic-consensus-v1",
                      "selectionNotice": "The selected result is closest to model consensus; this heuristic does not establish factual correctness and human review remains required."
                    },
                    "patchSha256": "259d46cb772765da8e97cb71e005610ab690f9f92b29e58b0a95aabe71fb0bdf",
                    "patchSummary": "In app/Controller/CollectionElementsController.php, a new private method __assertCanUseElements() is added (approximately 45 lines) that iterates over normalized element UUIDs, deduces the element type when not explicitly supplied, and performs an ACL-scoped existence check via Event::fetchSimpleEvent() or GalaxyCluster::fetchGalaxyClusters(). The add() method\u0027s beforeSave closure is modified to call this guard before persisting the row. The addElementToCollection() method is refactored to replace its inline Event-only check with a call to the same __assertCanUseElements() helper, gaining GalaxyCluster coverage. Net change: 53 insertions, 12 deletions in one file.",
                    "patchTruncated": false,
                    "patches": [
                      {
                        "commit": "334d537095971df4855a4a4d9d9da0d6fd93d0df",
                        "patchSha256": "259d46cb772765da8e97cb71e005610ab690f9f92b29e58b0a95aabe71fb0bdf",
                        "source": "https://github.com/MISP/MISP/commit/334d53709.patch",
                        "sourceUrl": "https://github.com/MISP/MISP/commit/334d53709.patch",
                        "subject": "fix: [acl] Authorise the object a collection element points"
                      }
                    ],
                    "source": "https://github.com/MISP/MISP/commit/334d53709.patch",
                    "subject": "fix: [acl] Authorise the object a collection element points",
                    "tagVersionBoundary": {
                      "commits_after_fix": 204,
                      "repository": "https://github.com/MISP/MISP",
                      "tag": "v2.5.46",
                      "version": "2.5.46",
                      "version_type": "semver"
                    },
                    "weaknessRationale": [
                      {
                        "cweId": "CWE-862",
                        "rationale": "The add() method stored collection element UUIDs without performing any authorization check on the referenced object. The fix adds an explicit ACL verification step before persistence, confirming the original code lacked the required authorization control."
                      },
                      {
                        "cweId": "CWE-639",
                        "rationale": "The attacker-supplied UUID (a user-controlled key) was accepted and stored without verifying that the caller held a valid access grant for that specific object, allowing reference to objects outside the caller\u0027s authorized scope."
                      }
                    ]
                  }
                }
              },
              "recordType": "advisory",
              "vulnId": "GCVE-1-2026-20267"
            }
          ]
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
        "assignerShortName": "CIRCL",
        "cveId": "CVE-2026-91846",
        "datePublished": "2026-09-15T08:36:22.825Z",
        "dateReserved": "2026-09-15T08:36:20.997Z",
        "dateUpdated": "2026-09-15T13:50:14.847Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-91825 (GCVE-0-2026-91825)

    Vulnerability from cvelistv5 – Published: 2026-09-15 08:06 – Updated: 2026-09-15 14:19
    VLAI
    Title
    MISP: Missing Authorization Check for Event Sharing Group When Distribution Field Is Omitted During Edit
    Summary
    Affected versions of MISP fail to authorize a submitted sharing group in a specific event-edit path. The vulnerable logic checked whether the acting user could use a sharing_group_id only when the request explicitly supplied distribution = 4. If the attacker instead omitted distribution but supplied a different sharing_group_id, that authorization branch was skipped. Later, MISP’s field-recovery logic restored the existing event distribution from storage. For events already configured with sharing-group distribution, the unauthorized sharing-group ID could therefore be saved. The fix adds authorization checks in both the controller and Event::_edit() whenever a non-empty sharing_group_id is supplied without distribution. The model now calls SharingGroup::checkIfAuthorised() before persisting the change. Version affected: ≤2.5.45
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-15 13:59 UTC
    CWE
    References
    Impacted products
    Vendor Product Version
    MISP MISP Affected: 0 , < 2.5.46 (semver)
    Create a notification for this product.
    GCVE extensions
    AI involvement GCVE-BCP-05-X-01
    Whole record AI-generated Review: review GNA-1

    Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.

    ai-computer-assisted:llm-generatedai-computer-assisted:classification
    Model Source Identifier
    qwen3.8:27b ollama qwen3.8:27b
    Patch provenance GCVE-BCP-05-X-02
    Generator
    patch2vuln.py on 2026-09-15 07:50
    Model
    qwen3.8:27b
    Input
    https://github.com/MISP/MISP/commit/cf3ee4026.patch 5229e7ba08a4…
    Confidence
    high
    Commit Subject Patch SHA-256
    cf3ee40265ee fix: [security] Authorise the event sharing group when 5229e7ba08a4…
    Fix summary

    The fix adds an explicit authorization check for the sharing_group_id in the code path where the distribution field is omitted from the edit request. In the controller, if no distribution is submitted but a sharing_group_id is present and differs from the stored value, the user's access to that sharing group is verified via checkIfCanBeUsed before the edit proceeds. In the model's _edit method, a parallel check via checkIfAuthorised is added for the same condition, returning an error if the user is not authorized for the submitted sharing group. This closes the gap where omitting the distribution field bypassed the existing authorization gate.

    Patch summary

    Two files are modified with 25 lines of insertions. In EventsController.php (edit method), a new else-if branch is added after the existing distribution-handling logic: when distribution is not set, sharing_group_id is non-empty, and it differs from the stored value, the code calls SharingGroup->checkIfCanBeUsed() and throws MethodNotAllowedException on failure. In Event.php (_edit method), a new elseif branch is added for the case where distribution is not set in the submitted data but sharing_group_id is present; it calls SharingGroup->checkIfAuthorised() and returns an error array if the user lacks access. Both additions are narrowly scoped to the omitted-distribution path and do not alter behavior for explicitly stated non-4 distribution values.

    CVSS rationale

    AV:N: MISP is a network-accessible web application. AC:L: The attack requires only omitting a field from a standard edit request; no race condition or complex manipulation is needed. AT:N: No prior user interaction or attack preparation is required. PR:L: The attacker must be an authenticated user with edit access to at least one event. UI:N: No victim interaction is needed. VC:L: Event data may be exposed to members of the unauthorized sharing group. VI:H: The event's sharing group assignment is modified without authorization, directly compromising data integrity. VA:N: No availability impact. SC/SI/SA: No secondary system impact is evidenced; the impact is confined to the MISP instance's data integrity and the confidentiality of the affected event record.

    Weakness rationale
    • CWE-862 The authorization check for the sharing_group_id was conditionally executed only when the distribution field was explicitly set to 4. By omitting the distribution field, an attacker bypassed the authorization gate entirely, allowing an unauthorized sharing group assignment to be persisted. The check existed but was not applied to all code paths that could result in the sharing group being saved.
    Assumptions to verify
    • The affected version range is inferred from the tag_version_boundary (v2.5.46 with 216 commits after fix); no explicit fixed version tag is provided in the metadata, so the boundary is approximate.
    • The attacker must already possess authenticated edit access to at least one event in MISP; the vulnerability does not grant access to users without any event edit permission.
    • The impact assessment assumes the unauthorized sharing group contains other users who would gain visibility into the event data; if the target group is empty, the confidentiality impact is reduced.
    • The patch was found during internal review per the commit message; no external reporter or finder is identified in the metadata.
    Model comparison

    Selected qwen3.8:27b by deterministic-consensus-v1
    The selected result is closest to model consensus; this heuristic does not establish factual correctness and human review remains required.

    Model Score Agreement Confidence Assumptions
    qwen3.8:27b 7 9 high 4
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-91825",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-15T13:59:42.790533Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-15T14:19:38.987Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "modules": [
                "EventsController (edit action)",
                "Event model (_edit method)"
              ],
              "product": "MISP",
              "programFiles": [
                "app/Controller/EventsController.php",
                "app/Model/Event.php"
              ],
              "repo": "https://github.com/MISP/MISP",
              "vendor": "MISP",
              "versions": [
                {
                  "lessThan": "2.5.46",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "iglocska"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Claude Opus 5 (1M context)"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003e\u003c/p\u003e\u003cp\u003eAffected versions of MISP fail to authorize a submitted sharing group in a specific event-edit path.\u003c/p\u003e\n\u003cp\u003eThe vulnerable logic checked whether the acting user could use a \u003ccode\u003esharing_group_id\u003c/code\u003e only when the request explicitly supplied \u003ccode\u003edistribution = 4\u003c/code\u003e. If the attacker instead omitted \u003ccode\u003edistribution\u003c/code\u003e but supplied a different \u003ccode\u003esharing_group_id\u003c/code\u003e, that authorization branch was skipped. Later, MISP\u2019s field-recovery logic restored the existing event distribution from storage. For events already configured with sharing-group distribution, the unauthorized sharing-group ID could therefore be saved.\u003c/p\u003e\n\u003cp\u003eThe fix adds authorization checks in both the controller and \u003ccode\u003eEvent::_edit()\u003c/code\u003e whenever a non-empty \u003ccode\u003esharing_group_id\u003c/code\u003e is supplied without \u003ccode\u003edistribution\u003c/code\u003e. The model now calls \u003ccode\u003eSharingGroup::checkIfAuthorised()\u003c/code\u003e before persisting the change.\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003eVersion affected: \u22642.5.45\u003cbr\u003e\u003c/p\u003e"
                }
              ],
              "value": "Affected versions of MISP fail to authorize a submitted sharing group in a specific event-edit path.\n\n\nThe vulnerable logic checked whether the acting user could use a sharing_group_id only when the request explicitly supplied distribution = 4. If the attacker instead omitted distribution but supplied a different sharing_group_id, that authorization branch was skipped. Later, MISP\u2019s field-recovery logic restored the existing event distribution from storage. For events already configured with sharing-group distribution, the unauthorized sharing-group ID could therefore be saved.\n\n\nThe fix adds authorization checks in both the controller and Event::_edit() whenever a non-empty sharing_group_id is supplied without distribution. The model now calls SharingGroup::checkIfAuthorised() before persisting the change.\n\n\n\nVersion affected: \u22642.5.45"
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-1",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-1 Accessing Functionality Not Properly Constrained by ACLs"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 7.1,
                "baseSeverity": "HIGH",
                "privilegesRequired": "LOW",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:H/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "LOW",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-862",
                  "description": "CWE-862 Missing Authorization",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-15T08:06:32.511Z",
            "orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
            "shortName": "CIRCL"
          },
          "references": [
            {
              "name": "Security patch",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/MISP/MISP/commit/cf3ee4026"
            }
          ],
          "solutions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eThe fix adds an explicit authorization check for the sharing_group_id in the code path where the distribution field is omitted from the edit request. In the controller, if no distribution is submitted but a sharing_group_id is present and differs from the stored value, the user\u0027s access to that sharing group is verified via checkIfCanBeUsed before the edit proceeds. In the model\u0027s _edit method, a parallel check via checkIfAuthorised is added for the same condition, returning an error if the user is not authorized for the submitted sharing group. This closes the gap where omitting the distribution field bypassed the existing authorization gate.\u003c/p\u003e"
                }
              ],
              "value": "The fix adds an explicit authorization check for the sharing_group_id in the code path where the distribution field is omitted from the edit request. In the controller, if no distribution is submitted but a sharing_group_id is present and differs from the stored value, the user\u0027s access to that sharing group is verified via checkIfCanBeUsed before the edit proceeds. In the model\u0027s _edit method, a parallel check via checkIfAuthorised is added for the same condition, returning an error if the user is not authorized for the submitted sharing group. This closes the gap where omitting the distribution field bypassed the existing authorization gate."
            }
          ],
          "title": "MISP: Missing Authorization Check for Event Sharing Group When Distribution Field Is Omitted During Edit",
          "x_gcve": [
            {
              "extensions": {
                "bcp-05-x-01": {
                  "ai_annotations": [
                    {
                      "ai_level": "generated",
                      "description": "Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.",
                      "gna_source": 1,
                      "models": [
                        {
                          "gna_source": 1,
                          "identifier": "qwen3.8:27b",
                          "name": "qwen3.8:27b",
                          "source": "ollama"
                        }
                      ],
                      "review_status": "review",
                      "scope": "record",
                      "tags": [
                        "ai-computer-assisted:llm-generated",
                        "ai-computer-assisted:classification"
                      ]
                    }
                  ]
                },
                "bcp-05-x-02": {
                  "x_patch2vuln": {
                    "assumptions": [
                      "The affected version range is inferred from the tag_version_boundary (v2.5.46 with 216 commits after fix); no explicit fixed version tag is provided in the metadata, so the boundary is approximate.",
                      "The attacker must already possess authenticated edit access to at least one event in MISP; the vulnerability does not grant access to users without any event edit permission.",
                      "The impact assessment assumes the unauthorized sharing group contains other users who would gain visibility into the event data; if the target group is empty, the confidentiality impact is reduced.",
                      "The patch was found during internal review per the commit message; no external reporter or finder is identified in the metadata."
                    ],
                    "commit": "cf3ee40265ee102f28dae9ec313abe4162aff8e3",
                    "confidence": "high",
                    "credits": [
                      {
                        "lang": "en",
                        "type": "remediation developer",
                        "value": "iglocska"
                      },
                      {
                        "lang": "en",
                        "type": "remediation developer",
                        "value": "Claude Opus 5 (1M context)"
                      }
                    ],
                    "cvssRationale": "AV:N: MISP is a network-accessible web application. AC:L: The attack requires only omitting a field from a standard edit request; no race condition or complex manipulation is needed. AT:N: No prior user interaction or attack preparation is required. PR:L: The attacker must be an authenticated user with edit access to at least one event. UI:N: No victim interaction is needed. VC:L: Event data may be exposed to members of the unauthorized sharing group. VI:H: The event\u0027s sharing group assignment is modified without authorization, directly compromising data integrity. VA:N: No availability impact. SC/SI/SA: No secondary system impact is evidenced; the impact is confined to the MISP instance\u0027s data integrity and the confidentiality of the affected event record.",
                    "draft": false,
                    "fixSummary": "The fix adds an explicit authorization check for the sharing_group_id in the code path where the distribution field is omitted from the edit request. In the controller, if no distribution is submitted but a sharing_group_id is present and differs from the stored value, the user\u0027s access to that sharing group is verified via checkIfCanBeUsed before the edit proceeds. In the model\u0027s _edit method, a parallel check via checkIfAuthorised is added for the same condition, returning an error if the user is not authorized for the submitted sharing group. This closes the gap where omitting the distribution field bypassed the existing authorization gate.",
                    "generatedAt": "2026-09-15T07:50:41.743787Z",
                    "generator": "patch2vuln.py",
                    "model": "qwen3.8:27b",
                    "modelComparison": {
                      "rankings": [
                        {
                          "agreementScore": 9,
                          "assumptionCount": 4,
                          "confidence": "high",
                          "model": "qwen3.8:27b",
                          "score": 7
                        }
                      ],
                      "selectedModel": "qwen3.8:27b",
                      "selectionMethod": "deterministic-consensus-v1",
                      "selectionNotice": "The selected result is closest to model consensus; this heuristic does not establish factual correctness and human review remains required."
                    },
                    "patchSha256": "5229e7ba08a4a77a41d8205ce51428ae17242c7dc7873bc4c087fb828631869e",
                    "patchSummary": "Two files are modified with 25 lines of insertions. In EventsController.php (edit method), a new else-if branch is added after the existing distribution-handling logic: when distribution is not set, sharing_group_id is non-empty, and it differs from the stored value, the code calls SharingGroup-\u003echeckIfCanBeUsed() and throws MethodNotAllowedException on failure. In Event.php (_edit method), a new elseif branch is added for the case where distribution is not set in the submitted data but sharing_group_id is present; it calls SharingGroup-\u003echeckIfAuthorised() and returns an error array if the user lacks access. Both additions are narrowly scoped to the omitted-distribution path and do not alter behavior for explicitly stated non-4 distribution values.",
                    "patchTruncated": false,
                    "patches": [
                      {
                        "commit": "cf3ee40265ee102f28dae9ec313abe4162aff8e3",
                        "patchSha256": "5229e7ba08a4a77a41d8205ce51428ae17242c7dc7873bc4c087fb828631869e",
                        "source": "https://github.com/MISP/MISP/commit/cf3ee4026.patch",
                        "sourceUrl": "https://github.com/MISP/MISP/commit/cf3ee4026.patch",
                        "subject": "fix: [security] Authorise the event sharing group when"
                      }
                    ],
                    "source": "https://github.com/MISP/MISP/commit/cf3ee4026.patch",
                    "subject": "fix: [security] Authorise the event sharing group when",
                    "tagVersionBoundary": {
                      "commits_after_fix": 216,
                      "repository": "https://github.com/MISP/MISP",
                      "tag": "v2.5.46",
                      "version": "2.5.46",
                      "version_type": "semver"
                    },
                    "weaknessRationale": [
                      {
                        "cweId": "CWE-862",
                        "rationale": "The authorization check for the sharing_group_id was conditionally executed only when the distribution field was explicitly set to 4. By omitting the distribution field, an attacker bypassed the authorization gate entirely, allowing an unauthorized sharing group assignment to be persisted. The check existed but was not applied to all code paths that could result in the sharing group being saved."
                      }
                    ]
                  }
                }
              },
              "recordType": "advisory",
              "vulnId": "GCVE-1-2026-20122"
            }
          ]
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
        "assignerShortName": "CIRCL",
        "cveId": "CVE-2026-91825",
        "datePublished": "2026-09-15T08:06:32.511Z",
        "dateReserved": "2026-09-15T08:06:29.530Z",
        "dateUpdated": "2026-09-15T14:19:38.987Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-91819 (GCVE-0-2026-91819)

    Vulnerability from cvelistv5 – Published: 2026-09-15 07:41 – Updated: 2026-09-15 14:37
    VLAI
    Title
    MISP: HTTP Method Override Bypasses CSRF and Form Validation in BetterSecurityComponent
    Summary
    Affected versions of MISP rely on CakePHP request-method override processing in a way that can disable CSRF and form-security validation. CakePHP honors a _method field or X-HTTP-Method-Override header by rewriting the effective request method. For override values outside the normal write verbs POST, PUT, PATCH, and DELETE, CakePHP also clears the parsed request body. MISP’s security component then determines whether to perform _validatePost() and _validateCsrf() based on whether request data remains. With a value such as: _method=GET the body becomes empty before those checks run, so both protections are skipped. A cross-site form containing only that override can therefore reach actions whose parameters are taken from the URL rather than the request body Version affected: ≤2.5.45
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-15 14:33 UTC
    CWE
    • CWE-352 - Cross-Site Request Forgery (CSRF)
    • CWE-20 - Improper Input Validation
    References
    Impacted products
    Vendor Product Version
    MISP MISP Affected: 0 , < 2.5.46 (semver)
    Create a notification for this product.
    GCVE extensions
    AI involvement GCVE-BCP-05-X-01
    Whole record AI-generated Review: review GNA-1

    Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.

    ai-computer-assisted:llm-generatedai-computer-assisted:classification
    Model Source Identifier
    qwen3.8:27b ollama qwen3.8:27b
    Patch provenance GCVE-BCP-05-X-02
    Generator
    patch2vuln.py on 2026-09-15 07:32
    Model
    qwen3.8:27b
    Input
    https://github.com/MISP/MISP/commit/29af008c4.patch 97161c8af547…
    Confidence
    medium
    Commit Subject Patch SHA-256
    29af008c47d2 fix: [security] Refuse HTTP method overrides that empty the 97161c8af547…
    Fix summary

    The fix introduces a __rejectUnsafeMethodOverride() check in BetterSecurityComponent::startup() that executes before the parent SecurityComponent::startup() computes $hasData. It inspects both the _method POST field and the X-HTTP-Method-Override header (mirroring CakePHP's precedence) and rejects any value that is not a string in the allowed set {POST, PUT, PATCH, DELETE}. Non-string values (e.g., array payloads like _method[]=GET) are also refused. A BadRequestException is thrown and the event is logged, preventing the request from ever reaching the parent security logic with an emptied body.

    Patch summary

    Adds a private __rejectUnsafeMethodOverride() method and a public startup() override to BetterSecurityComponent. The new method reads $_POST['_method'] and the HTTP_X_HTTP_METHOD_OVERRIDE header, applies the same header-over-body precedence as CakeRequest::_processPost(), and throws BadRequestException for any override that is not a string in the ALLOWED_METHOD_OVERRIDES constant (POST, PUT, PATCH, DELETE). The startup() override calls this check before delegating to parent::startup(). A new test file BetterSecurityComponentTest.php (196 lines) covers pass-through of write verbs, refusal of non-write verbs, non-string overrides, header overrides, header-over-body precedence, and log output.

    CVSS rationale

    AV:N: The attack is delivered over the network via a crafted HTML form or HTTP header. AC:L: Exploitation requires only crafting a form with a _method field; no race conditions or complex timing are needed. AT:N: No manipulation of the target's data or state is required prior to the attack. PR:L: The victim must be an authenticated MISP user; no administrative privileges are needed. UI:P: The victim passively interacts with the attack (e.g., visiting a page with an auto-submitting form); no deliberate action beyond page load is required. VC:N: No confidentiality impact is evident from the patch evidence. VI:H: The attacker can perform arbitrary state-changing actions (enable/disable feeds, modify objects) on the victim's MISP instance, representing high integrity impact. VA:N: No availability impact is indicated. SC/SI/SA:N: No sub-component impact is evidenced.

    Weakness rationale
    • CWE-352 The primary security impact is the complete bypass of CSRF token validation. An attacker can forge requests to state-changing MISP endpoints without a valid CSRF token by exploiting the method-override body-emptying behaviour.
    • CWE-20 The root cause is the failure to validate the _method override value before it influences the security component's behaviour. Any verb outside the expected write set is accepted by the framework and causes the request body to be discarded, disabling security checks.
    Assumptions to verify
    • The fix is included in MISP v2.5.46 based on the tag_version_boundary metadata (228 commits after the fix commit at that tag); the exact affected version range prior to the fix is not explicitly stated in the patch.
    • PR:L assumes the victim must be an authenticated MISP user; the patch does not explicitly state authentication requirements, but MISP is an authenticated threat-intelligence platform and the example endpoint (/feeds/enable/2) implies an authenticated context.
    • UI:P assumes the typical CSRF delivery mechanism (auto-submitting form on a malicious page) where the victim's interaction is limited to loading the page; if a manual form submission is required, UI:A would be more appropriate.
    • The vulnerability was found during internal review and was not externally reported, per the commit message.
    Model comparison

    Selected qwen3.8:27b by deterministic-consensus-v1
    The selected result is closest to model consensus; this heuristic does not establish factual correctness and human review remains required.

    Model Score Agreement Confidence Assumptions
    qwen3.8:27b 6 9 medium 4
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-91819",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-15T14:33:06.680786Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-15T14:37:05.161Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "modules": [
                "app/Controller/Component/BetterSecurityComponent.php"
              ],
              "product": "MISP",
              "programFiles": [
                "app/Controller/Component/BetterSecurityComponent.php"
              ],
              "repo": "https://github.com/MISP/MISP",
              "vendor": "MISP",
              "versions": [
                {
                  "lessThan": "2.5.46",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "iglocska"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Claude Opus 5 (1M context)"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003e\u003c/p\u003e\u003cp\u003eAffected versions of MISP rely on CakePHP request-method override processing in a way that can disable CSRF and form-security validation.\u003c/p\u003e\u003cp\u003eCakePHP honors a \u003ccode\u003e_method\u003c/code\u003e field or \u003ccode\u003eX-HTTP-Method-Override\u003c/code\u003e header by rewriting the effective request method. For override values outside the normal write verbs \u003ccode\u003ePOST\u003c/code\u003e, \u003ccode\u003ePUT\u003c/code\u003e, \u003ccode\u003ePATCH\u003c/code\u003e, and \u003ccode\u003eDELETE\u003c/code\u003e, CakePHP also clears the parsed request body. MISP\u2019s security component then determines whether to perform \u003ccode\u003e_validatePost()\u003c/code\u003e and \u003ccode\u003e_validateCsrf()\u003c/code\u003e based on whether request data remains. With a value such as:\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003e_method=GET\u003c/code\u003e\u003c/p\u003e\u003cp\u003ethe body becomes empty before those checks run, so both protections are skipped. A cross-site form containing only that override can therefore reach actions whose parameters are taken from the URL rather than the request body\u003c/p\u003e\u003cp\u003eVersion affected: \u22642.5.45\u003cbr\u003e\u003c/p\u003e"
                }
              ],
              "value": "Affected versions of MISP rely on CakePHP request-method override processing in a way that can disable CSRF and form-security validation.\n\nCakePHP honors a _method field or X-HTTP-Method-Override header by rewriting the effective request method. For override values outside the normal write verbs POST, PUT, PATCH, and DELETE, CakePHP also clears the parsed request body. MISP\u2019s security component then determines whether to perform _validatePost() and _validateCsrf() based on whether request data remains. With a value such as:\n\n\n_method=GET\n\nthe body becomes empty before those checks run, so both protections are skipped. A cross-site form containing only that override can therefore reach actions whose parameters are taken from the URL rather than the request body\n\nVersion affected: \u22642.5.45"
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-62",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-62 Cross Site Request Forgery"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 6.9,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "LOW",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "PASSIVE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-352",
                  "description": "CWE-352 Cross-Site Request Forgery (CSRF)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-20",
                  "description": "CWE-20 Improper Input Validation",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-15T07:41:37.131Z",
            "orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
            "shortName": "CIRCL"
          },
          "references": [
            {
              "name": "Security patch",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/MISP/MISP/commit/29af008c4"
            }
          ],
          "solutions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eThe fix introduces a __rejectUnsafeMethodOverride() check in BetterSecurityComponent::startup() that executes before the parent SecurityComponent::startup() computes $hasData. It inspects both the _method POST field and the X-HTTP-Method-Override header (mirroring CakePHP\u0027s precedence) and rejects any value that is not a string in the allowed set {POST, PUT, PATCH, DELETE}. Non-string values (e.g., array payloads like _method[]=GET) are also refused. A BadRequestException is thrown and the event is logged, preventing the request from ever reaching the parent security logic with an emptied body.\u003c/p\u003e"
                }
              ],
              "value": "The fix introduces a __rejectUnsafeMethodOverride() check in BetterSecurityComponent::startup() that executes before the parent SecurityComponent::startup() computes $hasData. It inspects both the _method POST field and the X-HTTP-Method-Override header (mirroring CakePHP\u0027s precedence) and rejects any value that is not a string in the allowed set {POST, PUT, PATCH, DELETE}. Non-string values (e.g., array payloads like _method[]=GET) are also refused. A BadRequestException is thrown and the event is logged, preventing the request from ever reaching the parent security logic with an emptied body."
            }
          ],
          "title": "MISP: HTTP Method Override Bypasses CSRF and Form Validation in BetterSecurityComponent",
          "x_gcve": [
            {
              "extensions": {
                "bcp-05-x-01": {
                  "ai_annotations": [
                    {
                      "ai_level": "generated",
                      "description": "Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.",
                      "gna_source": 1,
                      "models": [
                        {
                          "gna_source": 1,
                          "identifier": "qwen3.8:27b",
                          "name": "qwen3.8:27b",
                          "source": "ollama"
                        }
                      ],
                      "review_status": "review",
                      "scope": "record",
                      "tags": [
                        "ai-computer-assisted:llm-generated",
                        "ai-computer-assisted:classification"
                      ]
                    }
                  ]
                },
                "bcp-05-x-02": {
                  "x_patch2vuln": {
                    "assumptions": [
                      "The fix is included in MISP v2.5.46 based on the tag_version_boundary metadata (228 commits after the fix commit at that tag); the exact affected version range prior to the fix is not explicitly stated in the patch.",
                      "PR:L assumes the victim must be an authenticated MISP user; the patch does not explicitly state authentication requirements, but MISP is an authenticated threat-intelligence platform and the example endpoint (/feeds/enable/2) implies an authenticated context.",
                      "UI:P assumes the typical CSRF delivery mechanism (auto-submitting form on a malicious page) where the victim\u0027s interaction is limited to loading the page; if a manual form submission is required, UI:A would be more appropriate.",
                      "The vulnerability was found during internal review and was not externally reported, per the commit message."
                    ],
                    "commit": "29af008c47d2cc021b6183a0f119b36c8eabfe65",
                    "confidence": "medium",
                    "credits": [
                      {
                        "lang": "en",
                        "type": "remediation developer",
                        "value": "iglocska"
                      },
                      {
                        "lang": "en",
                        "type": "remediation developer",
                        "value": "Claude Opus 5 (1M context)"
                      }
                    ],
                    "cvssRationale": "AV:N: The attack is delivered over the network via a crafted HTML form or HTTP header. AC:L: Exploitation requires only crafting a form with a _method field; no race conditions or complex timing are needed. AT:N: No manipulation of the target\u0027s data or state is required prior to the attack. PR:L: The victim must be an authenticated MISP user; no administrative privileges are needed. UI:P: The victim passively interacts with the attack (e.g., visiting a page with an auto-submitting form); no deliberate action beyond page load is required. VC:N: No confidentiality impact is evident from the patch evidence. VI:H: The attacker can perform arbitrary state-changing actions (enable/disable feeds, modify objects) on the victim\u0027s MISP instance, representing high integrity impact. VA:N: No availability impact is indicated. SC/SI/SA:N: No sub-component impact is evidenced.",
                    "draft": false,
                    "fixSummary": "The fix introduces a __rejectUnsafeMethodOverride() check in BetterSecurityComponent::startup() that executes before the parent SecurityComponent::startup() computes $hasData. It inspects both the _method POST field and the X-HTTP-Method-Override header (mirroring CakePHP\u0027s precedence) and rejects any value that is not a string in the allowed set {POST, PUT, PATCH, DELETE}. Non-string values (e.g., array payloads like _method[]=GET) are also refused. A BadRequestException is thrown and the event is logged, preventing the request from ever reaching the parent security logic with an emptied body.",
                    "generatedAt": "2026-09-15T07:32:05.818714Z",
                    "generator": "patch2vuln.py",
                    "model": "qwen3.8:27b",
                    "modelComparison": {
                      "rankings": [
                        {
                          "agreementScore": 9,
                          "assumptionCount": 4,
                          "confidence": "medium",
                          "model": "qwen3.8:27b",
                          "score": 6
                        }
                      ],
                      "selectedModel": "qwen3.8:27b",
                      "selectionMethod": "deterministic-consensus-v1",
                      "selectionNotice": "The selected result is closest to model consensus; this heuristic does not establish factual correctness and human review remains required."
                    },
                    "patchSha256": "97161c8af5472e6169868d916a2e4834f382a4e1f7c8efda555ea396171b8d3a",
                    "patchSummary": "Adds a private __rejectUnsafeMethodOverride() method and a public startup() override to BetterSecurityComponent. The new method reads $_POST[\u0027_method\u0027] and the HTTP_X_HTTP_METHOD_OVERRIDE header, applies the same header-over-body precedence as CakeRequest::_processPost(), and throws BadRequestException for any override that is not a string in the ALLOWED_METHOD_OVERRIDES constant (POST, PUT, PATCH, DELETE). The startup() override calls this check before delegating to parent::startup(). A new test file BetterSecurityComponentTest.php (196 lines) covers pass-through of write verbs, refusal of non-write verbs, non-string overrides, header overrides, header-over-body precedence, and log output.",
                    "patchTruncated": false,
                    "patches": [
                      {
                        "commit": "29af008c47d2cc021b6183a0f119b36c8eabfe65",
                        "patchSha256": "97161c8af5472e6169868d916a2e4834f382a4e1f7c8efda555ea396171b8d3a",
                        "source": "https://github.com/MISP/MISP/commit/29af008c4.patch",
                        "sourceUrl": "https://github.com/MISP/MISP/commit/29af008c4.patch",
                        "subject": "fix: [security] Refuse HTTP method overrides that empty the"
                      }
                    ],
                    "source": "https://github.com/MISP/MISP/commit/29af008c4.patch",
                    "subject": "fix: [security] Refuse HTTP method overrides that empty the",
                    "tagVersionBoundary": {
                      "commits_after_fix": 228,
                      "repository": "https://github.com/MISP/MISP",
                      "tag": "v2.5.46",
                      "version": "2.5.46",
                      "version_type": "semver"
                    },
                    "weaknessRationale": [
                      {
                        "cweId": "CWE-352",
                        "rationale": "The primary security impact is the complete bypass of CSRF token validation. An attacker can forge requests to state-changing MISP endpoints without a valid CSRF token by exploiting the method-override body-emptying behaviour."
                      },
                      {
                        "cweId": "CWE-20",
                        "rationale": "The root cause is the failure to validate the _method override value before it influences the security component\u0027s behaviour. Any verb outside the expected write set is accepted by the framework and causes the request body to be discarded, disabling security checks."
                      }
                    ]
                  }
                }
              },
              "recordType": "advisory",
              "vulnId": "GCVE-1-2026-20102"
            }
          ]
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
        "assignerShortName": "CIRCL",
        "cveId": "CVE-2026-91819",
        "datePublished": "2026-09-15T07:41:37.131Z",
        "dateReserved": "2026-09-15T07:41:29.630Z",
        "dateUpdated": "2026-09-15T14:37:05.161Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-15600 (GCVE-0-2026-15600)

    Vulnerability from cvelistv5 – Published: 2026-09-14 14:09 – Updated: 2026-09-14 19:23
    VLAI
    Title
    SQL Injection in Alior Bank raty PrestaShop module
    Summary
    Alior Bank PrestaShop module "raty" for commercial partners is vulnerable to SQL Injection in the toggleCategoryPromotionAction method. The module inserts value of the POST parameter "status" into SQL UPDATE queries without any sanitization or validation. An attacker with access to the product or category add/edit functionality in the PrestaShop backoffice can inject arbitrary SQL, potentially allowing unauthorized access to and modification of database contents.
    SSVC
    Exploitation: none Automatable: no Technical Impact: total
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-14 19:13 UTC
    CWE
    • CWE-89 - Improper neutralization of special elements used in an SQL command ('SQL injection')
    References
    Impacted products
    Vendor Product Version
    Alior Bank raty Affected: 8.1.9 , < 8.1.12 (semver)
    Affected: 9.0.5 , < 9.0.8 (semver)
        cpe:2.3:a:alior_bank:raty:*:*:*:*:*:*:*:*
        cpe:2.3:a:alior_bank:raty:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-15600",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "total"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-14T19:13:04.272157Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-14T19:23:00.765Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "raty",
              "vendor": "Alior Bank",
              "versions": [
                {
                  "lessThan": "8.1.12",
                  "status": "affected",
                  "version": "8.1.9",
                  "versionType": "semver"
                },
                {
                  "lessThan": "9.0.8",
                  "status": "affected",
                  "version": "9.0.5",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:alior_bank:raty:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "8.1.12",
                      "versionStartIncluding": "8.1.9",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:a:alior_bank:raty:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "9.0.8",
                      "versionStartIncluding": "9.0.5",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "OR"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "K. Winiarski \u003ckwiniarski93@proton.me\u003e"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "Alior Bank PrestaShop module \"raty\" for commercial partners is vulnerable to SQL Injection in the toggleCategoryPromotionAction\u0026nbsp;method. The module inserts value of the POST parameter \"status\" into SQL UPDATE queries without any sanitization or validation. An attacker with access to the product or category add/edit functionality in the PrestaShop backoffice can inject arbitrary SQL, potentially allowing unauthorized access to and modification of database contents."
                }
              ],
              "value": "Alior Bank PrestaShop module \"raty\" for commercial partners is vulnerable to SQL Injection in the toggleCategoryPromotionAction\u00a0method. The module inserts value of the POST parameter \"status\" into SQL UPDATE queries without any sanitization or validation. An attacker with access to the product or category add/edit functionality in the PrestaShop backoffice can inject arbitrary SQL, potentially allowing unauthorized access to and modification of database contents."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-66",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-66 SQL Injection"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 8.6,
                "baseSeverity": "HIGH",
                "exploitMaturity": "NOT_DEFINED",
                "privilegesRequired": "HIGH",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:L/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "LOW",
                "vulnConfidentialityImpact": "HIGH",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-89",
                  "description": "CWE-89 Improper neutralization of special elements used in an SQL command (\u0027SQL injection\u0027)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-14T14:09:38.820Z",
            "orgId": "4bb8329e-dd38-46c1-aafb-9bf32bcb93c6",
            "shortName": "CERT-PL"
          },
          "references": [
            {
              "tags": [
                "product"
              ],
              "url": "https://www.aliorbank.pl/klienci-indywidualni/kredyty-i-pozyczki/kredyty-ratalne/informacje-dla-partnerow-handlowych.html"
            },
            {
              "tags": [
                "third-party-advisory"
              ],
              "url": "https://cert.pl/posts/2026/09/CVE-2026-7848"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "SQL Injection in Alior Bank raty PrestaShop module",
          "x_generator": {
            "engine": "Vulnogram 1.0.3"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "4bb8329e-dd38-46c1-aafb-9bf32bcb93c6",
        "assignerShortName": "CERT-PL",
        "cveId": "CVE-2026-15600",
        "datePublished": "2026-09-14T14:09:38.820Z",
        "dateReserved": "2026-07-13T14:16:31.529Z",
        "dateUpdated": "2026-09-14T19:23:00.765Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-7848 (GCVE-0-2026-7848)

    Vulnerability from cvelistv5 – Published: 2026-09-14 14:09 – Updated: 2026-09-14 19:23
    VLAI
    Title
    SQL Injection in Alior Bank raty PrestaShop module
    Summary
    Alior Bank PrestaShop module "raty" for commercial partners is vulnerable to SQL Injection in the "hookActionObjectProductUpdateBefore", "hookActionObjectCategoryUpdateBefore", and "hookActionObjectCategoryAddAfter" hook methods. The module inserts values of the POST parameters "alior_product_promotion",  "alior_category_promotion" and "alior_category_enabled" directly into SQL UPDATE queries without any sanitization or validation. An attacker with access to the product or category add/edit functionality in the PrestaShop backoffice can inject arbitrary SQL, potentially allowing unauthorized access to and modification of database contents. This issue was fixed in versions: 9.0.7 and 8.1.11
    SSVC
    Exploitation: none Automatable: no Technical Impact: total
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-14 19:13 UTC
    CWE
    • CWE-89 - Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
    References
    Impacted products
    Vendor Product Version
    Alior Bank raty Affected: 8.0.0 , < 8.1.11 (semver)
    Affected: 9.0.0 , < 9.0.7 (semver)
        cpe:2.3:a:alior_bank:raty:*:*:*:*:*:*:*:*
        cpe:2.3:a:alior_bank:raty:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-7848",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "total"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-14T19:13:18.953048Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-14T19:23:00.914Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "raty",
              "vendor": "Alior Bank",
              "versions": [
                {
                  "lessThan": "8.1.11",
                  "status": "affected",
                  "version": "8.0.0",
                  "versionType": "semver"
                },
                {
                  "lessThan": "9.0.7",
                  "status": "affected",
                  "version": "9.0.0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:alior_bank:raty:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "8.1.11",
                      "versionStartIncluding": "8.0.0",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:a:alior_bank:raty:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "9.0.7",
                      "versionStartIncluding": "9.0.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "OR"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "K. Winiarski \u003ckwiniarski93@proton.me\u003e"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "Alior Bank PrestaShop module \"raty\"\u0026nbsp;for commercial partners is vulnerable to SQL Injection in the \"hookActionObjectProductUpdateBefore\", \"hookActionObjectCategoryUpdateBefore\", and \"hookActionObjectCategoryAddAfter\" hook methods. The module inserts values of the POST parameters \"alior_product_promotion\",\u0026nbsp; \"alior_category_promotion\" and \"alior_category_enabled\"\u0026nbsp;directly into SQL UPDATE queries without any sanitization or validation. An attacker with access to the product or category add/edit functionality in the PrestaShop backoffice can inject arbitrary SQL, potentially allowing unauthorized access to and modification of database contents.\u0026nbsp;\u003cdiv\u003eThis issue was fixed in versions:\u0026nbsp;\u003cspan\u003e9.0.7 and 8.1.11\u003c/span\u003e\u003cspan\u003e\u0026nbsp;\u003c/span\u003e\u003c/div\u003e"
                }
              ],
              "value": "Alior Bank PrestaShop module \"raty\"\u00a0for commercial partners is vulnerable to SQL Injection in the \"hookActionObjectProductUpdateBefore\", \"hookActionObjectCategoryUpdateBefore\", and \"hookActionObjectCategoryAddAfter\" hook methods. The module inserts values of the POST parameters \"alior_product_promotion\",\u00a0 \"alior_category_promotion\" and \"alior_category_enabled\"\u00a0directly into SQL UPDATE queries without any sanitization or validation. An attacker with access to the product or category add/edit functionality in the PrestaShop backoffice can inject arbitrary SQL, potentially allowing unauthorized access to and modification of database contents.\u00a0This issue was fixed in versions:\u00a09.0.7 and 8.1.11"
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-66",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-66 SQL Injection"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 8.6,
                "baseSeverity": "HIGH",
                "exploitMaturity": "NOT_DEFINED",
                "privilegesRequired": "HIGH",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:L/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "LOW",
                "vulnConfidentialityImpact": "HIGH",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-89",
                  "description": "CWE-89 Improper Neutralization of Special Elements used in an SQL Command (\u0027SQL Injection\u0027)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-14T14:09:34.433Z",
            "orgId": "4bb8329e-dd38-46c1-aafb-9bf32bcb93c6",
            "shortName": "CERT-PL"
          },
          "references": [
            {
              "tags": [
                "product"
              ],
              "url": "https://www.aliorbank.pl/klienci-indywidualni/kredyty-i-pozyczki/kredyty-ratalne/informacje-dla-partnerow-handlowych.html"
            },
            {
              "tags": [
                "third-party-advisory"
              ],
              "url": "https://cert.pl/posts/2026/09/CVE-2026-7848"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "SQL Injection in Alior Bank raty PrestaShop module",
          "x_generator": {
            "engine": "Vulnogram 0.2.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "4bb8329e-dd38-46c1-aafb-9bf32bcb93c6",
        "assignerShortName": "CERT-PL",
        "cveId": "CVE-2026-7848",
        "datePublished": "2026-09-14T14:09:34.433Z",
        "dateReserved": "2026-05-05T10:36:59.919Z",
        "dateUpdated": "2026-09-14T19:23:00.914Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-90961 (GCVE-0-2026-90961)

    Vulnerability from cvelistv5 – Published: 2026-09-14 13:22 – Updated: 2026-09-14 13:55
    VLAI
    Title
    MISP LdapAuth and LinOTPAuth Authentication Bypass via Empty or Non-String Credentials
    Summary
    The LdapAuth and LinOTPAuth authentication plugins in MISP contain an authentication bypass vulnerability. Both LdapAuthenticate and LinOTPAuthenticate replace CakePHP's FormAuthenticate class but fail to replicate its _checkFields() input validation guard. As a result, the email and password fields extracted from the login request are passed to downstream authentication logic without verifying that they are non-empty strings. In the LDAP authenticator, an empty or null password is forwarded to ldap_bind(). Per RFC 4513 section 5.1.2, a bind request with a valid DN and an empty password constitutes an unauthenticated bind, which many LDAP directory servers accept as successful. An attacker who knows any valid user email address in the directory can therefore authenticate as that user without possessing a password. Additionally, non-string values (null, false, arrays) are either coerced to empty strings by ldap_bind(), raise TypeErrors, or are misinterpreted as find conditions in _findUser(), all of which can lead to unintended authentication outcomes. In the LinOTP authenticator, the same missing guard allows non-string credentials to be concatenated into the LinOTP verification request, and in the mixed-authentication branch an empty password is accepted against a stored hash of the empty string. A secondary issue in the LDAP authenticator is that newly created user accounts (auto-provisioned on first LDAP login) were assigned an empty password. Because the save path skips validation, the empty string is hashed and stored. If the user later ceases to be found in LDAP and the mixed-authentication fallback is used, the stored hash of the empty string verifies against an empty password, again permitting unauthenticated access. The vulnerability requires that the affected plugin (LdapAuth or LinOTPAuth) is enabled on the MISP instance and that the attacker knows at least one valid email address registered in the directory or MISP user store. No prior authentication is required. Successful exploitation grants the attacker the full privileges of the impersonated user, which may include administrative access to threat intelligence data. Version affected: ≤2.5.45
    SSVC
    Exploitation: none Automatable: no Technical Impact: total
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-14 13:55 UTC
    CWE
    • CWE-287 - Improper Authentication
    • CWE-20 - Improper Input Validation
    References
    Impacted products
    Vendor Product Version
    MISP MISP Affected: 0 , < 2.5.46 (semver)
    Create a notification for this product.
    GCVE extensions
    AI involvement GCVE-BCP-05-X-01
    Whole record AI-generated Review: review GNA-1

    Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.

    ai-computer-assisted:llm-generatedai-computer-assisted:classification
    Model Source Identifier
    qwen3.8:27b ollama qwen3.8:27b
    Patch provenance GCVE-BCP-05-X-02
    Generator
    patch2vuln.py on 2026-09-14 13:14
    Model
    qwen3.8:27b
    Input
    https://github.com/MISP/MISP/commit/0ee058548.patch 01b60b396532…
    Confidence
    high
    Commit Subject Patch SHA-256
    0ee0585486cd fix: [security] Reject empty and non-string credentials in 01b60b396532…
    Fix summary

    The fix adds explicit type and emptiness validation for the email and password fields in both LdapAuthenticate and LinOTPAuthenticate before any authentication logic is invoked. Non-string or empty credentials are rejected with a logged error and a false return. Additionally, the LDAP authenticator now assigns a cryptographically random password to auto-provisioned user accounts instead of an empty string, preventing the stored hash of '' from being verifiable in the mixed-authentication fallback path. The LinOTP authenticator also rejects an empty password specifically in the mixed-authentication branch where the password is checked against the local database.

    Patch summary

    In LdapAuthenticate.php: (1) email and password are now extracted with isset() defaults to empty string; (2) a guard clause checks is_string() and non-emptiness for both fields, logging an error and returning false on failure; (3) the auto-provisioned user creation block now calls $userModel->generateRandomPassword() and stores that value in both 'password' and 'confirm_password' fields instead of empty strings. In LinOTPAuthenticate.php: (1) email, password, and otp are extracted with isset() defaults; (2) a guard clause checks is_string() and non-emptiness for email and is_string() for password, logging and returning false on failure; (3) in the mixed-authentication branch, an additional check rejects an empty password before calling _findUser().

    CVSS rationale

    AV:N: The vulnerability is exploitable over the network via the MISP web login endpoint. AC:L: Exploitation requires only sending a login request with an empty or non-string password field; no race conditions, specific directory configuration beyond accepting unauthenticated binds (which is common), or other special conditions are needed. AT:N: No attack target manipulation is required. PR:N: No prior authentication is needed; the attacker is attempting to authenticate. UI:N: No user interaction is required. VC:H: Successful exploitation grants the attacker the full data-access privileges of the impersonated user, potentially including all MISP threat intelligence data. VI:H: The attacker can create, modify, or delete MISP objects, tags, and configurations at the privilege level of the impersonated user. VA:N: No direct availability impact is demonstrated. SC/SI/SA:N: No separate subsequent system is identified; the impact is contained to the MISP instance itself.

    Weakness rationale
    • CWE-287 The primary impact is an authentication bypass: empty or non-string credentials allow an unauthenticated attacker to be authenticated as a known directory user. The root cause is the absence of the credential validation guard that FormAuthenticate normally provides.
    • CWE-20 The underlying technical weakness is the failure to validate that user-supplied credential fields are non-empty strings before passing them to ldap_bind(), the LinOTP verifier, or _findUser(). Non-string types (null, false, arrays) and empty strings are all accepted and produce unintended authentication behavior.
    Assumptions to verify
    • The LDAP directory server is configured to accept unauthenticated (empty-password) binds, which is common but not universal; if the directory rejects empty-password binds, the LDAP-specific bypass is mitigated at the directory level, though the non-string credential and empty-password-hash issues remain.
    • The attacker must know at least one valid email address that exists in the LDAP directory or MISP user store.
    • The LdapAuth or LinOTPAuth plugin is enabled on the affected MISP instance.
    • CVSS impact ratings assume the attacker can impersonate a user with high privileges (e.g., admin); actual impact scales with the privileges of the specific user impersonated.
    • The exact fixed version is not specified in the patch metadata; the fix commit is 238 commits after tag v2.5.46, suggesting the fix landed in a release after 2.5.46, but the precise version boundary is unconfirmed.
    • The LinOTP empty-password bypass in the mixed-auth branch requires the mixedauth setting to be enabled.
    Model comparison

    Selected qwen3.8:27b by deterministic-consensus-v1
    The selected result is closest to model consensus; this heuristic does not establish factual correctness and human review remains required.

    Model Score Agreement Confidence Assumptions
    qwen3.8:27b 5 9 high 6
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-90961",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "total"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-14T13:55:28.674675Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-14T13:55:49.225Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "modules": [
                "LdapAuth plugin (app/Plugin/LdapAuth/Controller/Component/Auth/LdapAuthenticate.php)",
                "LinOTPAuth plugin (app/Plugin/LinOTPAuth/Controller/Component/Auth/LinOTPAuthenticate.php)"
              ],
              "product": "MISP",
              "programFiles": [
                "app/Plugin/LdapAuth/Controller/Component/Auth/LdapAuthenticate.php",
                "app/Plugin/LinOTPAuth/Controller/Component/Auth/LinOTPAuthenticate.php"
              ],
              "repo": "https://github.com/MISP/MISP",
              "vendor": "MISP",
              "versions": [
                {
                  "lessThan": "2.5.46",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "reporter",
              "value": "elhoim (David Andr\u00e9)"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "iglocska"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Claude Opus 5 (1M context)"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eThe LdapAuth and LinOTPAuth authentication plugins in MISP contain an authentication bypass vulnerability. Both LdapAuthenticate and LinOTPAuthenticate replace CakePHP\u0027s FormAuthenticate class but fail to replicate its _checkFields() input validation guard. As a result, the email and password fields extracted from the login request are passed to downstream authentication logic without verifying that they are non-empty strings.\u003c/p\u003e\u003cp\u003eIn the LDAP authenticator, an empty or null password is forwarded to ldap_bind(). Per RFC 4513 section 5.1.2, a bind request with a valid DN and an empty password constitutes an unauthenticated bind, which many LDAP directory servers accept as successful. An attacker who knows any valid user email address in the directory can therefore authenticate as that user without possessing a password. Additionally, non-string values (null, false, arrays) are either coerced to empty strings by ldap_bind(), raise TypeErrors, or are misinterpreted as find conditions in _findUser(), all of which can lead to unintended authentication outcomes.\u003c/p\u003e\u003cp\u003eIn the LinOTP authenticator, the same missing guard allows non-string credentials to be concatenated into the LinOTP verification request, and in the mixed-authentication branch an empty password is accepted against a stored hash of the empty string.\u003c/p\u003e\u003cp\u003eA secondary issue in the LDAP authenticator is that newly created user accounts (auto-provisioned on first LDAP login) were assigned an empty password. Because the save path skips validation, the empty string is hashed and stored. If the user later ceases to be found in LDAP and the mixed-authentication fallback is used, the stored hash of the empty string verifies against an empty password, again permitting unauthenticated access.\u003c/p\u003e\u003cp\u003eThe vulnerability requires that the affected plugin (LdapAuth or LinOTPAuth) is enabled on the MISP instance and that the attacker knows at least one valid email address registered in the directory or MISP user store. No prior authentication is required. Successful exploitation grants the attacker the full privileges of the impersonated user, which may include administrative access to threat intelligence data.\u003cbr\u003e\u003c/p\u003e\u003cp\u003eVersion affected: \u22642.5.45\u003cbr\u003e\u003c/p\u003e"
                }
              ],
              "value": "The LdapAuth and LinOTPAuth authentication plugins in MISP contain an authentication bypass vulnerability. Both LdapAuthenticate and LinOTPAuthenticate replace CakePHP\u0027s FormAuthenticate class but fail to replicate its _checkFields() input validation guard. As a result, the email and password fields extracted from the login request are passed to downstream authentication logic without verifying that they are non-empty strings.\n\nIn the LDAP authenticator, an empty or null password is forwarded to ldap_bind(). Per RFC 4513 section 5.1.2, a bind request with a valid DN and an empty password constitutes an unauthenticated bind, which many LDAP directory servers accept as successful. An attacker who knows any valid user email address in the directory can therefore authenticate as that user without possessing a password. Additionally, non-string values (null, false, arrays) are either coerced to empty strings by ldap_bind(), raise TypeErrors, or are misinterpreted as find conditions in _findUser(), all of which can lead to unintended authentication outcomes.\n\nIn the LinOTP authenticator, the same missing guard allows non-string credentials to be concatenated into the LinOTP verification request, and in the mixed-authentication branch an empty password is accepted against a stored hash of the empty string.\n\nA secondary issue in the LDAP authenticator is that newly created user accounts (auto-provisioned on first LDAP login) were assigned an empty password. Because the save path skips validation, the empty string is hashed and stored. If the user later ceases to be found in LDAP and the mixed-authentication fallback is used, the stored hash of the empty string verifies against an empty password, again permitting unauthenticated access.\n\nThe vulnerability requires that the affected plugin (LdapAuth or LinOTPAuth) is enabled on the MISP instance and that the attacker knows at least one valid email address registered in the directory or MISP user store. No prior authentication is required. Successful exploitation grants the attacker the full privileges of the impersonated user, which may include administrative access to threat intelligence data.\n\n\nVersion affected: \u22642.5.45"
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-115",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-115 Authentication Bypass"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 9.3,
                "baseSeverity": "CRITICAL",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:L/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "LOW",
                "vulnConfidentialityImpact": "HIGH",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-287",
                  "description": "CWE-287 Improper Authentication",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-20",
                  "description": "CWE-20 Improper Input Validation",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-14T13:22:07.185Z",
            "orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
            "shortName": "CIRCL"
          },
          "references": [
            {
              "name": "Security patch",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/MISP/MISP/commit/0ee058548"
            }
          ],
          "solutions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eThe fix adds explicit type and emptiness validation for the email and password fields in both LdapAuthenticate and LinOTPAuthenticate before any authentication logic is invoked. Non-string or empty credentials are rejected with a logged error and a false return. Additionally, the LDAP authenticator now assigns a cryptographically random password to auto-provisioned user accounts instead of an empty string, preventing the stored hash of \u0027\u0027 from being verifiable in the mixed-authentication fallback path. The LinOTP authenticator also rejects an empty password specifically in the mixed-authentication branch where the password is checked against the local database.\u003c/p\u003e"
                }
              ],
              "value": "The fix adds explicit type and emptiness validation for the email and password fields in both LdapAuthenticate and LinOTPAuthenticate before any authentication logic is invoked. Non-string or empty credentials are rejected with a logged error and a false return. Additionally, the LDAP authenticator now assigns a cryptographically random password to auto-provisioned user accounts instead of an empty string, preventing the stored hash of \u0027\u0027 from being verifiable in the mixed-authentication fallback path. The LinOTP authenticator also rejects an empty password specifically in the mixed-authentication branch where the password is checked against the local database."
            }
          ],
          "title": "MISP LdapAuth and LinOTPAuth Authentication Bypass via Empty or Non-String Credentials",
          "x_gcve": [
            {
              "extensions": {
                "bcp-05-x-01": {
                  "ai_annotations": [
                    {
                      "ai_level": "generated",
                      "description": "Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.",
                      "gna_source": 1,
                      "models": [
                        {
                          "gna_source": 1,
                          "identifier": "qwen3.8:27b",
                          "name": "qwen3.8:27b",
                          "source": "ollama"
                        }
                      ],
                      "review_status": "review",
                      "scope": "record",
                      "tags": [
                        "ai-computer-assisted:llm-generated",
                        "ai-computer-assisted:classification"
                      ]
                    }
                  ]
                },
                "bcp-05-x-02": {
                  "x_patch2vuln": {
                    "assumptions": [
                      "The LDAP directory server is configured to accept unauthenticated (empty-password) binds, which is common but not universal; if the directory rejects empty-password binds, the LDAP-specific bypass is mitigated at the directory level, though the non-string credential and empty-password-hash issues remain.",
                      "The attacker must know at least one valid email address that exists in the LDAP directory or MISP user store.",
                      "The LdapAuth or LinOTPAuth plugin is enabled on the affected MISP instance.",
                      "CVSS impact ratings assume the attacker can impersonate a user with high privileges (e.g., admin); actual impact scales with the privileges of the specific user impersonated.",
                      "The exact fixed version is not specified in the patch metadata; the fix commit is 238 commits after tag v2.5.46, suggesting the fix landed in a release after 2.5.46, but the precise version boundary is unconfirmed.",
                      "The LinOTP empty-password bypass in the mixed-auth branch requires the mixedauth setting to be enabled."
                    ],
                    "commit": "0ee0585486cd2c9df49e4f14d48a32a953666e3a",
                    "confidence": "high",
                    "credits": [
                      {
                        "lang": "en",
                        "type": "reporter",
                        "value": "elhoim (David Andr\u00e9)"
                      },
                      {
                        "lang": "en",
                        "type": "remediation developer",
                        "value": "iglocska"
                      },
                      {
                        "lang": "en",
                        "type": "remediation developer",
                        "value": "Claude Opus 5 (1M context)"
                      }
                    ],
                    "cvssRationale": "AV:N: The vulnerability is exploitable over the network via the MISP web login endpoint. AC:L: Exploitation requires only sending a login request with an empty or non-string password field; no race conditions, specific directory configuration beyond accepting unauthenticated binds (which is common), or other special conditions are needed. AT:N: No attack target manipulation is required. PR:N: No prior authentication is needed; the attacker is attempting to authenticate. UI:N: No user interaction is required. VC:H: Successful exploitation grants the attacker the full data-access privileges of the impersonated user, potentially including all MISP threat intelligence data. VI:H: The attacker can create, modify, or delete MISP objects, tags, and configurations at the privilege level of the impersonated user. VA:N: No direct availability impact is demonstrated. SC/SI/SA:N: No separate subsequent system is identified; the impact is contained to the MISP instance itself.",
                    "draft": false,
                    "fixSummary": "The fix adds explicit type and emptiness validation for the email and password fields in both LdapAuthenticate and LinOTPAuthenticate before any authentication logic is invoked. Non-string or empty credentials are rejected with a logged error and a false return. Additionally, the LDAP authenticator now assigns a cryptographically random password to auto-provisioned user accounts instead of an empty string, preventing the stored hash of \u0027\u0027 from being verifiable in the mixed-authentication fallback path. The LinOTP authenticator also rejects an empty password specifically in the mixed-authentication branch where the password is checked against the local database.",
                    "generatedAt": "2026-09-14T13:14:35.161935Z",
                    "generator": "patch2vuln.py",
                    "model": "qwen3.8:27b",
                    "modelComparison": {
                      "rankings": [
                        {
                          "agreementScore": 9,
                          "assumptionCount": 6,
                          "confidence": "high",
                          "model": "qwen3.8:27b",
                          "score": 5
                        }
                      ],
                      "selectedModel": "qwen3.8:27b",
                      "selectionMethod": "deterministic-consensus-v1",
                      "selectionNotice": "The selected result is closest to model consensus; this heuristic does not establish factual correctness and human review remains required."
                    },
                    "patchSha256": "01b60b396532e5f6ff5efca8c41961e701b7b6c539edcf49ad29aba06a906149",
                    "patchSummary": "In LdapAuthenticate.php: (1) email and password are now extracted with isset() defaults to empty string; (2) a guard clause checks is_string() and non-emptiness for both fields, logging an error and returning false on failure; (3) the auto-provisioned user creation block now calls $userModel-\u003egenerateRandomPassword() and stores that value in both \u0027password\u0027 and \u0027confirm_password\u0027 fields instead of empty strings. In LinOTPAuthenticate.php: (1) email, password, and otp are extracted with isset() defaults; (2) a guard clause checks is_string() and non-emptiness for email and is_string() for password, logging and returning false on failure; (3) in the mixed-authentication branch, an additional check rejects an empty password before calling _findUser().",
                    "patchTruncated": false,
                    "patches": [
                      {
                        "commit": "0ee0585486cd2c9df49e4f14d48a32a953666e3a",
                        "patchSha256": "01b60b396532e5f6ff5efca8c41961e701b7b6c539edcf49ad29aba06a906149",
                        "source": "https://github.com/MISP/MISP/commit/0ee058548.patch",
                        "sourceUrl": "https://github.com/MISP/MISP/commit/0ee058548.patch",
                        "subject": "fix: [security] Reject empty and non-string credentials in"
                      }
                    ],
                    "source": "https://github.com/MISP/MISP/commit/0ee058548.patch",
                    "subject": "fix: [security] Reject empty and non-string credentials in",
                    "tagVersionBoundary": {
                      "commits_after_fix": 238,
                      "repository": "https://github.com/MISP/MISP",
                      "tag": "v2.5.46",
                      "version": "2.5.46",
                      "version_type": "semver"
                    },
                    "weaknessRationale": [
                      {
                        "cweId": "CWE-287",
                        "rationale": "The primary impact is an authentication bypass: empty or non-string credentials allow an unauthenticated attacker to be authenticated as a known directory user. The root cause is the absence of the credential validation guard that FormAuthenticate normally provides."
                      },
                      {
                        "cweId": "CWE-20",
                        "rationale": "The underlying technical weakness is the failure to validate that user-supplied credential fields are non-empty strings before passing them to ldap_bind(), the LinOTP verifier, or _findUser(). Non-string types (null, false, arrays) and empty strings are all accepted and produce unintended authentication behavior."
                      }
                    ]
                  }
                }
              },
              "recordType": "advisory",
              "vulnId": "GCVE-1-2026-20246"
            }
          ]
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
        "assignerShortName": "CIRCL",
        "cveId": "CVE-2026-90961",
        "datePublished": "2026-09-14T13:22:07.185Z",
        "dateReserved": "2026-09-14T13:22:04.165Z",
        "dateUpdated": "2026-09-14T13:55:49.225Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-90957 (GCVE-0-2026-90957)

    Vulnerability from cvelistv5 – Published: 2026-09-14 13:03 – Updated: 2026-09-14 13:58
    VLAI
    Title
    MISP: Stored XSS via Inline-Served SVG Organisation Logos and Report Pictures
    Summary
    Affected versions of MISP serve uploaded SVG images inline without a restrictive browser sandbox. The commit explains that SVG files are XML documents rather than passive bitmap images. While scripts inside SVG do not execute when the SVG is rendered through a normal <img>, they can execute when the SVG is navigated to directly or embedded as a document. In that case, malicious <script> elements, event handlers, or javascript: URLs execute on the MISP origin with the viewer’s session. The affected use cases include:  - organisation SVG logos;  - event-report SVG pictures. Importantly, the vulnerable behavior is on the serve path, not merely the upload path: the patch notes that a malicious SVG uploaded while SVG support was enabled could remain dangerous even after uploads were later disabled. Version affected: ≤2.5.45
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-14 13:58 UTC
    CWE
    • CWE-79 - Improper Neutralization of Input in Web Page ('Cross-site Scripting')
    • CWE-693 - Protection Mechanism Failure
    References
    Impacted products
    Vendor Product Version
    MISP MISP Affected: 0 , < 2.5.46 (semver)
    Create a notification for this product.
    GCVE extensions
    AI involvement GCVE-BCP-05-X-01
    Whole record AI-generated Review: review GNA-1

    Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.

    ai-computer-assisted:llm-generatedai-computer-assisted:classification
    Model Source Identifier
    qwen3.8:27b ollama qwen3.8:27b
    Patch provenance GCVE-BCP-05-X-02
    Generator
    patch2vuln.py on 2026-09-14 12:47
    Model
    qwen3.8:27b
    Input
    https://github.com/MISP/MISP/commit/86496aecc.patch e2053fbcffe3…
    Confidence
    high
    Commit Subject Patch SHA-256
    86496aecc355 fix: [security] Sandbox inline-served SVG images e2053fbcffe3…
    Fix summary

    A new sandboxInlineFile() method is added to RestResponseComponent. When a file is served inline (download=false) and its type is SVG (svg, svgz, or image/svg+xml), the response is augmented with a Content-Security-Policy header containing the sandbox directive (which assigns an opaque origin and disables script execution, plugins, and form submission) along with restrictive default-src, style-src, img-src, and font-src directives that still permit rendering of inline styles, embedded raster images, and data: fonts. An X-Content-Type-Options: nosniff header is also set. The method is invoked from both the generic sendFile() path and the org-logo endpoint. The enable_svg_logos setting description is updated to warn administrators that SVG files remain XML documents and should be left disabled unless required.

    Patch summary

    Adds RestResponseComponent::sandboxInlineFile(CakeResponse, string) which checks the file type against a whitelist of SVG identifiers (svg, svgz, image/svg+xml, case-insensitive) and, on match, sets Content-Security-Policy: default-src 'none'; style-src 'unsafe-inline'; img-src 'self' data:; font-src data:; frame-ancestors 'self'; sandbox and X-Content-Type-Options: nosniff. Calls this method from sendFile() when download is false, and from OrganisationsController::getOrgLogo() after the file response is built. Updates the enable_svg_logos setting description in Server.php to reflect the sandboxing behaviour and advise leaving the setting disabled. Adds a new PHPUnit test file RestResponseSandboxInlineFileTest.php with cases covering SVG extension, MIME type, svgz, case-insensitivity, and confirmation that raster types (png, jpg, jpeg, gif, webp) and null/empty types receive no headers.

    CVSS rationale

    AV:N: The malicious SVG is delivered over HTTP/HTTPS to the victim's browser. AC:L: No race conditions or special network conditions are required; the SVG is already stored and served by the application. AT:N: No specific attack requirements beyond the SVG being present in the MISP instance. PR:L: The attacker needs an authenticated MISP account with permission to upload an organisation logo or attach a report picture. UI:P: The victim must navigate to the SVG URL or have it loaded in an <object>/<iframe> context; it does not execute when rendered via <img>. VC/VI/VA:N: The MISP server itself is not compromised; the impact is on the client-side session. SC:H: The attacker gains full read access to the victim's MISP session (threat intelligence, events, users, settings). SI:H: The attacker can perform write operations (create/modify/delete events, change settings) as the victim. SA:N: No availability impact on the victim's browser or the MISP instance.

    Weakness rationale
    • CWE-79 The core issue is that user-supplied SVG content (an XML document capable of embedding script) is served inline on the application origin without any mechanism to prevent script execution, resulting in stored XSS. The fix neutralises the script-execution capability via a sandboxing CSP.
    • CWE-693 The upload-time restriction (enable_svg_logos) was the only protection, and it was insufficient because (a) it could be toggled off after files were already stored, and (b) it did not address the serve path at all. The serve path lacked its own protection mechanism (sandboxing CSP), which is what the patch adds.
    Assumptions to verify
    • The enable_svg_logos setting must be enabled (or was previously enabled and SVG files were uploaded) for the vulnerability to be exploitable; the default value is false.
    • The attacker requires an authenticated MISP account with sufficient privileges to upload an organisation logo or attach a report picture.
    • The victim must be an authenticated MISP user whose session is active in the browser when the SVG is loaded as a document.
    • The fix is included in MISP v2.5.46 based on the tag boundary metadata (186 commits after the fix commit up to that tag); the exact version in which the vulnerability was introduced is not specified in the patch.
    • CVSS UI:P assumes the primary exploitation path requires the victim to navigate to the SVG URL or have it embedded in an object/iframe; if an attacker can embed the SVG in a page the victim is already viewing without additional interaction, UI:N would apply.
    Model comparison

    Selected qwen3.8:27b by deterministic-consensus-v1
    The selected result is closest to model consensus; this heuristic does not establish factual correctness and human review remains required.

    Model Score Agreement Confidence Assumptions
    qwen3.8:27b 6 9 high 5
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-90957",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-14T13:58:18.267352Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-14T13:58:30.297Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "modules": [
                "RestResponseComponent (sendFile / sandboxInlineFile)",
                "OrganisationsController (getOrgLogo)",
                "Server model (enable_svg_logos setting)"
              ],
              "product": "MISP",
              "programFiles": [
                "app/Controller/Component/RestResponseComponent.php",
                "app/Controller/OrganisationsController.php",
                "app/Model/Server.php"
              ],
              "repo": "https://github.com/MISP/MISP",
              "vendor": "MISP",
              "versions": [
                {
                  "lessThan": "2.5.46",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "reporter",
              "value": "Scottish Government - National Cyber Team"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "iglocska"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Claude Opus 5 (1M context)"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003e\u003c/p\u003e\u003cp\u003eAffected versions of MISP serve uploaded SVG images inline without a restrictive browser sandbox.\u003c/p\u003e\n\u003cp\u003eThe commit explains that SVG files are XML documents rather than passive bitmap images. While scripts inside SVG do not execute when the SVG is rendered through a normal \u003ccode\u003e\u0026lt;img\u0026gt;\u003c/code\u003e, they can execute when the SVG is navigated to directly or embedded as a document. In that case, malicious \u003ccode\u003e\u0026lt;script\u0026gt;\u003c/code\u003e elements, event handlers, or \u003ccode\u003ejavascript:\u003c/code\u003e URLs execute on the MISP origin with the viewer\u2019s session.\u003c/p\u003e\n\u003cp\u003eThe affected use cases include:\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u2003- organisation SVG logos;\u003cbr\u003e\u003cdiv\u003e\u2003-\u0026nbsp;event-report SVG pictures.\u003c/div\u003e\u003cdiv\u003e\u003cbr\u003e\u003c/div\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003eImportantly, the vulnerable behavior is on the \u003cstrong\u003eserve path\u003c/strong\u003e, not merely the upload path: the patch notes that a malicious SVG uploaded while SVG support was enabled could remain dangerous even after uploads were later disabled.\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003eVersion affected: \u22642.5.45\u003cbr\u003e\u003c/p\u003e"
                }
              ],
              "value": "Affected versions of MISP serve uploaded SVG images inline without a restrictive browser sandbox.\n\n\nThe commit explains that SVG files are XML documents rather than passive bitmap images. While scripts inside SVG do not execute when the SVG is rendered through a normal \u003cimg\u003e, they can execute when the SVG is navigated to directly or embedded as a document. In that case, malicious \u003cscript\u003e elements, event handlers, or javascript: URLs execute on the MISP origin with the viewer\u2019s session.\n\n\nThe affected use cases include:\n\n\n\n\u2003- organisation SVG logos;\n\u2003-\u00a0event-report SVG pictures.\n\n\n\n\n\n\nImportantly, the vulnerable behavior is on the serve path, not merely the upload path: the patch notes that a malicious SVG uploaded while SVG support was enabled could remain dangerous even after uploads were later disabled.\n\n\n\nVersion affected: \u22642.5.45"
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-63",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-63 Cross-Site Scripting (XSS)"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 5.1,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "LOW",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "LOW",
                "subIntegrityImpact": "LOW",
                "userInteraction": "PASSIVE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "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",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "LOW",
                "vulnIntegrityImpact": "LOW",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-79",
                  "description": "CWE-79 Improper Neutralization of Input in Web Page (\u0027Cross-site Scripting\u0027)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-693",
                  "description": "CWE-693 Protection Mechanism Failure",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-14T13:03:01.748Z",
            "orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
            "shortName": "CIRCL"
          },
          "references": [
            {
              "name": "Security patch",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/MISP/MISP/commit/86496aecc"
            }
          ],
          "solutions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eA new sandboxInlineFile() method is added to RestResponseComponent. When a file is served inline (download=false) and its type is SVG (svg, svgz, or image/svg+xml), the response is augmented with a Content-Security-Policy header containing the sandbox directive (which assigns an opaque origin and disables script execution, plugins, and form submission) along with restrictive default-src, style-src, img-src, and font-src directives that still permit rendering of inline styles, embedded raster images, and data: fonts. An X-Content-Type-Options: nosniff header is also set. The method is invoked from both the generic sendFile() path and the org-logo endpoint. The enable_svg_logos setting description is updated to warn administrators that SVG files remain XML documents and should be left disabled unless required.\u003c/p\u003e"
                }
              ],
              "value": "A new sandboxInlineFile() method is added to RestResponseComponent. When a file is served inline (download=false) and its type is SVG (svg, svgz, or image/svg+xml), the response is augmented with a Content-Security-Policy header containing the sandbox directive (which assigns an opaque origin and disables script execution, plugins, and form submission) along with restrictive default-src, style-src, img-src, and font-src directives that still permit rendering of inline styles, embedded raster images, and data: fonts. An X-Content-Type-Options: nosniff header is also set. The method is invoked from both the generic sendFile() path and the org-logo endpoint. The enable_svg_logos setting description is updated to warn administrators that SVG files remain XML documents and should be left disabled unless required."
            }
          ],
          "title": "MISP: Stored XSS via Inline-Served SVG Organisation Logos and Report Pictures",
          "x_gcve": [
            {
              "extensions": {
                "bcp-05-x-01": {
                  "ai_annotations": [
                    {
                      "ai_level": "generated",
                      "description": "Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.",
                      "gna_source": 1,
                      "models": [
                        {
                          "gna_source": 1,
                          "identifier": "qwen3.8:27b",
                          "name": "qwen3.8:27b",
                          "source": "ollama"
                        }
                      ],
                      "review_status": "review",
                      "scope": "record",
                      "tags": [
                        "ai-computer-assisted:llm-generated",
                        "ai-computer-assisted:classification"
                      ]
                    }
                  ]
                },
                "bcp-05-x-02": {
                  "x_patch2vuln": {
                    "assumptions": [
                      "The enable_svg_logos setting must be enabled (or was previously enabled and SVG files were uploaded) for the vulnerability to be exploitable; the default value is false.",
                      "The attacker requires an authenticated MISP account with sufficient privileges to upload an organisation logo or attach a report picture.",
                      "The victim must be an authenticated MISP user whose session is active in the browser when the SVG is loaded as a document.",
                      "The fix is included in MISP v2.5.46 based on the tag boundary metadata (186 commits after the fix commit up to that tag); the exact version in which the vulnerability was introduced is not specified in the patch.",
                      "CVSS UI:P assumes the primary exploitation path requires the victim to navigate to the SVG URL or have it embedded in an object/iframe; if an attacker can embed the SVG in a page the victim is already viewing without additional interaction, UI:N would apply."
                    ],
                    "commit": "86496aecc35565c121820b8e60eac9508a516eb3",
                    "confidence": "high",
                    "credits": [
                      {
                        "lang": "en",
                        "type": "reporter",
                        "value": "Scottish Government - National Cyber Team"
                      },
                      {
                        "lang": "en",
                        "type": "remediation developer",
                        "value": "iglocska"
                      },
                      {
                        "lang": "en",
                        "type": "remediation developer",
                        "value": "Claude Opus 5 (1M context)"
                      }
                    ],
                    "cvssRationale": "AV:N: The malicious SVG is delivered over HTTP/HTTPS to the victim\u0027s browser. AC:L: No race conditions or special network conditions are required; the SVG is already stored and served by the application. AT:N: No specific attack requirements beyond the SVG being present in the MISP instance. PR:L: The attacker needs an authenticated MISP account with permission to upload an organisation logo or attach a report picture. UI:P: The victim must navigate to the SVG URL or have it loaded in an \u003cobject\u003e/\u003ciframe\u003e context; it does not execute when rendered via \u003cimg\u003e. VC/VI/VA:N: The MISP server itself is not compromised; the impact is on the client-side session. SC:H: The attacker gains full read access to the victim\u0027s MISP session (threat intelligence, events, users, settings). SI:H: The attacker can perform write operations (create/modify/delete events, change settings) as the victim. SA:N: No availability impact on the victim\u0027s browser or the MISP instance.",
                    "draft": false,
                    "fixSummary": "A new sandboxInlineFile() method is added to RestResponseComponent. When a file is served inline (download=false) and its type is SVG (svg, svgz, or image/svg+xml), the response is augmented with a Content-Security-Policy header containing the sandbox directive (which assigns an opaque origin and disables script execution, plugins, and form submission) along with restrictive default-src, style-src, img-src, and font-src directives that still permit rendering of inline styles, embedded raster images, and data: fonts. An X-Content-Type-Options: nosniff header is also set. The method is invoked from both the generic sendFile() path and the org-logo endpoint. The enable_svg_logos setting description is updated to warn administrators that SVG files remain XML documents and should be left disabled unless required.",
                    "generatedAt": "2026-09-14T12:47:25.185745Z",
                    "generator": "patch2vuln.py",
                    "model": "qwen3.8:27b",
                    "modelComparison": {
                      "rankings": [
                        {
                          "agreementScore": 9,
                          "assumptionCount": 5,
                          "confidence": "high",
                          "model": "qwen3.8:27b",
                          "score": 6
                        }
                      ],
                      "selectedModel": "qwen3.8:27b",
                      "selectionMethod": "deterministic-consensus-v1",
                      "selectionNotice": "The selected result is closest to model consensus; this heuristic does not establish factual correctness and human review remains required."
                    },
                    "patchSha256": "e2053fbcffe3476b10ba07239b8772c7760ad987e4574c0bff75f68f8cc05c98",
                    "patchSummary": "Adds RestResponseComponent::sandboxInlineFile(CakeResponse, string) which checks the file type against a whitelist of SVG identifiers (svg, svgz, image/svg+xml, case-insensitive) and, on match, sets Content-Security-Policy: default-src \u0027none\u0027; style-src \u0027unsafe-inline\u0027; img-src \u0027self\u0027 data:; font-src data:; frame-ancestors \u0027self\u0027; sandbox and X-Content-Type-Options: nosniff. Calls this method from sendFile() when download is false, and from OrganisationsController::getOrgLogo() after the file response is built. Updates the enable_svg_logos setting description in Server.php to reflect the sandboxing behaviour and advise leaving the setting disabled. Adds a new PHPUnit test file RestResponseSandboxInlineFileTest.php with cases covering SVG extension, MIME type, svgz, case-insensitivity, and confirmation that raster types (png, jpg, jpeg, gif, webp) and null/empty types receive no headers.",
                    "patchTruncated": false,
                    "patches": [
                      {
                        "commit": "86496aecc35565c121820b8e60eac9508a516eb3",
                        "patchSha256": "e2053fbcffe3476b10ba07239b8772c7760ad987e4574c0bff75f68f8cc05c98",
                        "source": "https://github.com/MISP/MISP/commit/86496aecc.patch",
                        "sourceUrl": "https://github.com/MISP/MISP/commit/86496aecc.patch",
                        "subject": "fix: [security] Sandbox inline-served SVG images"
                      }
                    ],
                    "source": "https://github.com/MISP/MISP/commit/86496aecc.patch",
                    "subject": "fix: [security] Sandbox inline-served SVG images",
                    "tagVersionBoundary": {
                      "commits_after_fix": 186,
                      "repository": "https://github.com/MISP/MISP",
                      "tag": "v2.5.46",
                      "version": "2.5.46",
                      "version_type": "semver"
                    },
                    "weaknessRationale": [
                      {
                        "cweId": "CWE-79",
                        "rationale": "The core issue is that user-supplied SVG content (an XML document capable of embedding script) is served inline on the application origin without any mechanism to prevent script execution, resulting in stored XSS. The fix neutralises the script-execution capability via a sandboxing CSP."
                      },
                      {
                        "cweId": "CWE-693",
                        "rationale": "The upload-time restriction (enable_svg_logos) was the only protection, and it was insufficient because (a) it could be toggled off after files were already stored, and (b) it did not address the serve path at all. The serve path lacked its own protection mechanism (sandboxing CSP), which is what the patch adds."
                      }
                    ]
                  }
                }
              },
              "recordType": "advisory",
              "vulnId": "GCVE-1-2026-20098"
            }
          ]
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
        "assignerShortName": "CIRCL",
        "cveId": "CVE-2026-90957",
        "datePublished": "2026-09-14T13:03:01.748Z",
        "dateReserved": "2026-09-14T13:02:53.577Z",
        "dateUpdated": "2026-09-14T13:58:30.297Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-90955 (GCVE-0-2026-90955)

    Vulnerability from cvelistv5 – Published: 2026-09-14 12:37 – Updated: 2026-09-14 13:00
    VLAI
    Title
    MISP CLI Shell Audit Logs Lose User Identity and CLI Marker After First Lazy Model Load
    Summary
    Affected versions of MISP’s interactive CLI shell do not reliably preserve the identity of the impersonated MISP user across audit logging. The shell is designed to run actions as a supplied MISP user ID. However, the legacy SysLogLogable behavior stored that identity in behavior-instance state that could be overwritten when another model lazily attached the shared behavior. Consequently, subsequent CLI writes could lose the intended user attribution and be logged incorrectly. The commit also notes that CLI-originated records lacked a CLI marker, making them appear similar to ordinary web actions by that user. Version affected: ≤2.5.45
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-14 12:55 UTC
    CWE
    • CWE-778 - Insufficient Logging
    • CWE-223 - Omission of Security-relevant Information in Log Data
    References
    Impacted products
    Vendor Product Version
    MISP MISP Affected: 0 , < 2.5.46 (semver)
    Create a notification for this product.
    GCVE extensions
    AI involvement GCVE-BCP-05-X-01
    Whole record AI-generated Review: review GNA-1

    Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.

    ai-computer-assisted:llm-generatedai-computer-assisted:classification
    Model Source Identifier
    qwen3.8:27b ollama qwen3.8:27b
    Patch provenance GCVE-BCP-05-X-02
    Generator
    patch2vuln.py on 2026-09-14 12:23
    Model
    qwen3.8:27b
    Input
    https://github.com/MISP/MISP/commit/d13e5db33.patch 8ea0cae590f0…
    Confidence
    medium
    Commit Subject Patch SHA-256
    d13e5db33faa fix: [cli] Attribute interactive CLI shell writes stably and 8ea0cae590f0…
    Fix summary

    The fix introduces a process-wide static identity (setShellUser) on SysLogLogableBehavior that is resolved at write time rather than at setup time, so it survives lazy model loads that re-run setup() on the singleton. The behavior appends 'via CLI' to the log description for shell-originated rows, mirroring the request_type = CLI marker in the new audit engine. The CLI shell now publishes the impersonated user through both Configure::write('CurrentUserId') and SysLogLogableBehavior::setShellUser() before any write. Explicit extralog calls were added for CLI user edit, disable, and delete operations so the default audit engine records them the same way the web path does. Background jobs that publish no user continue to log as SYSTEM without a CLI marker.

    Patch summary

    In cli_common.php, __setUserContext() was replaced: instead of iterating loaded models and setting the user on each SysLogLogable behavior instance, it now calls Configure::write('CurrentUserId', $user['id']) and SysLogLogableBehavior::setShellUser($user). In SysLogLogableBehavior.php, a private static $shellUser property and setShellUser() static method were added; _saveLog() now resolves the actor via shellActor() at write time when CAKEPHP_SHELL is defined, and appends ' via CLI' to the description. setup() was refactored to use the same shellActor() helper. In cli_users.php, __logUserEdit() was added to write an extralog row for user edits and disables, and __deleteUser() now calls extralog for permanent deletions. A new test file SysLogLogableShellIdentityTest.php (395 lines) covers identity persistence across lazy model attaches, CLI marker presence/absence, SYSTEM fallback, and web-request isolation. CLI_usage.md documents the audit-trail behavior.

    CVSS rationale

    Attack vector is Local because the CLI shell requires direct access to the MISP host and the ability to run the cake console command. Attack complexity is Low because no race condition or special timing is needed; the identity loss occurs deterministically on the first lazy model load. No attack target is required. Privileges Required is High because running the CLI shell requires reading app/Config/database.php and passing a user ID, which the project documentation equates to site-admin-equivalent access. No user interaction is needed. There is no direct confidentiality, integrity, or availability impact on the MISP application itself. The secondary integrity impact is Low: the audit log data is inaccurate (wrong user attribution, missing CLI marker, missing user-management entries), which degrades forensic and compliance capability but does not corrupt application data. No secondary availability impact.

    Weakness rationale
    • CWE-778 The CLI shell's audit rows lost the impersonated user identity after the first lazy model load (reset to SYSTEM), and user-management operations (edit, disable, delete) performed via CLI produced no audit row at all in the default engine. Both are failures to record security-relevant events with sufficient detail.
    • CWE-223 Audit rows written by the CLI shell carried no marker distinguishing them from web-originated actions. In the default engine the description lacked 'via CLI'; in the new engine request_type was not set to CLI. This omission prevents an investigator from determining the true origin of an action.
    Assumptions to verify
    • The tag_version_boundary indicates the fix commit is 183 commits after tag v2.5.46, suggesting the fix landed in a version after 2.5.46; however, no explicit fixed version tag is provided, so the exact boundary is uncertain.
    • The affected version range is assumed to be all versions prior to the fix commit; the patch does not specify a minimum affected version.
    • CVSS PR:H assumes that CLI shell access is equivalent to site-admin-equivalent access, consistent with the project's own CLI_usage.md documentation stating that running cake requires reading database.php and that the shell should not be exposed to anyone who must not have site-admin-equivalent access.
    • The SI:L rating assumes the audit-log inaccuracy is a secondary integrity impact on the logging subsystem rather than a primary integrity impact on the MISP application data.
    • The patch does not include a CVE or GCVE identifier; this analysis is a draft for CNA/GNA review.
    Model comparison

    Selected qwen3.8:27b by deterministic-consensus-v1
    The selected result is closest to model consensus; this heuristic does not establish factual correctness and human review remains required.

    Model Score Agreement Confidence Assumptions
    qwen3.8:27b 5 9 medium 5
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-90955",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-14T12:55:46.663079Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-14T13:00:29.069Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "modules": [
                "CLIShell (app/Console/Command/CLIShell)",
                "SysLogLogableBehavior (app/Plugin/SysLogLogable/Model/Behavior)"
              ],
              "product": "MISP",
              "programFiles": [
                "app/Console/Command/CLIShell.php",
                "app/Console/Command/CLIShell/cli_common.php",
                "app/Console/Command/CLIShell/cli_users.php",
                "app/Plugin/SysLogLogable/Model/Behavior/SysLogLogableBehavior.php"
              ],
              "repo": "https://github.com/MISP/MISP",
              "vendor": "MISP",
              "versions": [
                {
                  "lessThan": "2.5.46",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "reporter",
              "value": "Scottish Government - National Cyber Team"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "iglocska"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Claude Fable 5.1"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003e\u003c/p\u003e\u003cp\u003eAffected versions of MISP\u2019s interactive CLI shell do not reliably preserve the identity of the impersonated MISP user across audit logging.\u003c/p\u003e\n\u003cp\u003eThe shell is designed to run actions as a supplied MISP user ID. However, the legacy \u003ccode\u003eSysLogLogable\u003c/code\u003e behavior stored that identity in behavior-instance state that could be overwritten when another model lazily attached the shared behavior. Consequently, subsequent CLI writes could lose the intended user attribution and be logged incorrectly. The commit also notes that CLI-originated records lacked a CLI marker, making them appear similar to ordinary web actions by that user.\u003c/p\u003e\u003cp\u003e\u003c/p\u003e\u003cp\u003eVersion affected: \u22642.5.45\u003cbr\u003e\u003c/p\u003e"
                }
              ],
              "value": "Affected versions of MISP\u2019s interactive CLI shell do not reliably preserve the identity of the impersonated MISP user across audit logging.\n\n\nThe shell is designed to run actions as a supplied MISP user ID. However, the legacy SysLogLogable behavior stored that identity in behavior-instance state that could be overwritten when another model lazily attached the shared behavior. Consequently, subsequent CLI writes could lose the intended user attribution and be logged incorrectly. The commit also notes that CLI-originated records lacked a CLI marker, making them appear similar to ordinary web actions by that user.\n\n\n\nVersion affected: \u22642.5.45"
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "LOCAL",
                "baseScore": 4.6,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "HIGH",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:L/AC:L/AT:N/PR:H/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "LOW",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-778",
                  "description": "CWE-778 Insufficient Logging",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-223",
                  "description": "CWE-223 Omission of Security-relevant Information in Log Data",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-14T12:37:54.001Z",
            "orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
            "shortName": "CIRCL"
          },
          "references": [
            {
              "name": "Security patch",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/MISP/MISP/commit/d13e5db33"
            }
          ],
          "solutions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eThe fix introduces a process-wide static identity (setShellUser) on SysLogLogableBehavior that is resolved at write time rather than at setup time, so it survives lazy model loads that re-run setup() on the singleton. The behavior appends \u0027via CLI\u0027 to the log description for shell-originated rows, mirroring the request_type = CLI marker in the new audit engine. The CLI shell now publishes the impersonated user through both Configure::write(\u0027CurrentUserId\u0027) and SysLogLogableBehavior::setShellUser() before any write. Explicit extralog calls were added for CLI user edit, disable, and delete operations so the default audit engine records them the same way the web path does. Background jobs that publish no user continue to log as SYSTEM without a CLI marker.\u003c/p\u003e"
                }
              ],
              "value": "The fix introduces a process-wide static identity (setShellUser) on SysLogLogableBehavior that is resolved at write time rather than at setup time, so it survives lazy model loads that re-run setup() on the singleton. The behavior appends \u0027via CLI\u0027 to the log description for shell-originated rows, mirroring the request_type = CLI marker in the new audit engine. The CLI shell now publishes the impersonated user through both Configure::write(\u0027CurrentUserId\u0027) and SysLogLogableBehavior::setShellUser() before any write. Explicit extralog calls were added for CLI user edit, disable, and delete operations so the default audit engine records them the same way the web path does. Background jobs that publish no user continue to log as SYSTEM without a CLI marker."
            }
          ],
          "title": "MISP CLI Shell Audit Logs Lose User Identity and CLI Marker After First Lazy Model Load",
          "x_gcve": [
            {
              "extensions": {
                "bcp-05-x-01": {
                  "ai_annotations": [
                    {
                      "ai_level": "generated",
                      "description": "Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.",
                      "gna_source": 1,
                      "models": [
                        {
                          "gna_source": 1,
                          "identifier": "qwen3.8:27b",
                          "name": "qwen3.8:27b",
                          "source": "ollama"
                        }
                      ],
                      "review_status": "review",
                      "scope": "record",
                      "tags": [
                        "ai-computer-assisted:llm-generated",
                        "ai-computer-assisted:classification"
                      ]
                    }
                  ]
                },
                "bcp-05-x-02": {
                  "x_patch2vuln": {
                    "assumptions": [
                      "The tag_version_boundary indicates the fix commit is 183 commits after tag v2.5.46, suggesting the fix landed in a version after 2.5.46; however, no explicit fixed version tag is provided, so the exact boundary is uncertain.",
                      "The affected version range is assumed to be all versions prior to the fix commit; the patch does not specify a minimum affected version.",
                      "CVSS PR:H assumes that CLI shell access is equivalent to site-admin-equivalent access, consistent with the project\u0027s own CLI_usage.md documentation stating that running cake requires reading database.php and that the shell should not be exposed to anyone who must not have site-admin-equivalent access.",
                      "The SI:L rating assumes the audit-log inaccuracy is a secondary integrity impact on the logging subsystem rather than a primary integrity impact on the MISP application data.",
                      "The patch does not include a CVE or GCVE identifier; this analysis is a draft for CNA/GNA review."
                    ],
                    "commit": "d13e5db33faa8eb27c945d6561badc24f00b2cda",
                    "confidence": "medium",
                    "credits": [
                      {
                        "lang": "en",
                        "type": "reporter",
                        "value": "Scottish Government - National Cyber Team"
                      },
                      {
                        "lang": "en",
                        "type": "remediation developer",
                        "value": "iglocska"
                      },
                      {
                        "lang": "en",
                        "type": "remediation developer",
                        "value": "Claude Fable 5.1"
                      }
                    ],
                    "cvssRationale": "Attack vector is Local because the CLI shell requires direct access to the MISP host and the ability to run the cake console command. Attack complexity is Low because no race condition or special timing is needed; the identity loss occurs deterministically on the first lazy model load. No attack target is required. Privileges Required is High because running the CLI shell requires reading app/Config/database.php and passing a user ID, which the project documentation equates to site-admin-equivalent access. No user interaction is needed. There is no direct confidentiality, integrity, or availability impact on the MISP application itself. The secondary integrity impact is Low: the audit log data is inaccurate (wrong user attribution, missing CLI marker, missing user-management entries), which degrades forensic and compliance capability but does not corrupt application data. No secondary availability impact.",
                    "draft": false,
                    "fixSummary": "The fix introduces a process-wide static identity (setShellUser) on SysLogLogableBehavior that is resolved at write time rather than at setup time, so it survives lazy model loads that re-run setup() on the singleton. The behavior appends \u0027via CLI\u0027 to the log description for shell-originated rows, mirroring the request_type = CLI marker in the new audit engine. The CLI shell now publishes the impersonated user through both Configure::write(\u0027CurrentUserId\u0027) and SysLogLogableBehavior::setShellUser() before any write. Explicit extralog calls were added for CLI user edit, disable, and delete operations so the default audit engine records them the same way the web path does. Background jobs that publish no user continue to log as SYSTEM without a CLI marker.",
                    "generatedAt": "2026-09-14T12:23:30.990762Z",
                    "generator": "patch2vuln.py",
                    "model": "qwen3.8:27b",
                    "modelComparison": {
                      "rankings": [
                        {
                          "agreementScore": 9,
                          "assumptionCount": 5,
                          "confidence": "medium",
                          "model": "qwen3.8:27b",
                          "score": 5
                        }
                      ],
                      "selectedModel": "qwen3.8:27b",
                      "selectionMethod": "deterministic-consensus-v1",
                      "selectionNotice": "The selected result is closest to model consensus; this heuristic does not establish factual correctness and human review remains required."
                    },
                    "patchSha256": "8ea0cae590f0d9a3a2fa579b800f69fb5f5f8c9083de74df05945869dd3e91bf",
                    "patchSummary": "In cli_common.php, __setUserContext() was replaced: instead of iterating loaded models and setting the user on each SysLogLogable behavior instance, it now calls Configure::write(\u0027CurrentUserId\u0027, $user[\u0027id\u0027]) and SysLogLogableBehavior::setShellUser($user). In SysLogLogableBehavior.php, a private static $shellUser property and setShellUser() static method were added; _saveLog() now resolves the actor via shellActor() at write time when CAKEPHP_SHELL is defined, and appends \u0027 via CLI\u0027 to the description. setup() was refactored to use the same shellActor() helper. In cli_users.php, __logUserEdit() was added to write an extralog row for user edits and disables, and __deleteUser() now calls extralog for permanent deletions. A new test file SysLogLogableShellIdentityTest.php (395 lines) covers identity persistence across lazy model attaches, CLI marker presence/absence, SYSTEM fallback, and web-request isolation. CLI_usage.md documents the audit-trail behavior.",
                    "patchTruncated": false,
                    "patches": [
                      {
                        "commit": "d13e5db33faa8eb27c945d6561badc24f00b2cda",
                        "patchSha256": "8ea0cae590f0d9a3a2fa579b800f69fb5f5f8c9083de74df05945869dd3e91bf",
                        "source": "https://github.com/MISP/MISP/commit/d13e5db33.patch",
                        "sourceUrl": "https://github.com/MISP/MISP/commit/d13e5db33.patch",
                        "subject": "fix: [cli] Attribute interactive CLI shell writes stably and"
                      }
                    ],
                    "source": "https://github.com/MISP/MISP/commit/d13e5db33.patch",
                    "subject": "fix: [cli] Attribute interactive CLI shell writes stably and",
                    "tagVersionBoundary": {
                      "commits_after_fix": 183,
                      "repository": "https://github.com/MISP/MISP",
                      "tag": "v2.5.46",
                      "version": "2.5.46",
                      "version_type": "semver"
                    },
                    "weaknessRationale": [
                      {
                        "cweId": "CWE-778",
                        "rationale": "The CLI shell\u0027s audit rows lost the impersonated user identity after the first lazy model load (reset to SYSTEM), and user-management operations (edit, disable, delete) performed via CLI produced no audit row at all in the default engine. Both are failures to record security-relevant events with sufficient detail."
                      },
                      {
                        "cweId": "CWE-223",
                        "rationale": "Audit rows written by the CLI shell carried no marker distinguishing them from web-originated actions. In the default engine the description lacked \u0027via CLI\u0027; in the new engine request_type was not set to CLI. This omission prevents an investigator from determining the true origin of an action."
                      }
                    ]
                  }
                }
              },
              "recordType": "advisory",
              "vulnId": "GCVE-1-2026-20197"
            }
          ]
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
        "assignerShortName": "CIRCL",
        "cveId": "CVE-2026-90955",
        "datePublished": "2026-09-14T12:37:54.001Z",
        "dateReserved": "2026-09-14T12:37:52.348Z",
        "dateUpdated": "2026-09-14T13:00:29.069Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-90895 (GCVE-0-2026-90895)

    Vulnerability from cvelistv5 – Published: 2026-09-14 09:40 – Updated: 2026-09-14 10:26
    VLAI
    Title
    MISP Interactive CLI Shell: Authorization Bypass, Credential Exposure, and Terminal Injection
    Summary
    Affected versions of MISP’s interactive CLI shell implement access control independently from the normal web application, causing several authorization inconsistencies. The patch shows that CLI access could differ from the web application in multiple security-sensitive areas:  - feed listings did not enforce the same lookup_visible restrictions for non-host-organisation users;  - feed detail access did not enforce the same host-organisation/site-admin authorization as FeedsController::view();  - Feed.headers, which can contain HTTP authorization credentials, could be exposed instead of being hidden or masked;  - server synchronization authkey values were not explicitly hidden from CLI detail output;  - sharing-group detail access did not consistently use SharingGroup::checkIfAuthorised();  - the use command could establish context for a record without first proving that the user was authorized to view that record The commit additionally hardens pagination and terminal rendering, including neutralization of terminal control sequences found in database-backed values. Those are important hardening changes, but the main vulnerability is the CLI authorization/data-disclosure mismatch. Version affected: ≤2.5.45
    SSVC
    Exploitation: none Automatable: no Technical Impact: total
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-14 10:24 UTC
    CWE
    • CWE-862 - Missing Authorization
    • CWE-200 - Exposure of Sensitive Information to an Unauthorized Actor
    • CWE-150 - Improper Neutralization of Escape, Quote, or Control Sequences
    • CWE-522 - Insufficiently Protected Credentials
    References
    Impacted products
    Vendor Product Version
    MISP MISP Affected: 0 , < 2.5.46 (semver)
    Create a notification for this product.
    GCVE extensions
    AI involvement GCVE-BCP-05-X-01
    Whole record AI-generated Review: review GNA-1

    Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.

    ai-computer-assisted:llm-generatedai-computer-assisted:classification
    Model Source Identifier
    qwen3.8:27b ollama qwen3.8:27b
    Patch provenance GCVE-BCP-05-X-02
    Generator
    patch2vuln.py on 2026-09-14 09:16
    Model
    qwen3.8:27b
    Input
    https://github.com/MISP/MISP/commit/cd9f548ed.patch 1993ed3ac039…
    Confidence
    high
    Commit Subject Patch SHA-256
    cd9f548ed808 fix: [cli] Route interactive CLI shell authorization through 1993ed3ac039…
    Fix summary

    The fix replaces the shell's hand-rolled authorization logic with the same model-level accessors used by the web interface (Event::fetchSimpleEvent, MispAttribute::fetchAttributes, MispObject::fetchObjects, SharingGroup::checkIfAuthorised, Organisation::canSee), ensuring read and write operations enforce identical ACL rules. Credential columns are excluded at the query level via a hiddenFields mechanism so they are never fetched from the database. The inline detail editor now delegates to the entity-specific edit handlers, which enforce per-record write authorization. All terminal output passes through a sanitiser that neutralises C0/C1 control characters, ANSI escape sequences, and Unicode bidirectional overrides. Pagination is clamped to a safe range (1-1000) to prevent unbounded result sets.

    Patch summary

    Replaced hand-rolled ACL conditions in attribute, object, feed, sharing-group, and organisation queries with calls to the model's authorized fetch methods (fetchAttributes, fetchObjects, fetchSimpleEvent, checkIfAuthorised, canSee). Added hiddenFields configuration for server (authkey), feed (headers), and user (password, authkey, totp, hotp_counter, external_auth_key) so credential columns are excluded from SQL SELECT. Added __detailFields() to build the field list excluding hidden columns. Rewrote __editDetailField() to delegate to entity-specific edit handlers with a $fields parameter, eliminating the unguarded direct save(). Added __canWriteEntity() and __denyWrite() as a unified write-authorization gate for add/edit/delete. Added __term() sanitiser applied via overridden out()/err() methods and __termRows() for list data, neutralising C0/C1 controls, DEL, and Unicode bidi characters. Added __normalisePagination() to clamp limit to 1-1000 and page to >=1. Added __warnUnsupportedFilters() to report ignored

    CVSS rationale

    AV:L: The CLI shell is a local console command requiring SSH or local shell access to the MISP server. AC:L: No race conditions or special timing are needed; the unguarded write path and missing ACL checks are deterministic. AT:N: The authorization bypass and credential exposure require no target interaction. PR:L: Any authenticated MISP user with basic permissions (perm_add) can exploit the write bypass and read credential columns. UI:N: The core authorization bypass and data exposure do not require the victim to perform any action. VC:H: Sensitive credentials (feed HTTP auth, server sync key, user passwords/TOTP) are exposed. VI:H: An attacker can modify events, attributes, and objects they should not be able to change. VA:H: An attacker can read records (feeds, organisations, hidden tags) outside their authorized scope. SC/SI/SA:N: Impact is confined to the local MISP instance and its data.

    Weakness rationale
    • CWE-862 The primary vulnerability: the inline detail editor saved records without enforcing per-record write authorization, and list/detail queries used incomplete ACL conditions that did not match the web interface's access rules. A user who could read a record could modify it, and could read records (feeds, organisations, tags) the web would not expose.
    • CWE-200 Credential columns (Feed.headers, Server.authkey, User.password/authkey/totp/hotp_counter/external_auth_key) were fetched from the database and exposed in CLI output to users who should not have access, and organisation/tag visibility settings were not enforced.
    • CWE-150 Database values containing ANSI escape sequences, C0/C1 control characters, or Unicode bidirectional override characters were printed verbatim to the terminal, allowing output forgery, window retitling, and visual manipulation of displayed indicators.
    • CWE-400 A limit value of zero, negative, or non-numeric caused the ORM to omit the SQL LIMIT clause, returning the entire table into memory and enabling denial of service.
    Assumptions to verify
    • The CLI shell is accessible to any authenticated MISP user with local/SSH access to the server; no additional authentication layer is assumed.
    • The affected version range is not precisely bounded; the fix commit is 184 commits after tag v2.5.46, but the exact release version containing the fix is not stated in the patch metadata.
    • CVSS assumes the attacker already possesses a low-privilege MISP account and local shell access; remote exploitation without local access is not assessed.
    • The terminal injection impact (VC:H) is assessed on the basis that an analyst's terminal session is the primary trust boundary for indicator review; in automated/piped contexts the impact may be lower.
    • The unguarded write path is assessed as allowing modification of any readable record, not limited to specific entity types, based on the patch comment stating 'a user rewrite any record they could read'.
    Model comparison

    Selected qwen3.8:27b by deterministic-consensus-v1
    The selected result is closest to model consensus; this heuristic does not establish factual correctness and human review remains required.

    Model Score Agreement Confidence Assumptions
    qwen3.8:27b 6 9 high 5
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-90895",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "total"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-14T10:24:27.267671Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-14T10:26:12.372Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "modules": [
                "app/Console/Command/CLIShell/"
              ],
              "product": "MISP",
              "programFiles": [
                "app/Console/Command/CLIShell.php",
                "app/Console/Command/CLIShell/cli_attributes.php",
                "app/Console/Command/CLIShell/cli_common.php",
                "app/Console/Command/CLIShell/cli_events.php",
                "app/Console/Command/CLIShell/cli_objects.php",
                "app/Console/Command/CLIShell/cli_organisations.php",
                "app/Console/Command/CLIShell/cli_roles.php",
                "app/Console/Command/CLIShell/cli_tags.php",
                "app/Console/Command/CLIShell/cli_users.php"
              ],
              "repo": "https://github.com/MISP/MISP",
              "vendor": "MISP",
              "versions": [
                {
                  "lessThan": "2.5.46",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "reporter",
              "value": "Scottish Government - National Cyber Team"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "iglocska"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Claude Opus 4.8"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003e\u003c/p\u003e\u003cp\u003eAffected versions of MISP\u2019s interactive CLI shell implement access control independently from the normal web application, causing several authorization inconsistencies.\u003c/p\u003e\n\u003cp\u003eThe patch shows that CLI access could differ from the web application in multiple security-sensitive areas:\u003c/p\u003e\u2003- feed listings did not enforce the same \u003ccode\u003elookup_visible\u003c/code\u003e restrictions for non-host-organisation users;\u003cbr\u003e\u2003- feed detail access did not enforce the same host-organisation/site-admin authorization as \u003ccode\u003eFeedsController::view()\u003c/code\u003e;\u003cbr\u003e\u003ccode\u003e\u2003- Feed.headers\u003c/code\u003e, which can contain HTTP authorization credentials, could be exposed instead of being hidden or masked;\u003cbr\u003e\u2003- server synchronization \u003ccode\u003eauthkey\u003c/code\u003e values were not explicitly hidden from CLI detail output;\u003cbr\u003e\u2003- sharing-group detail access did not consistently use \u003ccode\u003eSharingGroup::checkIfAuthorised()\u003c/code\u003e;\u003cbr\u003e\u2003- the \u003ccode\u003euse\u003c/code\u003e command could establish context for a record without first proving that the user was authorized to view that record\u003cul\u003e\n\u003c/ul\u003e\u003cp\u003eThe commit additionally hardens pagination and terminal rendering, including neutralization of terminal control sequences found in database-backed values. Those are important hardening changes, but the main vulnerability is the CLI authorization/data-disclosure mismatch.\u003c/p\u003e\u003cp\u003eVersion affected: \u22642.5.45\u003cbr\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e"
                }
              ],
              "value": "Affected versions of MISP\u2019s interactive CLI shell implement access control independently from the normal web application, causing several authorization inconsistencies.\n\n\nThe patch shows that CLI access could differ from the web application in multiple security-sensitive areas:\n\n\u2003- feed listings did not enforce the same lookup_visible restrictions for non-host-organisation users;\n\u2003- feed detail access did not enforce the same host-organisation/site-admin authorization as FeedsController::view();\n\u2003- Feed.headers, which can contain HTTP authorization credentials, could be exposed instead of being hidden or masked;\n\u2003- server synchronization authkey values were not explicitly hidden from CLI detail output;\n\u2003- sharing-group detail access did not consistently use SharingGroup::checkIfAuthorised();\n\u2003- the use command could establish context for a record without first proving that the user was authorized to view that record\n\n\nThe commit additionally hardens pagination and terminal rendering, including neutralization of terminal control sequences found in database-backed values. Those are important hardening changes, but the main vulnerability is the CLI authorization/data-disclosure mismatch.\n\nVersion affected: \u22642.5.45"
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-1",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-1 Accessing Functionality Not Properly Constrained by ACLs"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "LOCAL",
                "baseScore": 8.4,
                "baseSeverity": "HIGH",
                "privilegesRequired": "LOW",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "HIGH",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-862",
                  "description": "CWE-862 Missing Authorization",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-200",
                  "description": "CWE-200 Exposure of Sensitive Information to an Unauthorized Actor",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-150",
                  "description": "CWE-150 Improper Neutralization of Escape, Quote, or Control Sequences",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-522",
                  "description": "CWE-522 Insufficiently Protected Credentials",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-14T09:40:55.800Z",
            "orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
            "shortName": "CIRCL"
          },
          "references": [
            {
              "name": "Security patch",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/MISP/MISP/commit/cd9f548ed"
            }
          ],
          "solutions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eThe fix replaces the shell\u0027s hand-rolled authorization logic with the same model-level accessors used by the web interface (Event::fetchSimpleEvent, MispAttribute::fetchAttributes, MispObject::fetchObjects, SharingGroup::checkIfAuthorised, Organisation::canSee), ensuring read and write operations enforce identical ACL rules. Credential columns are excluded at the query level via a hiddenFields mechanism so they are never fetched from the database. The inline detail editor now delegates to the entity-specific edit handlers, which enforce per-record write authorization. All terminal output passes through a sanitiser that neutralises C0/C1 control characters, ANSI escape sequences, and Unicode bidirectional overrides. Pagination is clamped to a safe range (1-1000) to prevent unbounded result sets.\u003c/p\u003e"
                }
              ],
              "value": "The fix replaces the shell\u0027s hand-rolled authorization logic with the same model-level accessors used by the web interface (Event::fetchSimpleEvent, MispAttribute::fetchAttributes, MispObject::fetchObjects, SharingGroup::checkIfAuthorised, Organisation::canSee), ensuring read and write operations enforce identical ACL rules. Credential columns are excluded at the query level via a hiddenFields mechanism so they are never fetched from the database. The inline detail editor now delegates to the entity-specific edit handlers, which enforce per-record write authorization. All terminal output passes through a sanitiser that neutralises C0/C1 control characters, ANSI escape sequences, and Unicode bidirectional overrides. Pagination is clamped to a safe range (1-1000) to prevent unbounded result sets."
            }
          ],
          "title": "MISP Interactive CLI Shell: Authorization Bypass, Credential Exposure, and Terminal Injection",
          "x_gcve": [
            {
              "extensions": {
                "bcp-05-x-01": {
                  "ai_annotations": [
                    {
                      "ai_level": "generated",
                      "description": "Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.",
                      "gna_source": 1,
                      "models": [
                        {
                          "gna_source": 1,
                          "identifier": "qwen3.8:27b",
                          "name": "qwen3.8:27b",
                          "source": "ollama"
                        }
                      ],
                      "review_status": "review",
                      "scope": "record",
                      "tags": [
                        "ai-computer-assisted:llm-generated",
                        "ai-computer-assisted:classification"
                      ]
                    }
                  ]
                },
                "bcp-05-x-02": {
                  "x_patch2vuln": {
                    "assumptions": [
                      "The CLI shell is accessible to any authenticated MISP user with local/SSH access to the server; no additional authentication layer is assumed.",
                      "The affected version range is not precisely bounded; the fix commit is 184 commits after tag v2.5.46, but the exact release version containing the fix is not stated in the patch metadata.",
                      "CVSS assumes the attacker already possesses a low-privilege MISP account and local shell access; remote exploitation without local access is not assessed.",
                      "The terminal injection impact (VC:H) is assessed on the basis that an analyst\u0027s terminal session is the primary trust boundary for indicator review; in automated/piped contexts the impact may be lower.",
                      "The unguarded write path is assessed as allowing modification of any readable record, not limited to specific entity types, based on the patch comment stating \u0027a user rewrite any record they could read\u0027."
                    ],
                    "commit": "cd9f548ed808f89e4e018fad9a81a628098d73fb",
                    "confidence": "high",
                    "credits": [
                      {
                        "lang": "en",
                        "type": "reporter",
                        "value": "Scottish Government - National Cyber Team"
                      },
                      {
                        "lang": "en",
                        "type": "remediation developer",
                        "value": "iglocska"
                      },
                      {
                        "lang": "en",
                        "type": "remediation developer",
                        "value": "Claude Opus 4.8"
                      }
                    ],
                    "cvssRationale": "AV:L: The CLI shell is a local console command requiring SSH or local shell access to the MISP server. AC:L: No race conditions or special timing are needed; the unguarded write path and missing ACL checks are deterministic. AT:N: The authorization bypass and credential exposure require no target interaction. PR:L: Any authenticated MISP user with basic permissions (perm_add) can exploit the write bypass and read credential columns. UI:N: The core authorization bypass and data exposure do not require the victim to perform any action. VC:H: Sensitive credentials (feed HTTP auth, server sync key, user passwords/TOTP) are exposed. VI:H: An attacker can modify events, attributes, and objects they should not be able to change. VA:H: An attacker can read records (feeds, organisations, hidden tags) outside their authorized scope. SC/SI/SA:N: Impact is confined to the local MISP instance and its data.",
                    "draft": false,
                    "fixSummary": "The fix replaces the shell\u0027s hand-rolled authorization logic with the same model-level accessors used by the web interface (Event::fetchSimpleEvent, MispAttribute::fetchAttributes, MispObject::fetchObjects, SharingGroup::checkIfAuthorised, Organisation::canSee), ensuring read and write operations enforce identical ACL rules. Credential columns are excluded at the query level via a hiddenFields mechanism so they are never fetched from the database. The inline detail editor now delegates to the entity-specific edit handlers, which enforce per-record write authorization. All terminal output passes through a sanitiser that neutralises C0/C1 control characters, ANSI escape sequences, and Unicode bidirectional overrides. Pagination is clamped to a safe range (1-1000) to prevent unbounded result sets.",
                    "generatedAt": "2026-09-14T09:16:49.402134Z",
                    "generator": "patch2vuln.py",
                    "model": "qwen3.8:27b",
                    "modelComparison": {
                      "rankings": [
                        {
                          "agreementScore": 9,
                          "assumptionCount": 5,
                          "confidence": "high",
                          "model": "qwen3.8:27b",
                          "score": 6
                        }
                      ],
                      "selectedModel": "qwen3.8:27b",
                      "selectionMethod": "deterministic-consensus-v1",
                      "selectionNotice": "The selected result is closest to model consensus; this heuristic does not establish factual correctness and human review remains required."
                    },
                    "patchSha256": "1993ed3ac039d8fca56d636755584952f47c43046158fdd08278e2e308f1bad1",
                    "patchSummary": "Replaced hand-rolled ACL conditions in attribute, object, feed, sharing-group, and organisation queries with calls to the model\u0027s authorized fetch methods (fetchAttributes, fetchObjects, fetchSimpleEvent, checkIfAuthorised, canSee). Added hiddenFields configuration for server (authkey), feed (headers), and user (password, authkey, totp, hotp_counter, external_auth_key) so credential columns are excluded from SQL SELECT. Added __detailFields() to build the field list excluding hidden columns. Rewrote __editDetailField() to delegate to entity-specific edit handlers with a $fields parameter, eliminating the unguarded direct save(). Added __canWriteEntity() and __denyWrite() as a unified write-authorization gate for add/edit/delete. Added __term() sanitiser applied via overridden out()/err() methods and __termRows() for list data, neutralising C0/C1 controls, DEL, and Unicode bidi characters. Added __normalisePagination() to clamp limit to 1-1000 and page to \u003e=1. Added __warnUnsupportedFilters() to report ignored",
                    "patchTruncated": false,
                    "patches": [
                      {
                        "commit": "cd9f548ed808f89e4e018fad9a81a628098d73fb",
                        "patchSha256": "1993ed3ac039d8fca56d636755584952f47c43046158fdd08278e2e308f1bad1",
                        "source": "https://github.com/MISP/MISP/commit/cd9f548ed.patch",
                        "sourceUrl": "https://github.com/MISP/MISP/commit/cd9f548ed.patch",
                        "subject": "fix: [cli] Route interactive CLI shell authorization through"
                      }
                    ],
                    "source": "https://github.com/MISP/MISP/commit/cd9f548ed.patch",
                    "subject": "fix: [cli] Route interactive CLI shell authorization through",
                    "tagVersionBoundary": {
                      "commits_after_fix": 184,
                      "repository": "https://github.com/MISP/MISP",
                      "tag": "v2.5.46",
                      "version": "2.5.46",
                      "version_type": "semver"
                    },
                    "weaknessRationale": [
                      {
                        "cweId": "CWE-862",
                        "rationale": "The primary vulnerability: the inline detail editor saved records without enforcing per-record write authorization, and list/detail queries used incomplete ACL conditions that did not match the web interface\u0027s access rules. A user who could read a record could modify it, and could read records (feeds, organisations, tags) the web would not expose."
                      },
                      {
                        "cweId": "CWE-200",
                        "rationale": "Credential columns (Feed.headers, Server.authkey, User.password/authkey/totp/hotp_counter/external_auth_key) were fetched from the database and exposed in CLI output to users who should not have access, and organisation/tag visibility settings were not enforced."
                      },
                      {
                        "cweId": "CWE-150",
                        "rationale": "Database values containing ANSI escape sequences, C0/C1 control characters, or Unicode bidirectional override characters were printed verbatim to the terminal, allowing output forgery, window retitling, and visual manipulation of displayed indicators."
                      },
                      {
                        "cweId": "CWE-400",
                        "rationale": "A limit value of zero, negative, or non-numeric caused the ORM to omit the SQL LIMIT clause, returning the entire table into memory and enabling denial of service."
                      }
                    ]
                  }
                }
              },
              "recordType": "advisory",
              "vulnId": "GCVE-1-2026-20058"
            }
          ]
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
        "assignerShortName": "CIRCL",
        "cveId": "CVE-2026-90895",
        "datePublished": "2026-09-14T09:40:55.800Z",
        "dateReserved": "2026-09-14T09:40:52.456Z",
        "dateUpdated": "2026-09-14T10:26:12.372Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-90893 (GCVE-0-2026-90893)

    Vulnerability from cvelistv5 – Published: 2026-09-14 09:12 – Updated: 2026-09-14 10:28
    VLAI
    Title
    MISP UserSettingsController CSRF Protection Bypass on setTheme, setHomePage, and eventIndexColumnToggle Endpoints
    Summary
    MISP contains a Cross-Site Request Forgery (CSRF) vulnerability in the UserSettingsController. The actions setTheme, setHomePage, and eventIndexColumnToggle were explicitly added to the Security component's unlockedActions list, which disabled all CSRF validation (both token and field-hash checks) for those endpoints. Because these endpoints accept POST requests and modify per-user application state (theme selection, default homepage URL, and event index column visibility), an attacker who can induce a logged-in MISP user to load a malicious page (e.g., via a crafted link, embedded image, or auto-submitting form) can forge requests that alter the victim's settings without their knowledge or consent. The most impactful action is setHomePage, which allows an attacker to redirect the victim's default landing page to an arbitrary attacker-controlled URL, potentially facilitating phishing or further social engineering. The setTheme action can alter the user's visual theme, and eventIndexColumnToggle can change which columns are displayed in the event index view. No authentication bypass is involved; the victim must already be authenticated to MISP. The vulnerability was reported by the Scottish Government National Cyber Team. Version affected: ≤2.5.45
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-14 10:26 UTC
    CWE
    • CWE-352 - Cross-Site Request Forgery (CSRF)
    References
    Impacted products
    Vendor Product Version
    MISP MISP Affected: 0 , < 2.5.46 (semver)
    Create a notification for this product.
    GCVE extensions
    AI involvement GCVE-BCP-05-X-01
    Whole record AI-generated Review: review GNA-1

    Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.

    ai-computer-assisted:llm-generatedai-computer-assisted:classification
    Model Source Identifier
    qwen3.8:27b ollama qwen3.8:27b
    Patch provenance GCVE-BCP-05-X-02
    Generator
    patch2vuln.py on 2026-09-14 08:59
    Model
    qwen3.8:27b
    Input
    https://github.com/MISP/MISP/commit/979337b18.patch 287bea96c3ef…
    Confidence
    medium
    Commit Subject Patch SHA-256
    979337b182ae fix: [security] Put the user-settings endpoints back under 287bea96c3ef…
    Fix summary

    The fix removes the three affected actions from the Security component's unlockedActions list (which had disabled all CSRF checks) and instead registers them under a header-only CSRF token validation mechanism (_csrfTokenHeaderOnly). This requires the X-CSRF-Token header to be present and valid on each request while still permitting the AJAX-style calls that lack traditional form fields. Client-side JavaScript and view templates are updated to include the X-CSRF-Token header (sourced from window.csrfToken) in all AJAX and fetch calls to these endpoints, ensuring legitimate same-origin requests continue to function while cross-origin forged requests are rejected.

    Patch summary

    In UserSettingsController::beforeFilter(), the three lines adding eventIndexColumnToggle, setTheme, and setHomePage to $this->Security->unlockedActions[] are removed and replaced with a single $this->_csrfTokenHeaderOnly() call covering all four affected actions (including setEventTemplateUserFormMode). In global_menu.ctp (default and UiBeta themes), navbar.ctp (Overmind theme), and misp.js, the jQuery $.ajax() and fetch() calls that invoke setTheme, setHomePage, and eventIndexColumnToggle are updated to include an X-CSRF-Token header populated from window.csrfToken. The Overmind navbar fetch calls also gain credentials: 'same-origin' to ensure cookies are sent with the request.

    CVSS rationale

    AV:N: The attack is delivered over the network via a malicious web page. AC:L: CSRF exploitation is straightforward with no race conditions or special timing. AT:N: No special target state is required beyond normal authentication. PR:N: The attacker requires no privileges on the MISP instance. UI:P: The victim must passively load the attacker's page while authenticated (e.g., click a link or visit a site). VC:N: No confidential data is exposed. VI:L: User-controlled settings (theme, homepage, column visibility) are modified, representing a low integrity impact. VA:N: No availability impact. SC/SI/SA:N: No impact on adjacent or downstream systems.

    Weakness rationale
    • CWE-352 The endpoints were explicitly excluded from CSRF validation via the Security component's unlockedActions mechanism, allowing a cross-origin page to submit state-changing POST requests on behalf of an authenticated user without a valid CSRF token.
    Assumptions to verify
    • The MISP instance is assumed to be deployed in a standard configuration where the Security component's CSRF protection is enabled by default; if an operator had globally disabled CSRF checks, this specific vulnerability would be subsumed by that broader misconfiguration.
    • The setHomePage endpoint is assumed to accept an arbitrary URL path as its argument based on the patch comment stating 'a single path the user picks anyway and which setSetting() validates server-side'; the exact validation logic was not visible in the patch.
    • Exact affected version range could not be determined from the patch alone; the fix commit is 225 commits after the v2.5.46 tag, suggesting the vulnerability existed in releases around and after v2.5.46, but precise boundaries are unspecified.
    • CVSS UI:P assumes the victim must load an attacker-controlled page; if MISP is deployed behind a strict CSP that blocks cross-origin form submission, exploitability may be reduced, but this is not confirmed by the patch.
    Model comparison

    Selected qwen3.8:27b by deterministic-consensus-v1
    The selected result is closest to model consensus; this heuristic does not establish factual correctness and human review remains required.

    Model Score Agreement Confidence Assumptions
    qwen3.8:27b 6 9 medium 4
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-90893",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-14T10:26:31.868700Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-14T10:28:09.993Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "modules": [
                "UserSettingsController",
                "app/Controller/UserSettingsController.php"
              ],
              "product": "MISP",
              "programFiles": [
                "app/Controller/UserSettingsController.php",
                "app/View/Elements/global_menu.ctp",
                "app/View/Themed/Overmind/Elements/navbar.ctp",
                "app/View/Themed/UiBeta/Elements/global_menu.ctp",
                "app/webroot/js/misp.js"
              ],
              "repo": "https://github.com/MISP/MISP",
              "vendor": "MISP",
              "versions": [
                {
                  "lessThan": "2.5.46",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "reporter",
              "value": "Scottish Government - National Cyber Team"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "iglocska"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Claude Opus 5 (1M context)"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eMISP contains a Cross-Site Request Forgery (CSRF) vulnerability in the UserSettingsController. The actions setTheme, setHomePage, and eventIndexColumnToggle were explicitly added to the Security component\u0027s unlockedActions list, which disabled all CSRF validation (both token and field-hash checks) for those endpoints. Because these endpoints accept POST requests and modify per-user application state (theme selection, default homepage URL, and event index column visibility), an attacker who can induce a logged-in MISP user to load a malicious page (e.g., via a crafted link, embedded image, or auto-submitting form) can forge requests that alter the victim\u0027s settings without their knowledge or consent. The most impactful action is setHomePage, which allows an attacker to redirect the victim\u0027s default landing page to an arbitrary attacker-controlled URL, potentially facilitating phishing or further social engineering. The setTheme action can alter the user\u0027s visual theme, and eventIndexColumnToggle can change which columns are displayed in the event index view. No authentication bypass is involved; the victim must already be authenticated to MISP. The vulnerability was reported by the Scottish Government National Cyber Team.\u003c/p\u003e\u003cp\u003eVersion affected: \u22642.5.45\u003cbr\u003e\u003c/p\u003e"
                }
              ],
              "value": "MISP contains a Cross-Site Request Forgery (CSRF) vulnerability in the UserSettingsController. The actions setTheme, setHomePage, and eventIndexColumnToggle were explicitly added to the Security component\u0027s unlockedActions list, which disabled all CSRF validation (both token and field-hash checks) for those endpoints. Because these endpoints accept POST requests and modify per-user application state (theme selection, default homepage URL, and event index column visibility), an attacker who can induce a logged-in MISP user to load a malicious page (e.g., via a crafted link, embedded image, or auto-submitting form) can forge requests that alter the victim\u0027s settings without their knowledge or consent. The most impactful action is setHomePage, which allows an attacker to redirect the victim\u0027s default landing page to an arbitrary attacker-controlled URL, potentially facilitating phishing or further social engineering. The setTheme action can alter the user\u0027s visual theme, and eventIndexColumnToggle can change which columns are displayed in the event index view. No authentication bypass is involved; the victim must already be authenticated to MISP. The vulnerability was reported by the Scottish Government National Cyber Team.\n\nVersion affected: \u22642.5.45"
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-62",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-62 Cross Site Request Forgery"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 5.1,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "ACTIVE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "LOW",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-352",
                  "description": "CWE-352 Cross-Site Request Forgery (CSRF)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-14T09:12:03.863Z",
            "orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
            "shortName": "CIRCL"
          },
          "references": [
            {
              "name": "Security patch",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/MISP/MISP/commit/979337b18"
            }
          ],
          "solutions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eThe fix removes the three affected actions from the Security component\u0027s unlockedActions list (which had disabled all CSRF checks) and instead registers them under a header-only CSRF token validation mechanism (_csrfTokenHeaderOnly). This requires the X-CSRF-Token header to be present and valid on each request while still permitting the AJAX-style calls that lack traditional form fields. Client-side JavaScript and view templates are updated to include the X-CSRF-Token header (sourced from window.csrfToken) in all AJAX and fetch calls to these endpoints, ensuring legitimate same-origin requests continue to function while cross-origin forged requests are rejected.\u003c/p\u003e"
                }
              ],
              "value": "The fix removes the three affected actions from the Security component\u0027s unlockedActions list (which had disabled all CSRF checks) and instead registers them under a header-only CSRF token validation mechanism (_csrfTokenHeaderOnly). This requires the X-CSRF-Token header to be present and valid on each request while still permitting the AJAX-style calls that lack traditional form fields. Client-side JavaScript and view templates are updated to include the X-CSRF-Token header (sourced from window.csrfToken) in all AJAX and fetch calls to these endpoints, ensuring legitimate same-origin requests continue to function while cross-origin forged requests are rejected."
            }
          ],
          "title": "MISP UserSettingsController CSRF Protection Bypass on setTheme, setHomePage, and eventIndexColumnToggle Endpoints",
          "x_gcve": [
            {
              "extensions": {
                "bcp-05-x-01": {
                  "ai_annotations": [
                    {
                      "ai_level": "generated",
                      "description": "Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.",
                      "gna_source": 1,
                      "models": [
                        {
                          "gna_source": 1,
                          "identifier": "qwen3.8:27b",
                          "name": "qwen3.8:27b",
                          "source": "ollama"
                        }
                      ],
                      "review_status": "review",
                      "scope": "record",
                      "tags": [
                        "ai-computer-assisted:llm-generated",
                        "ai-computer-assisted:classification"
                      ]
                    }
                  ]
                },
                "bcp-05-x-02": {
                  "x_patch2vuln": {
                    "assumptions": [
                      "The MISP instance is assumed to be deployed in a standard configuration where the Security component\u0027s CSRF protection is enabled by default; if an operator had globally disabled CSRF checks, this specific vulnerability would be subsumed by that broader misconfiguration.",
                      "The setHomePage endpoint is assumed to accept an arbitrary URL path as its argument based on the patch comment stating \u0027a single path the user picks anyway and which setSetting() validates server-side\u0027; the exact validation logic was not visible in the patch.",
                      "Exact affected version range could not be determined from the patch alone; the fix commit is 225 commits after the v2.5.46 tag, suggesting the vulnerability existed in releases around and after v2.5.46, but precise boundaries are unspecified.",
                      "CVSS UI:P assumes the victim must load an attacker-controlled page; if MISP is deployed behind a strict CSP that blocks cross-origin form submission, exploitability may be reduced, but this is not confirmed by the patch."
                    ],
                    "commit": "979337b182ae666fe1387342e20e061613657e83",
                    "confidence": "medium",
                    "credits": [
                      {
                        "lang": "en",
                        "type": "reporter",
                        "value": "Scottish Government - National Cyber Team"
                      },
                      {
                        "lang": "en",
                        "type": "remediation developer",
                        "value": "iglocska"
                      },
                      {
                        "lang": "en",
                        "type": "remediation developer",
                        "value": "Claude Opus 5 (1M context)"
                      },
                      {
                        "lang": "en",
                        "type": "tool",
                        "value": "Claude Opus 5 (1M context)"
                      }
                    ],
                    "cvssRationale": "AV:N: The attack is delivered over the network via a malicious web page. AC:L: CSRF exploitation is straightforward with no race conditions or special timing. AT:N: No special target state is required beyond normal authentication. PR:N: The attacker requires no privileges on the MISP instance. UI:P: The victim must passively load the attacker\u0027s page while authenticated (e.g., click a link or visit a site). VC:N: No confidential data is exposed. VI:L: User-controlled settings (theme, homepage, column visibility) are modified, representing a low integrity impact. VA:N: No availability impact. SC/SI/SA:N: No impact on adjacent or downstream systems.",
                    "draft": false,
                    "fixSummary": "The fix removes the three affected actions from the Security component\u0027s unlockedActions list (which had disabled all CSRF checks) and instead registers them under a header-only CSRF token validation mechanism (_csrfTokenHeaderOnly). This requires the X-CSRF-Token header to be present and valid on each request while still permitting the AJAX-style calls that lack traditional form fields. Client-side JavaScript and view templates are updated to include the X-CSRF-Token header (sourced from window.csrfToken) in all AJAX and fetch calls to these endpoints, ensuring legitimate same-origin requests continue to function while cross-origin forged requests are rejected.",
                    "generatedAt": "2026-09-14T08:59:52.615890Z",
                    "generator": "patch2vuln.py",
                    "model": "qwen3.8:27b",
                    "modelComparison": {
                      "rankings": [
                        {
                          "agreementScore": 9,
                          "assumptionCount": 4,
                          "confidence": "medium",
                          "model": "qwen3.8:27b",
                          "score": 6
                        }
                      ],
                      "selectedModel": "qwen3.8:27b",
                      "selectionMethod": "deterministic-consensus-v1",
                      "selectionNotice": "The selected result is closest to model consensus; this heuristic does not establish factual correctness and human review remains required."
                    },
                    "patchSha256": "287bea96c3ef414dbe0e17b36a12cd0aed2f27c7b28ccc9867338fabf9561a0f",
                    "patchSummary": "In UserSettingsController::beforeFilter(), the three lines adding eventIndexColumnToggle, setTheme, and setHomePage to $this-\u003eSecurity-\u003eunlockedActions[] are removed and replaced with a single $this-\u003e_csrfTokenHeaderOnly() call covering all four affected actions (including setEventTemplateUserFormMode). In global_menu.ctp (default and UiBeta themes), navbar.ctp (Overmind theme), and misp.js, the jQuery $.ajax() and fetch() calls that invoke setTheme, setHomePage, and eventIndexColumnToggle are updated to include an X-CSRF-Token header populated from window.csrfToken. The Overmind navbar fetch calls also gain credentials: \u0027same-origin\u0027 to ensure cookies are sent with the request.",
                    "patchTruncated": false,
                    "patches": [
                      {
                        "commit": "979337b182ae666fe1387342e20e061613657e83",
                        "patchSha256": "287bea96c3ef414dbe0e17b36a12cd0aed2f27c7b28ccc9867338fabf9561a0f",
                        "source": "https://github.com/MISP/MISP/commit/979337b18.patch",
                        "sourceUrl": "https://github.com/MISP/MISP/commit/979337b18.patch",
                        "subject": "fix: [security] Put the user-settings endpoints back under"
                      }
                    ],
                    "source": "https://github.com/MISP/MISP/commit/979337b18.patch",
                    "subject": "fix: [security] Put the user-settings endpoints back under",
                    "tagVersionBoundary": {
                      "commits_after_fix": 225,
                      "repository": "https://github.com/MISP/MISP",
                      "tag": "v2.5.46",
                      "version": "2.5.46",
                      "version_type": "semver"
                    },
                    "weaknessRationale": [
                      {
                        "cweId": "CWE-352",
                        "rationale": "The endpoints were explicitly excluded from CSRF validation via the Security component\u0027s unlockedActions mechanism, allowing a cross-origin page to submit state-changing POST requests on behalf of an authenticated user without a valid CSRF token."
                      }
                    ]
                  }
                }
              },
              "recordType": "advisory",
              "vulnId": "GCVE-1-2026-20226"
            }
          ]
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
        "assignerShortName": "CIRCL",
        "cveId": "CVE-2026-90893",
        "datePublished": "2026-09-14T09:12:03.863Z",
        "dateReserved": "2026-09-14T09:12:01.736Z",
        "dateUpdated": "2026-09-14T10:28:09.993Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2025-15679 (GCVE-0-2025-15679)

    Vulnerability from cvelistv5 – Published: 2026-09-11 08:02 – Updated: 2026-09-11 15:25
    VLAI
    Title
    BMC root account active without password on BullSequana XH3406 and XH3515
    Summary
    Under certain circumstances such as reset to factory default operation, the BMC root account is made active without a password on BullSequana XH3406 and XH3515.
    SSVC
    Exploitation: none Automatable: no Technical Impact: total
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-11 15:23 UTC
    CWE
    • CWE-258 - Empty password in configuration file
    References
    Impacted products
    Vendor Product Version
    Bull BullSequana XH3406 Affected: 0 , < TS 04.05 (custom)
    Create a notification for this product.
    Bull BullSequana XH3515 Affected: 0 , < TS 43.01 (custom)
    Create a notification for this product.
    Date Public
    2026-09-11 08:01
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2025-15679",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "total"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-11T15:23:45.592824Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-11T15:25:17.549Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "BullSequana XH3406",
              "vendor": "Bull",
              "versions": [
                {
                  "lessThan": "TS 04.05",
                  "status": "affected",
                  "version": "0",
                  "versionType": "custom"
                }
              ]
            },
            {
              "defaultStatus": "unaffected",
              "product": "BullSequana XH3515",
              "vendor": "Bull",
              "versions": [
                {
                  "lessThan": "TS 43.01",
                  "status": "affected",
                  "version": "0",
                  "versionType": "custom"
                }
              ]
            }
          ],
          "configurations": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "Reset to factory default operation."
                }
              ],
              "value": "Reset to factory default operation."
            }
          ],
          "datePublic": "2026-09-11T08:01:00.000Z",
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "Under certain circumstances such as reset to factory default operation, the BMC root account is made active without a password on BullSequana XH3406 and XH3515."
                }
              ],
              "value": "Under certain circumstances such as reset to factory default operation, the BMC root account is made active without a password on BullSequana XH3406 and XH3515."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-70",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-70 Try Common or Default Usernames and Passwords"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NO",
                "Recovery": "USER",
                "Safety": "PRESENT",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "LOCAL",
                "baseScore": 7.3,
                "baseSeverity": "HIGH",
                "exploitMaturity": "PROOF_OF_CONCEPT",
                "privilegesRequired": "NONE",
                "providerUrgency": "CLEAR",
                "subAvailabilityImpact": "LOW",
                "subConfidentialityImpact": "LOW",
                "subIntegrityImpact": "LOW",
                "userInteraction": "NONE",
                "valueDensity": "CONCENTRATED",
                "vectorString": "CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:L/SI:L/SA:L/E:P/S:P/AU:N/R:U/V:C/RE:L/U:Clear",
                "version": "4.0",
                "vulnAvailabilityImpact": "HIGH",
                "vulnConfidentialityImpact": "HIGH",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "LOW"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-258",
                  "description": "CWE-258 Empty password in configuration file",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-11T13:15:43.199Z",
            "orgId": "5bcc34ac-0282-4e8a-96fc-046c583d3048",
            "shortName": "Bull"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory"
              ],
              "url": "https://myatos.my.site.com/psmcustomer/s/contentdocument/069ci00000eNzLYAA0"
            }
          ],
          "solutions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cdiv\u003e\u003cdiv\u003eApply one of the fixed Technical state mentionned above.\u003cdiv\u003e\u003cdiv\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cbr\u003e"
                }
              ],
              "value": "Apply one of the fixed Technical state mentionned above."
            }
          ],
          "source": {
            "advisory": "PSIRT-2066",
            "discovery": "INTERNAL"
          },
          "title": "BMC root account active without password on BullSequana XH3406 and XH3515",
          "x_generator": {
            "engine": "Vulnogram 1.0.5"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5bcc34ac-0282-4e8a-96fc-046c583d3048",
        "assignerShortName": "Bull",
        "cveId": "CVE-2025-15679",
        "datePublished": "2026-09-11T08:02:03.465Z",
        "dateReserved": "2026-08-04T11:26:59.448Z",
        "dateUpdated": "2026-09-11T15:25:17.549Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-88921 (GCVE-0-2026-88921)

    Vulnerability from cvelistv5 – Published: 2026-09-10 13:41 – Updated: 2026-09-10 17:02
    VLAI
    Title
    MISP: Unescaped HTML Injection in PDF Report Element Rendering
    Summary
    MISP contains an HTML injection vulnerability in the MISPElementHTMLFormatterTool component, which is responsible for rendering MISP element references (attributes, objects, and tags) into inline HTML during PDF report export via the convert_markdown_to_pdf module. The attribute(), objectAttribute(), object(), and tag() methods interpolated user-controlled fields (attribute type, attribute value, object name, object relation, tag name, tag colour, and tag text colour) directly into HTML templates without applying HTML entity encoding. An authenticated user with the ability to create or modify MISP attributes, objects, or tags could embed arbitrary HTML markup in these fields. When a report containing such elements was exported to PDF, the unescaped content was rendered as live HTML rather than inert text, potentially injecting script tags, breaking the document structure, or altering the visual content of the exported report. Additionally, the attribute() method contained a template with hardcoded sample values ("domain-ip" and "google.com") instead of format placeholders, meaning every plain attribute reference in a PDF displayed the sample text rather than the actual indicator value, constituting a data-integrity defect in the exported document. The vulnerability requires an authenticated actor with write access to MISP elements and a subsequent PDF export of a report referencing those elements. The security impact is primarily to the integrity of the exported document and, depending on the HTML-to-PDF rendering engine, potential execution of injected markup during the conversion step. Version affected: ≤2.5.45
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-10 17:01 UTC
    CWE
    • CWE-79 - Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
    • CWE-116 - Improper Encoding or Escaping of Output
    References
    Impacted products
    Vendor Product Version
    MISP MISP Affected: unspecified , < 2.5.46 (semver)
    Create a notification for this product.
    GCVE extensions
    AI involvement GCVE-BCP-05-X-01
    Whole record AI-generated Not human-reviewed GNA-1

    Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.

    ai-computer-assisted:llm-generatedai-computer-assisted:classification
    Model Source Identifier
    qwen3.8:27b ollama qwen3.8:27b
    Patch provenance GCVE-BCP-05-X-02
    Generator
    patch2vuln.py on 2026-09-10 13:06
    Model
    qwen3.8:27b
    Input
    https://github.com/MISP/MISP/commit/949744a4b.patch 300efd40407c…
    Confidence
    medium
    Commit Subject Patch SHA-256
    949744a4b6de fix: [event-report] Render and escape MISP element references 300efd40407c…
    Fix summary

    The fix applies HTML entity encoding (via the h() helper, which wraps htmlspecialchars with ENT_QUOTES and UTF-8) to every user-controlled value interpolated into the HTML templates in the MISPElementHTMLFormatterTool. This ensures that attribute types, values, object names, relations, tag names, and colour values are treated as inert data and cannot inject markup or break out of the surrounding span/style context. The hardcoded sample values in the attribute() template are replaced with proper %s format placeholders so that the actual element data is rendered. Comprehensive unit tests are added to verify both correct rendering and escaping of hostile inputs across all four formatter methods.

    Patch summary

    In MISPElementHTMLFormatterTool.php: (1) the attribute() template's hardcoded 'domain-ip' and 'google.com' strings are replaced with %s placeholders; (2) all sprintf arguments in attribute(), objectAttribute(), object(), and tag() are wrapped with h() to HTML-encode the interpolated values (attribute type, value, object name, object_relation, tag name, colour, text_colour). A new test file MISPElementHTMLFormatterToolTest.php is added with 123 lines of PHPUnit tests covering: correct rendering of real values, HTML escaping of hostile payloads (script tags, span-breaking sequences, CSS attribute breakout via quotes), foreign-tag detection, and placeholder behaviour for objects without attributes.

    CVSS rationale

    AV:N: MISP is a network-accessible web application. AC:L: The attacker only needs to create or modify a MISP element with a crafted value; no race conditions or special timing are required. AT:N: No manipulation of the attack target is needed. PR:L: The attacker requires an authenticated account with permission to create or modify MISP attributes, objects, or tags. UI:N: The victim performs a normal, expected action (exporting a report to PDF); no unusual interaction is required to trigger the rendering of the injected content. VC:N: The primary impact is on the output document, not on reading confidential system data. VI:L: The integrity of the exported PDF is compromised by injected markup or incorrect data (hardcoded sample values). VA:N: No denial-of-service impact is evident. SC:N: No confirmed cross-system confidentiality impact. SI:L: The integrity of the exported document (a secondary asset) is affected; injected content could mislead readers or, if the PDF renderer executes scripts, affect the rendering environment. SA:N: No security-relevant impact on other systems is established by the evidence.

    Weakness rationale
    • CWE-79 User-controlled MISP element values (attribute values, object names, tag names, tag colours) are interpolated into HTML output without encoding, allowing injection of arbitrary HTML markup into the rendered document. Although the output target is a PDF rather than a browser page, the mechanism is identical to stored XSS: untrusted data is embedded in an HTML context without neutralization.
    • CWE-116 The root cause is the absence of output encoding (htmlspecialchars) on all interpolated values in the HTML template strings. The tag() method additionally failed to escape colour values that are placed inside a CSS style attribute, enabling attribute-breakout injection.
    Assumptions to verify
    • The HTML-to-PDF rendering pipeline (convert_markdown_to_pdf) is assumed to render the generated HTML in a context where injected markup could be interpreted (e.g., headless browser or HTML-aware converter); if a purely static renderer is used, the impact is limited to document corruption.
    • The attacker is assumed to have an authenticated MISP account with write access to attributes, objects, or tags; the specific role or permission level required is not stated in the patch.
    • The exact fixed version is not specified in the patch metadata; the tag boundary (v2.5.46, 187 commits before the fix) indicates the fix post-dates v2.5.46 but the precise release is unknown.
    • UI:N is assigned on the assumption that triggering the PDF export is a normal, expected user action and does not constitute a special interaction requirement beyond routine use of the application.
    Model comparison

    Selected qwen3.8:27b by deterministic-consensus-v1
    The selected result is closest to model consensus; this heuristic does not establish factual correctness and human review remains required.

    Model Score Agreement Confidence Assumptions
    qwen3.8:27b 6 9 medium 4
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-88921",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-10T17:01:58.906810Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-10T17:02:58.068Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "modules": [
                "app/Lib/Tools/MISPElementHTMLFormatterTool.php",
                "EventReport PDF export (convert_markdown_to_pdf)"
              ],
              "product": "MISP",
              "programFiles": [
                "app/Lib/Tools/MISPElementHTMLFormatterTool.php"
              ],
              "repo": "https://github.com/MISP/MISP",
              "vendor": "MISP",
              "versions": [
                {
                  "lessThan": "2.5.46",
                  "status": "affected",
                  "version": "unspecified",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "reporter",
              "value": "Scottish Government - National Cyber Team"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "iglocska"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Claude Opus 5 (1M context)"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eMISP contains an HTML injection vulnerability in the MISPElementHTMLFormatterTool component, which is responsible for rendering MISP element references (attributes, objects, and tags) into inline HTML during PDF report export via the convert_markdown_to_pdf module. The attribute(), objectAttribute(), object(), and tag() methods interpolated user-controlled fields (attribute type, attribute value, object name, object relation, tag name, tag colour, and tag text colour) directly into HTML templates without applying HTML entity encoding. An authenticated user with the ability to create or modify MISP attributes, objects, or tags could embed arbitrary HTML markup in these fields. When a report containing such elements was exported to PDF, the unescaped content was rendered as live HTML rather than inert text, potentially injecting script tags, breaking the document structure, or altering the visual content of the exported report. Additionally, the attribute() method contained a template with hardcoded sample values (\"domain-ip\" and \"google.com\") instead of format placeholders, meaning every plain attribute reference in a PDF displayed the sample text rather than the actual indicator value, constituting a data-integrity defect in the exported document. The vulnerability requires an authenticated actor with write access to MISP elements and a subsequent PDF export of a report referencing those elements. The security impact is primarily to the integrity of the exported document and, depending on the HTML-to-PDF rendering engine, potential execution of injected markup during the conversion step.\u003c/p\u003e\u003cp\u003eVersion affected: \u22642.5.45\u003cbr\u003e\u003c/p\u003e"
                }
              ],
              "value": "MISP contains an HTML injection vulnerability in the MISPElementHTMLFormatterTool component, which is responsible for rendering MISP element references (attributes, objects, and tags) into inline HTML during PDF report export via the convert_markdown_to_pdf module. The attribute(), objectAttribute(), object(), and tag() methods interpolated user-controlled fields (attribute type, attribute value, object name, object relation, tag name, tag colour, and tag text colour) directly into HTML templates without applying HTML entity encoding. An authenticated user with the ability to create or modify MISP attributes, objects, or tags could embed arbitrary HTML markup in these fields. When a report containing such elements was exported to PDF, the unescaped content was rendered as live HTML rather than inert text, potentially injecting script tags, breaking the document structure, or altering the visual content of the exported report. Additionally, the attribute() method contained a template with hardcoded sample values (\"domain-ip\" and \"google.com\") instead of format placeholders, meaning every plain attribute reference in a PDF displayed the sample text rather than the actual indicator value, constituting a data-integrity defect in the exported document. The vulnerability requires an authenticated actor with write access to MISP elements and a subsequent PDF export of a report referencing those elements. The security impact is primarily to the integrity of the exported document and, depending on the HTML-to-PDF rendering engine, potential execution of injected markup during the conversion step.\n\nVersion affected: \u22642.5.45"
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-63",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-63 Cross-Site Scripting (XSS)"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 5.1,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "LOW",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "PASSIVE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "LOW",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-79",
                  "description": "CWE-79 Improper Neutralization of Input During Web Page Generation (\u0027Cross-site Scripting\u0027)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-116",
                  "description": "CWE-116 Improper Encoding or Escaping of Output",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-10T13:41:51.214Z",
            "orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
            "shortName": "CIRCL"
          },
          "references": [
            {
              "name": "Security patch",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/MISP/MISP/commit/949744a4b"
            }
          ],
          "solutions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eThe fix applies HTML entity encoding (via the h() helper, which wraps htmlspecialchars with ENT_QUOTES and UTF-8) to every user-controlled value interpolated into the HTML templates in the MISPElementHTMLFormatterTool. This ensures that attribute types, values, object names, relations, tag names, and colour values are treated as inert data and cannot inject markup or break out of the surrounding span/style context. The hardcoded sample values in the attribute() template are replaced with proper %s format placeholders so that the actual element data is rendered. Comprehensive unit tests are added to verify both correct rendering and escaping of hostile inputs across all four formatter methods.\u003c/p\u003e"
                }
              ],
              "value": "The fix applies HTML entity encoding (via the h() helper, which wraps htmlspecialchars with ENT_QUOTES and UTF-8) to every user-controlled value interpolated into the HTML templates in the MISPElementHTMLFormatterTool. This ensures that attribute types, values, object names, relations, tag names, and colour values are treated as inert data and cannot inject markup or break out of the surrounding span/style context. The hardcoded sample values in the attribute() template are replaced with proper %s format placeholders so that the actual element data is rendered. Comprehensive unit tests are added to verify both correct rendering and escaping of hostile inputs across all four formatter methods."
            }
          ],
          "title": "MISP: Unescaped HTML Injection in PDF Report Element Rendering",
          "x_gcve": [
            {
              "extensions": {
                "bcp-05-x-01": {
                  "ai_annotations": [
                    {
                      "ai_level": "generated",
                      "description": "Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.",
                      "gna_source": 1,
                      "models": [
                        {
                          "gna_source": 1,
                          "identifier": "qwen3.8:27b",
                          "name": "qwen3.8:27b",
                          "source": "ollama"
                        }
                      ],
                      "review_status": "none",
                      "scope": "record",
                      "tags": [
                        "ai-computer-assisted:llm-generated",
                        "ai-computer-assisted:classification"
                      ]
                    }
                  ]
                },
                "bcp-05-x-02": {
                  "x_patch2vuln": {
                    "assumptions": [
                      "The HTML-to-PDF rendering pipeline (convert_markdown_to_pdf) is assumed to render the generated HTML in a context where injected markup could be interpreted (e.g., headless browser or HTML-aware converter); if a purely static renderer is used, the impact is limited to document corruption.",
                      "The attacker is assumed to have an authenticated MISP account with write access to attributes, objects, or tags; the specific role or permission level required is not stated in the patch.",
                      "The exact fixed version is not specified in the patch metadata; the tag boundary (v2.5.46, 187 commits before the fix) indicates the fix post-dates v2.5.46 but the precise release is unknown.",
                      "UI:N is assigned on the assumption that triggering the PDF export is a normal, expected user action and does not constitute a special interaction requirement beyond routine use of the application."
                    ],
                    "commit": "949744a4b6de919eca07644b6a643de88b706780",
                    "confidence": "medium",
                    "credits": [
                      {
                        "lang": "en",
                        "type": "reporter",
                        "value": "Scottish Government - National Cyber Team"
                      },
                      {
                        "lang": "en",
                        "type": "remediation developer",
                        "value": "iglocska"
                      },
                      {
                        "lang": "en",
                        "type": "remediation developer",
                        "value": "Claude Opus 5 (1M context)"
                      },
                      {
                        "lang": "en",
                        "type": "tool",
                        "value": "Claude Opus 5 (1M context)"
                      }
                    ],
                    "cvssRationale": "AV:N: MISP is a network-accessible web application. AC:L: The attacker only needs to create or modify a MISP element with a crafted value; no race conditions or special timing are required. AT:N: No manipulation of the attack target is needed. PR:L: The attacker requires an authenticated account with permission to create or modify MISP attributes, objects, or tags. UI:N: The victim performs a normal, expected action (exporting a report to PDF); no unusual interaction is required to trigger the rendering of the injected content. VC:N: The primary impact is on the output document, not on reading confidential system data. VI:L: The integrity of the exported PDF is compromised by injected markup or incorrect data (hardcoded sample values). VA:N: No denial-of-service impact is evident. SC:N: No confirmed cross-system confidentiality impact. SI:L: The integrity of the exported document (a secondary asset) is affected; injected content could mislead readers or, if the PDF renderer executes scripts, affect the rendering environment. SA:N: No security-relevant impact on other systems is established by the evidence.",
                    "draft": true,
                    "fixSummary": "The fix applies HTML entity encoding (via the h() helper, which wraps htmlspecialchars with ENT_QUOTES and UTF-8) to every user-controlled value interpolated into the HTML templates in the MISPElementHTMLFormatterTool. This ensures that attribute types, values, object names, relations, tag names, and colour values are treated as inert data and cannot inject markup or break out of the surrounding span/style context. The hardcoded sample values in the attribute() template are replaced with proper %s format placeholders so that the actual element data is rendered. Comprehensive unit tests are added to verify both correct rendering and escaping of hostile inputs across all four formatter methods.",
                    "generatedAt": "2026-09-10T13:06:56.823099Z",
                    "generator": "patch2vuln.py",
                    "model": "qwen3.8:27b",
                    "modelComparison": {
                      "rankings": [
                        {
                          "agreementScore": 9,
                          "assumptionCount": 4,
                          "confidence": "medium",
                          "model": "qwen3.8:27b",
                          "score": 6
                        }
                      ],
                      "selectedModel": "qwen3.8:27b",
                      "selectionMethod": "deterministic-consensus-v1",
                      "selectionNotice": "The selected result is closest to model consensus; this heuristic does not establish factual correctness and human review remains required."
                    },
                    "patchSha256": "300efd40407c36caa6b3e4506c389dd7e8c303424e9427b7ef4ad3501be1277a",
                    "patchSummary": "In MISPElementHTMLFormatterTool.php: (1) the attribute() template\u0027s hardcoded \u0027domain-ip\u0027 and \u0027google.com\u0027 strings are replaced with %s placeholders; (2) all sprintf arguments in attribute(), objectAttribute(), object(), and tag() are wrapped with h() to HTML-encode the interpolated values (attribute type, value, object name, object_relation, tag name, colour, text_colour). A new test file MISPElementHTMLFormatterToolTest.php is added with 123 lines of PHPUnit tests covering: correct rendering of real values, HTML escaping of hostile payloads (script tags, span-breaking sequences, CSS attribute breakout via quotes), foreign-tag detection, and placeholder behaviour for objects without attributes.",
                    "patchTruncated": false,
                    "patches": [
                      {
                        "commit": "949744a4b6de919eca07644b6a643de88b706780",
                        "patchSha256": "300efd40407c36caa6b3e4506c389dd7e8c303424e9427b7ef4ad3501be1277a",
                        "source": "https://github.com/MISP/MISP/commit/949744a4b.patch",
                        "sourceUrl": "https://github.com/MISP/MISP/commit/949744a4b.patch",
                        "subject": "fix: [event-report] Render and escape MISP element references"
                      }
                    ],
                    "source": "https://github.com/MISP/MISP/commit/949744a4b.patch",
                    "subject": "fix: [event-report] Render and escape MISP element references",
                    "tagVersionBoundary": {
                      "commits_after_fix": 187,
                      "repository": "https://github.com/MISP/MISP",
                      "tag": "v2.5.46",
                      "version": "2.5.46",
                      "version_type": "semver"
                    },
                    "weaknessRationale": [
                      {
                        "cweId": "CWE-79",
                        "rationale": "User-controlled MISP element values (attribute values, object names, tag names, tag colours) are interpolated into HTML output without encoding, allowing injection of arbitrary HTML markup into the rendered document. Although the output target is a PDF rather than a browser page, the mechanism is identical to stored XSS: untrusted data is embedded in an HTML context without neutralization."
                      },
                      {
                        "cweId": "CWE-116",
                        "rationale": "The root cause is the absence of output encoding (htmlspecialchars) on all interpolated values in the HTML template strings. The tag() method additionally failed to escape colour values that are placed inside a CSS style attribute, enabling attribute-breakout injection."
                      }
                    ]
                  }
                }
              },
              "recordType": "advisory",
              "vulnId": "GCVE-1-2026-20178"
            }
          ]
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
        "assignerShortName": "CIRCL",
        "cveId": "CVE-2026-88921",
        "datePublished": "2026-09-10T13:41:51.214Z",
        "dateReserved": "2026-09-10T13:41:48.297Z",
        "dateUpdated": "2026-09-10T17:02:58.068Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-88915 (GCVE-0-2026-88915)

    Vulnerability from cvelistv5 – Published: 2026-09-10 13:04 – Updated: 2026-09-10 17:33
    VLAI
    Title
    MISP Event Template Instantiation Bypasses Sharing Group and Tagging Authorization
    Summary
    Affected versions of MISP do not consistently enforce the acting user's authorization when instantiating event templates. For templates using distribution = 4, the template can specify a sharing_group_id. The instantiation path passed that value into event creation without verifying that the user instantiating the template was actually permitted to use the selected sharing group. The commit notes that Event::_add() only performed its own sharing-group authorization in another code path, leaving template instantiation able to write the identifier directly. The same instantiation path also attached template-specified tags without checking the user's normal tagging permissions. In addition, it hardcoded local => 0, meaning tags marked local_only could be attached globally and consequently propagate through synchronization or export, contrary to their intended restriction. The fix adds explicit SharingGroup::canUse() authorization for the acting user, applies the same tag-modification checks used by normal event tagging, and ensures local_only tags are attached locally. Version affected: ≤2.5.45
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-10 17:32 UTC
    CWE
    References
    Impacted products
    Vendor Product Version
    MISP MISP Affected: 0 , ≤ 2.5.45 (semver)
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-88915",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-10T17:32:12.621068Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-10T17:33:00.129Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "MISP",
              "repo": "https://github.com/MISP/MISP",
              "vendor": "MISP",
              "versions": [
                {
                  "lessThanOrEqual": "2.5.45",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Scottish Government - National Cyber Team"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "iglocska"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Claude Opus 5 (1M context)"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eAffected versions of MISP do not consistently enforce the acting user\u0027s authorization when instantiating event templates.\u003c/p\u003e\n\u003cp\u003eFor templates using \u003ccode\u003edistribution = 4\u003c/code\u003e, the template can specify a \u003ccode\u003esharing_group_id\u003c/code\u003e. The instantiation path passed that value into event creation without verifying that the user instantiating the template was actually permitted to use the selected sharing group. The commit notes that \u003ccode\u003eEvent::_add()\u003c/code\u003e only performed its own sharing-group authorization in another code path, leaving template instantiation able to write the identifier directly.\u003c/p\u003e\n\u003cp\u003eThe same instantiation path also attached template-specified tags without checking the user\u0027s normal tagging permissions. In addition, it hardcoded \u003ccode\u003elocal =\u0026gt; 0\u003c/code\u003e, meaning tags marked \u003ccode\u003elocal_only\u003c/code\u003e could be attached globally and consequently propagate through synchronization or export, contrary to their intended restriction.\u003c/p\u003e\n\u003cp\u003eThe fix adds explicit \u003ccode\u003eSharingGroup::canUse()\u003c/code\u003e authorization for the acting user, applies the same tag-modification checks used by normal event tagging, and ensures \u003ccode\u003elocal_only\u003c/code\u003e tags are attached locally.\u003c/p\u003eVersion affected: \u22642.5.45\u003cbr\u003e"
                }
              ],
              "value": "Affected versions of MISP do not consistently enforce the acting user\u0027s authorization when instantiating event templates.\n\n\nFor templates using distribution = 4, the template can specify a sharing_group_id. The instantiation path passed that value into event creation without verifying that the user instantiating the template was actually permitted to use the selected sharing group. The commit notes that Event::_add() only performed its own sharing-group authorization in another code path, leaving template instantiation able to write the identifier directly.\n\n\nThe same instantiation path also attached template-specified tags without checking the user\u0027s normal tagging permissions. In addition, it hardcoded local =\u003e 0, meaning tags marked local_only could be attached globally and consequently propagate through synchronization or export, contrary to their intended restriction.\n\n\nThe fix adds explicit SharingGroup::canUse() authorization for the acting user, applies the same tag-modification checks used by normal event tagging, and ensures local_only tags are attached locally.\n\nVersion affected: \u22642.5.45"
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-1",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-1 Accessing Functionality Not Properly Constrained by ACLs"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 7.1,
                "baseSeverity": "HIGH",
                "privilegesRequired": "LOW",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-862",
                  "description": "CWE-862 Missing Authorization",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-10T13:04:03.331Z",
            "orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
            "shortName": "CIRCL"
          },
          "references": [
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/MISP/MISP/commit/3aa3a9a97"
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "title": "MISP Event Template Instantiation Bypasses Sharing Group and Tagging Authorization",
          "x_gcve": [
            {
              "recordType": "advisory",
              "vulnId": "gcve-1-2026-20110"
            }
          ],
          "x_generator": {
            "engine": "Vulnogram 0.2.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
        "assignerShortName": "CIRCL",
        "cveId": "CVE-2026-88915",
        "datePublished": "2026-09-10T13:04:03.331Z",
        "dateReserved": "2026-09-10T13:04:01.032Z",
        "dateUpdated": "2026-09-10T17:33:00.129Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-17038 (GCVE-0-2026-17038)

    Vulnerability from cvelistv5 – Published: 2026-09-10 12:02 – Updated: 2026-09-10 12:43
    VLAI
    Title
    Use of Hard-coded Credentials in drEryk Gabinet
    Summary
    DrEryk Gabinet before 11.5.0 uses hard-coded API credentials in its ticket reporting component. These credentials can be used to authenticate directly to the ticket system API. This allows an attacker to perform privileged operations beyond what is offered by the application, including reading and modifying tickets.
    SSVC
    Exploitation: none Automatable: yes Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-10 12:43 UTC
    CWE
    • CWE-798 - Use of Hard-coded Credentials
    References
    Impacted products
    Vendor Product Version
    drEryk drEryk Gabinet Affected: 0 , < 11.5.0 (custom)
        cpe:2.3:a:dreryk:dreryk_gabinet:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-17038",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "yes"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-10T12:43:25.258222Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-10T12:43:41.758Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "drEryk Gabinet",
              "vendor": "drEryk",
              "versions": [
                {
                  "lessThan": "11.5.0",
                  "status": "affected",
                  "version": "0",
                  "versionType": "custom"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:dreryk:dreryk_gabinet:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "11.5.0",
                      "versionStartIncluding": "0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "OR"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Wojciech Gie\u0142da"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cdiv\u003eDrEryk Gabinet before 11.5.0\u0026nbsp;uses hard-coded API credentials in its ticket reporting component. These credentials can be used to authenticate directly to the ticket system API. This allows an attacker to perform privileged operations beyond what is offered by the application, including reading and modifying tickets.\u003c/div\u003e"
                }
              ],
              "value": "DrEryk Gabinet before 11.5.0\u00a0uses hard-coded API credentials in its ticket reporting component. These credentials can be used to authenticate directly to the ticket system API. This allows an attacker to perform privileged operations beyond what is offered by the application, including reading and modifying tickets."
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 6.9,
                "baseSeverity": "MEDIUM",
                "exploitMaturity": "NOT_DEFINED",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "LOW",
                "vulnIntegrityImpact": "LOW",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-798",
                  "description": "CWE-798 Use of Hard-coded Credentials",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-10T12:02:12.323Z",
            "orgId": "4bb8329e-dd38-46c1-aafb-9bf32bcb93c6",
            "shortName": "CERT-PL"
          },
          "references": [
            {
              "tags": [
                "product"
              ],
              "url": "https://dreryk.pl/produkty/gabinet/"
            },
            {
              "tags": [
                "third-party-advisory"
              ],
              "url": "https://cert.pl/posts/2026/09/CVE-2026-17038"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "Use of Hard-coded Credentials in drEryk Gabinet",
          "x_generator": {
            "engine": "Vulnogram 1.0.3"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "4bb8329e-dd38-46c1-aafb-9bf32bcb93c6",
        "assignerShortName": "CERT-PL",
        "cveId": "CVE-2026-17038",
        "datePublished": "2026-09-10T12:02:12.323Z",
        "dateReserved": "2026-07-24T12:30:14.525Z",
        "dateUpdated": "2026-09-10T12:43:41.758Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-88069 (GCVE-0-2026-88069)

    Vulnerability from cvelistv5 – Published: 2026-09-09 21:37 – Updated: 2026-09-10 13:42
    VLAI
    Title
    Path traversal in Pandora archive extractor allows arbitrary file writes outside the extraction directory in pandora analysis
    Summary
    Pandora contains a path traversal vulnerability in its archive extraction worker. When processing a specially crafted archive or disk image, attacker-controlled file paths could be used without ensuring that the resulting destination remained within the intended extraction directory. An attacker able to submit a malicious file for analysis could use path traversal sequences or crafted paths to cause extracted content to be written outside the designated extraction directory, potentially overwriting files accessible to the Pandora worker process. Successful exploitation could result in unauthorized modification of application or system files, denial of service, and potentially further compromise depending on the permissions of the Pandora process and the files that can be overwritten. The vulnerability is addressed by resolving each extraction destination path before writing and verifying that it remains below the expected extraction directory. Extraction attempts resolving outside this directory are rejected and reported as path traversal attempts.
    SSVC
    Exploitation: none Automatable: yes Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-10 13:42 UTC
    CWE
    • CWE-22 - Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
    References
    Impacted products
    Vendor Product Version
    pandora-analysis pandora Affected: 0 , ≤ 1.12.7 (semver)
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-88069",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "yes"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-10T13:42:38.918892Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-10T13:42:49.609Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "pandora",
              "repo": "https://github.com/pandora-analysis/pandora",
              "vendor": "pandora-analysis",
              "versions": [
                {
                  "lessThanOrEqual": "1.12.7",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Raphael Vinot"
            },
            {
              "lang": "en",
              "type": "finder",
              "value": "Jeroen Pinoy"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003ePandora contains a path traversal vulnerability in its archive extraction worker. When processing a specially crafted archive or disk image, attacker-controlled file paths could be used without ensuring that the resulting destination remained within the intended extraction directory.\u003c/p\u003e\u003cp\u003eAn attacker able to submit a malicious file for analysis could use path traversal sequences or crafted paths to cause extracted content to be written outside the designated extraction directory, potentially overwriting files accessible to the Pandora worker process. Successful exploitation could result in unauthorized modification of application or system files, denial of service, and potentially further compromise depending on the permissions of the Pandora process and the files that can be overwritten.\u003c/p\u003e\u003cp\u003eThe vulnerability is addressed by resolving each extraction destination path before writing and verifying that it remains below the expected extraction directory. Extraction attempts resolving outside this directory are rejected and reported as path traversal attempts.\u003c/p\u003e\u003cbr\u003e"
                }
              ],
              "value": "Pandora contains a path traversal vulnerability in its archive extraction worker. When processing a specially crafted archive or disk image, attacker-controlled file paths could be used without ensuring that the resulting destination remained within the intended extraction directory.\n\nAn attacker able to submit a malicious file for analysis could use path traversal sequences or crafted paths to cause extracted content to be written outside the designated extraction directory, potentially overwriting files accessible to the Pandora worker process. Successful exploitation could result in unauthorized modification of application or system files, denial of service, and potentially further compromise depending on the permissions of the Pandora process and the files that can be overwritten.\n\nThe vulnerability is addressed by resolving each extraction destination path before writing and verifying that it remains below the expected extraction directory. Extraction attempts resolving outside this directory are rejected and reported as path traversal attempts."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-126",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-126 Path Traversal"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 9.3,
                "baseSeverity": "CRITICAL",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "HIGH",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "HIGH",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:H/SA:H",
                "version": "4.0",
                "vulnAvailabilityImpact": "HIGH",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-22",
                  "description": "CWE-22 Improper Limitation of a Pathname to a Restricted Directory (\u0027Path Traversal\u0027)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-09T21:55:26.738Z",
            "orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
            "shortName": "CIRCL"
          },
          "references": [
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/pandora-analysis/pandora/commit/d86ac5b260fb9a41e07f1da1bbd326cdcfc188a7"
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "title": "Path traversal in Pandora archive extractor allows arbitrary file writes outside the extraction directory in pandora analysis",
          "x_gcve": [
            {
              "recordType": "advisory",
              "vulnId": "gcve-1-2026-20209"
            }
          ],
          "x_generator": {
            "engine": "Vulnogram 0.2.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
        "assignerShortName": "CIRCL",
        "cveId": "CVE-2026-88069",
        "datePublished": "2026-09-09T21:37:52.063Z",
        "dateReserved": "2026-09-09T21:36:23.190Z",
        "dateUpdated": "2026-09-10T13:42:49.609Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-87827 (GCVE-0-2026-87827)

    Vulnerability from cvelistv5 – Published: 2026-09-09 10:54 – Updated: 2026-09-09 12:28
    VLAI Previdian
    Title
    KGUARD DVR unauthenticated remote command execution vulnerability
    Summary
    Certain KGUARD DVR devices running vulnerable firmware expose a system command execution service on all network interfaces without requiring authentication. A remote unauthenticated attacker with network access to the affected service can execute arbitrary system commands on the device, potentially resulting in complete compromise of the DVR. The vulnerability is known to have been exploited in the wild by the Mirai_ptea (Rimasuta) and Mirai_aurora botnets for malware propagation and subsequent DDoS activity. The vulnerability was reported to affect firmware dating from 2016, while firmware released after 2017 appears to mitigate the issue by restricting the affected service to the localhost interface (127.0.0.1) instead of exposing it on all interfaces (0.0.0.0). The affected-device list reported by Netlab includes many D1004NR, D1008NR, D1016NR, D1104, D1104NR, D1108NR, D1116NR, D1132NR, D2116NR, D97xx, D98xx, and D99xx variants and several associated hardware revisions The exploit is included in some version of rapperbot and exploited in 2026. This assignment has been made to document the active exploitation and lack of documentation from the vendor.
    SSVC
    Exploitation: none Automatable: yes Technical Impact: total
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-09 12:27 UTC
    CWE
    • CWE-1188 - Insecure Default Initialization of Resource
    References
    Impacted products
    Vendor Product Version
    KGUARD KGUARD_firmware Unknown: 0 , ≤ * (semver)
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-87827",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "yes"
                      },
                      {
                        "Technical Impact": "total"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-09T12:27:47.183838Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-09T12:28:04.444Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "KGUARD_firmware",
              "vendor": "KGUARD",
              "versions": [
                {
                  "lessThanOrEqual": "*",
                  "status": "unknown",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cdiv\u003e\u003c/div\u003e\u003cp\u003eCertain KGUARD DVR devices running vulnerable firmware expose a system command execution service on all network interfaces without requiring authentication. A remote unauthenticated attacker with network access to the affected service can execute arbitrary system commands on the device, potentially resulting in complete compromise of the DVR.\u003c/p\u003e\u003cp\u003eThe vulnerability is known to have been exploited in the wild by the Mirai_ptea (Rimasuta) and Mirai_aurora botnets for malware propagation and subsequent DDoS activity. The vulnerability was reported to affect firmware dating from 2016, while firmware released after 2017 appears to mitigate the issue by restricting the affected service to the localhost interface (\u003ccode\u003e127.0.0.1\u003c/code\u003e) instead of exposing it on all interfaces (\u003ccode\u003e0.0.0.0\u003c/code\u003e).\u003cbr\u003e\u003cbr\u003eThe affected-device list reported by Netlab includes many \u003ccode\u003eD1004NR\u003c/code\u003e, \u003ccode\u003eD1008NR\u003c/code\u003e, \u003ccode\u003eD1016NR\u003c/code\u003e, \u003ccode\u003eD1104\u003c/code\u003e, \u003ccode\u003eD1104NR\u003c/code\u003e, \u003ccode\u003eD1108NR\u003c/code\u003e, \u003ccode\u003eD1116NR\u003c/code\u003e, \u003ccode\u003eD1132NR\u003c/code\u003e, \u003ccode\u003eD2116NR\u003c/code\u003e, \u003ccode\u003eD97xx\u003c/code\u003e, \u003ccode\u003eD98xx\u003c/code\u003e, and \u003ccode\u003eD99xx\u003c/code\u003e variants and several associated hardware revisions\u003cbr\u003e\u003c/p\u003eThe exploit is included in some version of\u0026nbsp;rapperbot and exploited in 2026. This assignment has been made to document the active exploitation and lack of documentation from the vendor.\u003cdiv\u003e\u003c/div\u003e"
                }
              ],
              "value": "Certain KGUARD DVR devices running vulnerable firmware expose a system command execution service on all network interfaces without requiring authentication. A remote unauthenticated attacker with network access to the affected service can execute arbitrary system commands on the device, potentially resulting in complete compromise of the DVR.\n\nThe vulnerability is known to have been exploited in the wild by the Mirai_ptea (Rimasuta) and Mirai_aurora botnets for malware propagation and subsequent DDoS activity. The vulnerability was reported to affect firmware dating from 2016, while firmware released after 2017 appears to mitigate the issue by restricting the affected service to the localhost interface (127.0.0.1) instead of exposing it on all interfaces (0.0.0.0).\n\nThe affected-device list reported by Netlab includes many D1004NR, D1008NR, D1016NR, D1104, D1104NR, D1108NR, D1116NR, D1132NR, D2116NR, D97xx, D98xx, and D99xx variants and several associated hardware revisions\n\n\nThe exploit is included in some version of\u00a0rapperbot and exploited in 2026. This assignment has been made to document the active exploitation and lack of documentation from the vendor."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-115",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-115 Authentication Bypass"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 10,
                "baseSeverity": "CRITICAL",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "HIGH",
                "subConfidentialityImpact": "HIGH",
                "subIntegrityImpact": "HIGH",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H",
                "version": "4.0",
                "vulnAvailabilityImpact": "HIGH",
                "vulnConfidentialityImpact": "HIGH",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-1188",
                  "description": "CWE-1188 Insecure Default Initialization of Resource",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-09T10:54:15.520Z",
            "orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
            "shortName": "CIRCL"
          },
          "references": [
            {
              "tags": [
                "technical-description"
              ],
              "url": "https://blog.netlab.360.com/mirai_ptea-botnet-is-exploiting-undisclosed-kguard-dvr-vulnerability-en/"
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "title": "KGUARD DVR unauthenticated remote command execution vulnerability",
          "x_gcve": [
            {
              "recordType": "advisory",
              "vulnId": "gcve-1-2026-20026"
            }
          ],
          "x_generator": {
            "engine": "Vulnogram 0.2.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
        "assignerShortName": "CIRCL",
        "cveId": "CVE-2026-87827",
        "datePublished": "2026-09-09T10:54:15.520Z",
        "dateReserved": "2026-09-09T10:41:51.238Z",
        "dateUpdated": "2026-09-09T12:28:04.444Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-12858 (GCVE-0-2026-12858)

    Vulnerability from cvelistv5 – Published: 2026-09-09 08:29 – Updated: 2026-09-09 12:57
    VLAI
    Title
    Local privilege escalation vulnerability in ESET AV Remover
    Summary
    Improper Privilege Management vulnerability in ESET AV Remover (standalone) allows Privilege Escalation via especially crafted RPC.
    SSVC
    Exploitation: none Automatable: no Technical Impact: total
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-09 12:57 UTC
    CWE
    • CWE-269 - Improper Privilege Management
    Impacted products
    Vendor Product Version
    ESET spol. s.r.o. ESET AV Remover (standalone) Affected: 0 , ≤ 1.6.11.0 (custom)
    Create a notification for this product.
    Date Public
    2026-09-09 08:00
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-12858",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "total"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-09T12:57:23.380973Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-09T12:57:45.394Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "ESET AV Remover (standalone)",
              "vendor": "ESET spol. s.r.o.",
              "versions": [
                {
                  "changes": [
                    {
                      "at": "1.6.17.0",
                      "status": "unaffected"
                    }
                  ],
                  "lessThanOrEqual": "1.6.11.0",
                  "status": "affected",
                  "version": "0",
                  "versionType": "custom"
                }
              ]
            }
          ],
          "datePublic": "2026-09-09T08:00:00.000Z",
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "Improper Privilege Management vulnerability in ESET AV Remover (standalone) allows Privilege Escalation via especially crafted RPC."
                }
              ],
              "value": "Improper Privilege Management vulnerability in ESET AV Remover (standalone) allows Privilege Escalation via especially crafted RPC."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-233",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-233 Privilege Escalation"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "LOCAL",
                "baseScore": 8.5,
                "baseSeverity": "HIGH",
                "exploitMaturity": "NOT_DEFINED",
                "privilegesRequired": "LOW",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "HIGH",
                "vulnConfidentialityImpact": "HIGH",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-269",
                  "description": "CWE-269 Improper Privilege Management",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-09T08:29:18.906Z",
            "orgId": "4a9b9929-2450-4021-b7b9-469a0255b215",
            "shortName": "ESET"
          },
          "references": [
            {
              "url": "https://support.eset.com/en/ca9000-eset-customer-advisory-local-privilege-escalation-vulnerability-in-eset-av-remover-fixed"
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "title": "Local privilege escalation vulnerability in ESET AV Remover",
          "x_generator": {
            "engine": "Vulnogram 1.0.5"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "4a9b9929-2450-4021-b7b9-469a0255b215",
        "assignerShortName": "ESET",
        "cveId": "CVE-2026-12858",
        "datePublished": "2026-09-09T08:29:18.906Z",
        "dateReserved": "2026-06-22T06:56:40.919Z",
        "dateUpdated": "2026-09-09T12:57:45.394Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-86452 (GCVE-0-2026-86452)

    Vulnerability from cvelistv5 – Published: 2026-09-07 13:03 – Updated: 2026-09-14 06:43
    VLAI
    Title
    MISP Unauthenticated Mail Endpoints Allow Unbounded Storage Consumption and Request Flooding
    Summary
    Affected versions of MISP permit unauthenticated or weakly constrained request paths to perform persistent work without adequate input bounds or rate limiting. The users/forgot password-reset endpoint accepted an attacker-controlled email value without first imposing a reasonable length bound or validating its format. That value was then used to create an audit log entry and queue a password-reset job, causing the supplied value to be persisted more than once per request. The commit explicitly states that an unbounded unauthenticated request field was stored twice per call with no throttle. The fix adds:  - a maximum email input length of 1024 bytes;  - email-format validation before persistent work;  - a per-source pre-authentication request budget;  - HTTP 429 responses when that budget is exceeded;  - a 15-minute cooldown for API-access request emails;  - POST-only handling and CSRF protection for the API-access request endpoint. The new flood filter is specifically intended to limit persistent storage costs from anonymous requests such as password resets, registrations, and failed REST authentication attempts. Version affected: ≤2.5.45
    SSVC
    Exploitation: none Automatable: yes Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-08 14:46 UTC
    CWE
    • CWE-400 - Uncontrolled Resource Consumption
    • CWE-770 - Allocation of Resources Without Limits or Throttling
    References
    Impacted products
    Vendor Product Version
    MISP MISP Affected: 0 , ≤ 2.5.45 (semver)
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-86452",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "yes"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-08T14:46:49.701592Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-08T14:46:58.872Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "MISP",
              "repo": "https://github.com/MISP/MISP",
              "vendor": "MISP",
              "versions": [
                {
                  "lessThanOrEqual": "2.5.45",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Scottish Government - National Cyber Team"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "iglocska"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Claude Opus 5 (1M context)"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eAffected versions of MISP permit unauthenticated or weakly constrained request paths to perform persistent work without adequate input bounds or rate limiting.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eusers/forgot\u003c/code\u003e password-reset endpoint accepted an attacker-controlled email value without first imposing a reasonable length bound or validating its format. That value was then used to create an audit log entry and queue a password-reset job, causing the supplied value to be persisted more than once per request. The commit explicitly states that an \u003cstrong\u003eunbounded unauthenticated request field was stored twice per call with no throttle\u003c/strong\u003e.\u003c/p\u003e\u003cp\u003eThe fix adds:\u003c/p\u003e\u2003-\u0026nbsp;a maximum email input length of 1024 bytes;\u003cbr\u003e\u2003- email-format validation before persistent work;\u003cbr\u003e\u2003- a per-source pre-authentication request budget;\u003cbr\u003e\u2003- HTTP 429 responses when that budget is exceeded;\u003cbr\u003e\u2003-\u0026nbsp;a 15-minute cooldown for API-access request emails;\u003cbr\u003e\u2003-\u0026nbsp;POST-only handling and CSRF protection for the API-access request endpoint.\u003cbr\u003e\u003cdiv\u003e\u003cbr\u003e\u003c/div\u003e\u003cp\u003eThe new flood filter is specifically intended to limit persistent storage costs from anonymous requests such as password resets, registrations, and failed REST authentication attempts.\u003c/p\u003eVersion affected: \u22642.5.45\u003cbr\u003e"
                }
              ],
              "value": "Affected versions of MISP permit unauthenticated or weakly constrained request paths to perform persistent work without adequate input bounds or rate limiting.\n\n\nThe users/forgot password-reset endpoint accepted an attacker-controlled email value without first imposing a reasonable length bound or validating its format. That value was then used to create an audit log entry and queue a password-reset job, causing the supplied value to be persisted more than once per request. The commit explicitly states that an unbounded unauthenticated request field was stored twice per call with no throttle.\n\nThe fix adds:\n\n\u2003-\u00a0a maximum email input length of 1024 bytes;\n\u2003- email-format validation before persistent work;\n\u2003- a per-source pre-authentication request budget;\n\u2003- HTTP 429 responses when that budget is exceeded;\n\u2003-\u00a0a 15-minute cooldown for API-access request emails;\n\u2003-\u00a0POST-only handling and CSRF protection for the API-access request endpoint.\n\n\n\nThe new flood filter is specifically intended to limit persistent storage costs from anonymous requests such as password resets, registrations, and failed REST authentication attempts.\n\nVersion affected: \u22642.5.45"
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-125",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-125 Flooding"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 8.7,
                "baseSeverity": "HIGH",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "HIGH",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-400",
                  "description": "CWE-400 Uncontrolled Resource Consumption",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-770",
                  "description": "CWE-770 Allocation of Resources Without Limits or Throttling",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-14T06:43:39.764Z",
            "orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
            "shortName": "CIRCL"
          },
          "references": [
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/MISP/MISP/commit/d75d899be"
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "title": "MISP Unauthenticated Mail Endpoints Allow Unbounded Storage Consumption and Request Flooding",
          "x_gcve": [
            {
              "recordType": "advisory",
              "vulnId": "gcve-1-2026-20093"
            }
          ],
          "x_generator": {
            "engine": "Vulnogram 0.2.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
        "assignerShortName": "CIRCL",
        "cveId": "CVE-2026-86452",
        "datePublished": "2026-09-07T13:03:27.052Z",
        "dateReserved": "2026-09-07T13:03:25.588Z",
        "dateUpdated": "2026-09-14T06:43:39.764Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-86451 (GCVE-0-2026-86451)

    Vulnerability from cvelistv5 – Published: 2026-09-07 12:59 – Updated: 2026-09-08 14:52
    VLAI
    Title
    MISP Event Graph Object Reference Lookup Exposes References from Unauthorized Objects
    Summary
    Affected versions of MISP allow authenticated users to retrieve object-reference records by UUID through EventGraphTool::get_reference_data() without first checking whether the requester is authorized to view the object the reference belongs to. The vulnerable code queried ObjectReference.uuid directly and returned the matching row whenever it existed. Because no parent-object ACL was applied, a user who knew or obtained a reference UUID could retrieve information associated with an object outside their normal access scope. The commit explicitly states that any object reference could be returned by UUID without authorizing its parent object. The fix retrieves the referenced object's object_id and calls fetchObjectSimple() with the current user. If the user cannot access that parent object, MISP now returns NotFoundException instead of exposing the reference. Version affected: ≤2.5.45
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-08 14:52 UTC
    CWE
    • CWE-639 - Authorization Bypass Through User-Controlled Key
    • CWE-862 - Missing Authorization
    References
    Impacted products
    Vendor Product Version
    MISP MISP Affected: 0 , ≤ 2.5.45 (semver)
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-86451",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-08T14:52:40.900379Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-08T14:52:50.200Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "MISP",
              "programFiles": [
                "app/Lib/Tools/EventGraphTool.php"
              ],
              "repo": "https://github.com/MISP/MISP",
              "vendor": "MISP",
              "versions": [
                {
                  "lessThanOrEqual": "2.5.45",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Scottish Government - National Cyber Team"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "iglocska"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Claude Opus 5 (1M context)"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eAffected versions of MISP allow authenticated users to retrieve object-reference records by UUID through \u003ccode\u003eEventGraphTool::get_reference_data()\u003c/code\u003e without first checking whether the requester is authorized to view the object the reference belongs to.\u003c/p\u003e\n\u003cp\u003eThe vulnerable code queried \u003ccode\u003eObjectReference.uuid\u003c/code\u003e directly and returned the matching row whenever it existed. Because no parent-object ACL was applied, a user who knew or obtained a reference UUID could retrieve information associated with an object outside their normal access scope. The commit explicitly states that \u003cstrong\u003eany object reference could be returned by UUID without authorizing its parent object\u003c/strong\u003e.\u003c/p\u003e\n\u003cp\u003eThe fix retrieves the referenced object\u0027s \u003ccode\u003eobject_id\u003c/code\u003e and calls \u003ccode\u003efetchObjectSimple()\u003c/code\u003e with the current user. If the user cannot access that parent object, MISP now returns \u003ccode\u003eNotFoundException\u003c/code\u003e instead of exposing the reference.\u003c/p\u003eVersion affected: \u22642.5.45\u003cbr\u003e"
                }
              ],
              "value": "Affected versions of MISP allow authenticated users to retrieve object-reference records by UUID through EventGraphTool::get_reference_data() without first checking whether the requester is authorized to view the object the reference belongs to.\n\n\nThe vulnerable code queried ObjectReference.uuid directly and returned the matching row whenever it existed. Because no parent-object ACL was applied, a user who knew or obtained a reference UUID could retrieve information associated with an object outside their normal access scope. The commit explicitly states that any object reference could be returned by UUID without authorizing its parent object.\n\n\nThe fix retrieves the referenced object\u0027s object_id and calls fetchObjectSimple() with the current user. If the user cannot access that parent object, MISP now returns NotFoundException instead of exposing the reference.\n\nVersion affected: \u22642.5.45"
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-1",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-1 Accessing Functionality Not Properly Constrained by ACLs"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 5.3,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "LOW",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "LOW",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-639",
                  "description": "CWE-639 Authorization Bypass Through User-Controlled Key",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-862",
                  "description": "CWE-862 Missing Authorization",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-07T12:59:43.472Z",
            "orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
            "shortName": "CIRCL"
          },
          "references": [
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/MISP/MISP/commit/c0cb5c9f8"
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "title": "MISP Event Graph Object Reference Lookup Exposes References from Unauthorized Objects",
          "x_generator": {
            "engine": "Vulnogram 0.2.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
        "assignerShortName": "CIRCL",
        "cveId": "CVE-2026-86451",
        "datePublished": "2026-09-07T12:59:43.472Z",
        "dateReserved": "2026-09-07T12:59:41.676Z",
        "dateUpdated": "2026-09-08T14:52:50.200Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-86441 (GCVE-0-2026-86441)

    Vulnerability from cvelistv5 – Published: 2026-09-07 12:39 – Updated: 2026-09-08 14:51
    VLAI
    Title
    MISP Dashboard Organisation Widgets Bypass Organisation-Index Restrictions and Expose Hidden Organisation Data
    Summary
    Affected versions of MISP contain inconsistent authorization checks across dashboard widgets that display organisation information. Several organisation-related widgets did not honor Security.hide_organisation_index_from_users. As a result, authenticated users without the perm_sharing_group permission could enumerate organisations even though the normal organisation index was intentionally hidden from them. The affected widgets included paths that: * returned organisation names and identifiers; * could expose additional organisation database fields through JSON export because unrestricted find('all') queries fetched full rows; * accepted limit=0 or negative values in a way that could effectively remove the result limit and return the entire organisation table. A related organisation-contributor leaderboard also ignored the same visibility setting. Its handler counted Event.orgc_id across the entire event table and mapped those IDs to organisation names, revealing every organisation with events regardless of whether the caller could see any of those events. The fix withdraws this widget entirely for users who lack organisation-index visibility. Version affected: ≤2.5.45
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-09-08 14:51 UTC
    CWE
    • CWE-862 - Missing Authorization
    • CWE-200 - Exposure of Sensitive Information to an Unauthorized Actor
    Impacted products
    Vendor Product Version
    MISP MISP Affected: 0 , ≤ 2.5.45 (semver)
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-86441",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-08T14:51:48.250369Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-08T14:51:56.217Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "MISP",
              "programFiles": [
                "app/Lib/Dashboard/NewOrgsWidget.php",
                "app/Lib/Dashboard/OrgsContributorsGeneric.php",
                "app/Lib/Dashboard/OrgContributionToplistWidget.php"
              ],
              "repo": "https://github.com/MISP/MISP",
              "vendor": "MISP",
              "versions": [
                {
                  "lessThanOrEqual": "2.5.45",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Scottish Government - National Cyber Team"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "iglocska"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Claude Opus 5 (1M context)"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eAffected versions of MISP contain inconsistent authorization checks across dashboard widgets that display organisation information.\u003c/p\u003e\n\u003cp\u003eSeveral organisation-related widgets did not honor \u003ccode\u003eSecurity.hide_organisation_index_from_users\u003c/code\u003e. As a result, authenticated users without the \u003ccode\u003eperm_sharing_group\u003c/code\u003e permission could enumerate organisations even though the normal organisation index was intentionally hidden from them.\u003c/p\u003e\n\u003cp\u003eThe affected widgets included paths that:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\nreturned organisation names and identifiers;\n\u003c/li\u003e\n\u003cli\u003e\ncould expose additional organisation database fields through JSON export because unrestricted \u003ccode\u003efind(\u0027all\u0027)\u003c/code\u003e queries fetched full rows;\n\u003c/li\u003e\n\u003cli\u003e\naccepted \u003ccode\u003elimit=0\u003c/code\u003e or negative values in a way that could effectively remove the result limit and return the entire organisation table.\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eA related organisation-contributor leaderboard also ignored the same visibility setting. Its handler counted \u003ccode\u003eEvent.orgc_id\u003c/code\u003e across the entire event table and mapped those IDs to organisation names, revealing every organisation with events regardless of whether the caller could see any of those events. The fix withdraws this widget entirely for users who lack organisation-index visibility.\u003c/p\u003eVersion affected: \u22642.5.45\u003cbr\u003e"
                }
              ],
              "value": "Affected versions of MISP contain inconsistent authorization checks across dashboard widgets that display organisation information.\n\n\nSeveral organisation-related widgets did not honor Security.hide_organisation_index_from_users. As a result, authenticated users without the perm_sharing_group permission could enumerate organisations even though the normal organisation index was intentionally hidden from them.\n\n\nThe affected widgets included paths that:\n\n\n\n  *  \nreturned organisation names and identifiers;\n\n\n  *  \ncould expose additional organisation database fields through JSON export because unrestricted find(\u0027all\u0027) queries fetched full rows;\n\n\n  *  \naccepted limit=0 or negative values in a way that could effectively remove the result limit and return the entire organisation table.\n\n\n\n\n\nA related organisation-contributor leaderboard also ignored the same visibility setting. Its handler counted Event.orgc_id across the entire event table and mapped those IDs to organisation names, revealing every organisation with events regardless of whether the caller could see any of those events. The fix withdraws this widget entirely for users who lack organisation-index visibility.\n\nVersion affected: \u22642.5.45"
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-1",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-1 Accessing Functionality Not Properly Constrained by ACLs"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 2.3,
                "baseSeverity": "LOW",
                "privilegesRequired": "LOW",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "LOW",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-862",
                  "description": "CWE-862 Missing Authorization",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-200",
                  "description": "CWE-200 Exposure of Sensitive Information to an Unauthorized Actor",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-07T12:39:20.835Z",
            "orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
            "shortName": "CIRCL"
          },
          "references": [
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/MISP/MISP/commit/67892d90e"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/MISP/MISP/commit/5e333a159.patch"
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "title": "MISP Dashboard Organisation Widgets Bypass Organisation-Index Restrictions and Expose Hidden Organisation Data",
          "x_generator": {
            "engine": "Vulnogram 0.2.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
        "assignerShortName": "CIRCL",
        "cveId": "CVE-2026-86441",
        "datePublished": "2026-09-07T12:39:20.835Z",
        "dateReserved": "2026-09-07T12:39:17.495Z",
        "dateUpdated": "2026-09-08T14:51:56.217Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }