CVE-2026-95679 (GCVE-0-2026-95679)
Vulnerability from cvelistv5
Published
2026-09-22 13:50
Modified
2026-09-22 15:37
Severity ?
VLAI Severity ?
EPSS score ?
Summary
MISP's RequestHandlerComponent automatically decodes XML request bodies on all write requests. The underlying Xml::build() library contains a logic error in its readFile guard condition (readFile && http || https), where PHP operator precedence causes the https branch to bypass the readFile check entirely. As a result, a request body containing a bare HTTPS URL is treated as a locator and fetched by the server. Because the cspReport endpoint accepts XML content type and is unauthenticated by design, an unauthenticated remote attacker can send a POST request with a crafted XML body to cause the MISP server to issue an outbound HTTPS request to an arbitrary target reachable from the server.
The attacker does not receive the response body, but can use the vulnerability to probe internal services, trigger actions on internal HTTPS endpoints, or perform timing-based reconnaissance of the server's network environment.
The vulnerability affects any MISP deployment where the cspReport endpoint is reachable and the server has network access to internal or external HTTPS services.
References
| URL | Tags | |
|---|---|---|
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-95679",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-09-22T15:36:14.509188Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-09-22T15:37:46.734Z",
"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.47",
"status": "affected",
"version": "0",
"versionType": "semver"
}
]
}
],
"credits": [
{
"lang": "en",
"type": "reporter",
"value": "Niels Teusink of Eye Security"
},
{
"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\u0027s RequestHandlerComponent automatically decodes XML request bodies on all write requests. The underlying Xml::build() library contains a logic error in its readFile guard condition (readFile \u0026amp;\u0026amp; http || https), where PHP operator precedence causes the https branch to bypass the readFile check entirely. As a result, a request body containing a bare HTTPS URL is treated as a locator and fetched by the server. Because the cspReport endpoint accepts XML content type and is unauthenticated by design, an unauthenticated remote attacker can send a POST request with a crafted XML body to cause the MISP server to issue an outbound HTTPS request to an arbitrary target reachable from the server.\u003c/p\u003e\u003cp\u003eThe attacker does not receive the response body, but can use the vulnerability to probe internal services, trigger actions on internal HTTPS endpoints, or perform timing-based reconnaissance of the server\u0027s network environment.\u0026nbsp;\u003c/p\u003e\u003cp\u003eThe vulnerability affects any MISP deployment where the cspReport endpoint is reachable and the server has network access to internal or external HTTPS services.\u003c/p\u003e"
}
],
"value": "MISP\u0027s RequestHandlerComponent automatically decodes XML request bodies on all write requests. The underlying Xml::build() library contains a logic error in its readFile guard condition (readFile \u0026\u0026 http || https), where PHP operator precedence causes the https branch to bypass the readFile check entirely. As a result, a request body containing a bare HTTPS URL is treated as a locator and fetched by the server. Because the cspReport endpoint accepts XML content type and is unauthenticated by design, an unauthenticated remote attacker can send a POST request with a crafted XML body to cause the MISP server to issue an outbound HTTPS request to an arbitrary target reachable from the server.\n\nThe attacker does not receive the response body, but can use the vulnerability to probe internal services, trigger actions on internal HTTPS endpoints, or perform timing-based reconnaissance of the server\u0027s network environment.\u00a0\n\nThe vulnerability affects any MISP deployment where the cspReport endpoint is reachable and the server has network access to internal or external HTTPS services."
}
],
"impacts": [
{
"capecId": "CAPEC-12",
"descriptions": [
{
"lang": "en",
"value": "CAPEC-12 Exploiting Unsafe Default Behavior"
}
]
}
],
"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: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-918",
"description": "CWE-918 Server-Side Request Forgery (SSRF)",
"lang": "en",
"type": "CWE"
}
]
},
{
"descriptions": [
{
"cweId": "CWE-20",
"description": "CWE-20 Improper Input Validation",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-09-22T13:50:48.696Z",
"orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
"shortName": "CIRCL"
},
"references": [
{
"name": "Security patch",
"tags": [
"patch"
],
"url": "https://github.com/MISP/MISP/commit/716fc49d3"
}
],
"solutions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/html",
"value": "\u003cp\u003eThe fix introduces a custom XML input type handler in AppController::beforeFilter() that validates the request body contains an XML document marker (the \u0026lt; character) before passing it to the XML decoder. If the body does not contain \u0026lt;, it returns an empty array, preventing the Xml::build() locator/fetch code path from being reached regardless of the vendored library\u0027s internal guard logic. This ensures only actual XML documents are processed, eliminating the SSRF vector.\u003c/p\u003e"
}
],
"value": "The fix introduces a custom XML input type handler in AppController::beforeFilter() that validates the request body contains an XML document marker (the \u003c character) before passing it to the XML decoder. If the body does not contain \u003c, it returns an empty array, preventing the Xml::build() locator/fetch code path from being reached regardless of the vendored library\u0027s internal guard logic. This ensures only actual XML documents are processed, eliminating the SSRF vector."
}
],
"title": "MISP Unauthenticated Blind SSRF via XML Body Processing",
"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": "full",
"scope": "record",
"tags": [
"ai-computer-assisted:llm-generated",
"ai-computer-assisted:classification"
]
}
]
},
"bcp-05-x-02": {
"x_patch2vuln": {
"assumptions": [
"The cspReport endpoint is unauthenticated by design, as stated in the commit message.",
"The SSRF is limited to HTTPS targets because the operator precedence bug only ungates the https branch of the readFile guard.",
"The SSRF is blind: the fetched response is not returned to the attacker, limiting direct data exfiltration.",
"The exact affected version range before 2.5.47 is not precisely determined; the tag boundary indicates the fix is included in v2.5.47.",
"CAPEC-12 is the closest available mapping; the attack is more specifically about exploiting a logic error in input validation within an automatic content-type handler rather than a purely misconfigured default.",
"CVSS impact metrics are set to None based on the blind nature of the SSRF; if the server processes the fetched response in a way that leaks data or triggers actions on internal services, the impact could be higher.",
"The vendored Xml::build() library\u0027s behavior with a locator (fetching the URL) is taken from the commit message description; the actual library code was not included in the patch."
],
"capecRationale": [
{
"capecId": "CAPEC-12",
"rationale": "The framework\u0027s default behavior is to automatically decode any XML-typed request body through Xml::build() without validating that the body is actually an XML document. This unsafe default, combined with a logic error in the vendored library\u0027s guard condition, allows an attacker to exploit the default processing path to trigger an outbound request. CAPEC-12 is the closest available mapping; the attack is more specifically about exploiting a logic error in input validation within the default processing pipeline rather than a purely misconfigured default. No CAPEC entry more precisely describes SSRF via unvalidated input in an automatic content-type handler."
}
],
"commit": "716fc49d3816dd17d8aeeee074a12f430edc2a55",
"confidence": "medium",
"credits": [
{
"lang": "en",
"type": "reporter",
"value": "Niels Teusink of Eye Security"
},
{
"lang": "en",
"type": "remediation developer",
"value": "iglocska"
},
{
"lang": "en",
"type": "remediation developer",
"value": "Claude Opus 5 (1M context)"
}
],
"cvssRationale": "AV:N: The cspReport endpoint is network-accessible. AC:L: The attack requires only a POST request with a specific Content-Type and a URL as the body; no race conditions or complex setup. AT:N: No attack target manipulation is required. PR:N: The cspReport endpoint is unauthenticated by design. UI:N: No user interaction is needed. VC/VI/VA:N: The SSRF is blind; the response is not returned to the attacker, and there is no direct impact on MISP\u0027s confidentiality, integrity, or availability. SC/SI/SA:N: The blind nature means no data from secondary systems is exfiltrated to the attacker, and no confirmed integrity or availability impact on secondary systems is evidenced. Note: if the server processes the fetched response in a way that leaks data or triggers side effects on internal services, the secondary impact metrics could be higher; this is not confirmed by the available evidence.",
"fixSummary": "The fix introduces a custom XML input type handler in AppController::beforeFilter() that validates the request body contains an XML document marker (the \u003c character) before passing it to the XML decoder. If the body does not contain \u003c, it returns an empty array, preventing the Xml::build() locator/fetch code path from being reached regardless of the vendored library\u0027s internal guard logic. This ensures only actual XML documents are processed, eliminating the SSRF vector.",
"generatedAt": "2026-09-22T13:46:08.714767Z",
"generator": "patch2vuln.py",
"model": "qwen3.8:27b",
"modelComparison": {
"rankings": [
{
"agreementScore": 9,
"assumptionCount": 7,
"confidence": "medium",
"model": "qwen3.8:27b",
"score": 3
}
],
"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": "99e7ef2fbd5abebda159b377fe3bb3f75026c9966eb556d2d713642448af9d60",
"patchSummary": "Adds 15 lines to app/Controller/AppController.php in the beforeFilter() method. Registers a custom XML input type via RequestHandler-\u003eaddInputType(\u0027xml\u0027, ...) with a closure that checks whether the body is a string containing the \u003c character. If not, it returns an empty array (no decoding). If yes, it delegates to RequestHandler-\u003econvertXml(). This ensures only actual XML documents are processed, preventing bare URLs from being interpreted as fetch locators by the vendored Xml::build() library.",
"patchTruncated": false,
"patches": [
{
"commit": "716fc49d3816dd17d8aeeee074a12f430edc2a55",
"patchSha256": "99e7ef2fbd5abebda159b377fe3bb3f75026c9966eb556d2d713642448af9d60",
"source": "https://github.com/MISP/MISP/commit/716fc49d3.patch",
"sourceUrl": "https://github.com/MISP/MISP/commit/716fc49d3.patch",
"subject": "fix: [security] Decode only an XML body that is actually a"
}
],
"source": "https://github.com/MISP/MISP/commit/716fc49d3.patch",
"subject": "fix: [security] Decode only an XML body that is actually a",
"tagVersionBoundary": {
"commits_after_fix": 41,
"repository": "https://github.com/MISP/MISP",
"tag": "v2.5.47",
"version": "2.5.47",
"version_type": "semver"
},
"weaknessRationale": [
{
"cweId": "CWE-918",
"rationale": "The vulnerability allows an unauthenticated attacker to cause the MISP server to issue outbound HTTPS requests to arbitrary attacker-specified URLs by sending a crafted XML body to the cspReport endpoint. The server fetches the URL as if it were an XML document locator, constituting a blind SSRF."
},
{
"cweId": "CWE-20",
"rationale": "The root cause is that the XML request body is not validated to confirm it is an actual XML document before being passed to Xml::build(). The framework\u0027s default behavior treats any XML content-type body as a document without checking for document structure, allowing a bare URL to be interpreted as a fetch locator."
}
]
}
}
},
"recordType": "advisory",
"vulnId": "GCVE-1-2026-20205"
}
]
}
},
"cveMetadata": {
"assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
"assignerShortName": "CIRCL",
"cveId": "CVE-2026-95679",
"datePublished": "2026-09-22T13:50:48.696Z",
"dateReserved": "2026-09-22T13:50:46.243Z",
"dateUpdated": "2026-09-22T15:37:46.734Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"vulnrichment": {
"containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2026-95679\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"yes\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2026-09-22T15:36:14.509188Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2026-09-22T15:36:18.794Z\"}}], \"cna\": {\"title\": \"MISP Unauthenticated Blind SSRF via XML Body Processing\", \"x_gcve\": [{\"vulnId\": \"GCVE-1-2026-20205\", \"extensions\": {\"bcp-05-x-01\": {\"ai_annotations\": [{\"tags\": [\"ai-computer-assisted:llm-generated\", \"ai-computer-assisted:classification\"], \"scope\": \"record\", \"models\": [{\"name\": \"qwen3.8:27b\", \"source\": \"ollama\", \"gna_source\": 1, \"identifier\": \"qwen3.8:27b\"}], \"ai_level\": \"generated\", \"gna_source\": 1, \"description\": \"Draft vulnerability metadata was generated from a git-format patch using an Ollama-hosted language model. Human validation is required before publication.\", \"review_status\": \"full\"}]}, \"bcp-05-x-02\": {\"x_patch2vuln\": {\"model\": \"qwen3.8:27b\", \"commit\": \"716fc49d3816dd17d8aeeee074a12f430edc2a55\", \"source\": \"https://github.com/MISP/MISP/commit/716fc49d3.patch\", \"credits\": [{\"lang\": \"en\", \"type\": \"reporter\", \"value\": \"Niels Teusink of Eye Security\"}, {\"lang\": \"en\", \"type\": \"remediation developer\", \"value\": \"iglocska\"}, {\"lang\": \"en\", \"type\": \"remediation developer\", \"value\": \"Claude Opus 5 (1M context)\"}], \"patches\": [{\"commit\": \"716fc49d3816dd17d8aeeee074a12f430edc2a55\", \"source\": \"https://github.com/MISP/MISP/commit/716fc49d3.patch\", \"subject\": \"fix: [security] Decode only an XML body that is actually a\", \"sourceUrl\": \"https://github.com/MISP/MISP/commit/716fc49d3.patch\", \"patchSha256\": \"99e7ef2fbd5abebda159b377fe3bb3f75026c9966eb556d2d713642448af9d60\"}], \"subject\": \"fix: [security] Decode only an XML body that is actually a\", \"generator\": \"patch2vuln.py\", \"confidence\": \"medium\", \"fixSummary\": \"The fix introduces a custom XML input type handler in AppController::beforeFilter() that validates the request body contains an XML document marker (the \u003c character) before passing it to the XML decoder. If the body does not contain \u003c, it returns an empty array, preventing the Xml::build() locator/fetch code path from being reached regardless of the vendored library\u0027s internal guard logic. This ensures only actual XML documents are processed, eliminating the SSRF vector.\", \"assumptions\": [\"The cspReport endpoint is unauthenticated by design, as stated in the commit message.\", \"The SSRF is limited to HTTPS targets because the operator precedence bug only ungates the https branch of the readFile guard.\", \"The SSRF is blind: the fetched response is not returned to the attacker, limiting direct data exfiltration.\", \"The exact affected version range before 2.5.47 is not precisely determined; the tag boundary indicates the fix is included in v2.5.47.\", \"CAPEC-12 is the closest available mapping; the attack is more specifically about exploiting a logic error in input validation within an automatic content-type handler rather than a purely misconfigured default.\", \"CVSS impact metrics are set to None based on the blind nature of the SSRF; if the server processes the fetched response in a way that leaks data or triggers actions on internal services, the impact could be higher.\", \"The vendored Xml::build() library\u0027s behavior with a locator (fetching the URL) is taken from the commit message description; the actual library code was not included in the patch.\"], \"generatedAt\": \"2026-09-22T13:46:08.714767Z\", \"patchSha256\": \"99e7ef2fbd5abebda159b377fe3bb3f75026c9966eb556d2d713642448af9d60\", \"patchSummary\": \"Adds 15 lines to app/Controller/AppController.php in the beforeFilter() method. Registers a custom XML input type via RequestHandler-\u003eaddInputType(\u0027xml\u0027, ...) with a closure that checks whether the body is a string containing the \u003c character. If not, it returns an empty array (no decoding). If yes, it delegates to RequestHandler-\u003econvertXml(). This ensures only actual XML documents are processed, preventing bare URLs from being interpreted as fetch locators by the vendored Xml::build() library.\", \"cvssRationale\": \"AV:N: The cspReport endpoint is network-accessible. AC:L: The attack requires only a POST request with a specific Content-Type and a URL as the body; no race conditions or complex setup. AT:N: No attack target manipulation is required. PR:N: The cspReport endpoint is unauthenticated by design. UI:N: No user interaction is needed. VC/VI/VA:N: The SSRF is blind; the response is not returned to the attacker, and there is no direct impact on MISP\u0027s confidentiality, integrity, or availability. SC/SI/SA:N: The blind nature means no data from secondary systems is exfiltrated to the attacker, and no confirmed integrity or availability impact on secondary systems is evidenced. Note: if the server processes the fetched response in a way that leaks data or triggers side effects on internal services, the secondary impact metrics could be higher; this is not confirmed by the available evidence.\", \"capecRationale\": [{\"capecId\": \"CAPEC-12\", \"rationale\": \"The framework\u0027s default behavior is to automatically decode any XML-typed request body through Xml::build() without validating that the body is actually an XML document. This unsafe default, combined with a logic error in the vendored library\u0027s guard condition, allows an attacker to exploit the default processing path to trigger an outbound request. CAPEC-12 is the closest available mapping; the attack is more specifically about exploiting a logic error in input validation within the default processing pipeline rather than a purely misconfigured default. No CAPEC entry more precisely describes SSRF via unvalidated input in an automatic content-type handler.\"}], \"patchTruncated\": false, \"modelComparison\": {\"rankings\": [{\"model\": \"qwen3.8:27b\", \"score\": 3, \"confidence\": \"medium\", \"agreementScore\": 9, \"assumptionCount\": 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.\"}, \"weaknessRationale\": [{\"cweId\": \"CWE-918\", \"rationale\": \"The vulnerability allows an unauthenticated attacker to cause the MISP server to issue outbound HTTPS requests to arbitrary attacker-specified URLs by sending a crafted XML body to the cspReport endpoint. The server fetches the URL as if it were an XML document locator, constituting a blind SSRF.\"}, {\"cweId\": \"CWE-20\", \"rationale\": \"The root cause is that the XML request body is not validated to confirm it is an actual XML document before being passed to Xml::build(). The framework\u0027s default behavior treats any XML content-type body as a document without checking for document structure, allowing a bare URL to be interpreted as a fetch locator.\"}], \"tagVersionBoundary\": {\"tag\": \"v2.5.47\", \"version\": \"2.5.47\", \"repository\": \"https://github.com/MISP/MISP\", \"version_type\": \"semver\", \"commits_after_fix\": 41}}}}, \"recordType\": \"advisory\"}], \"credits\": [{\"lang\": \"en\", \"type\": \"reporter\", \"value\": \"Niels Teusink of Eye Security\"}, {\"lang\": \"en\", \"type\": \"remediation developer\", \"value\": \"iglocska\"}, {\"lang\": \"en\", \"type\": \"remediation developer\", \"value\": \"Claude Opus 5 (1M context)\"}], \"impacts\": [{\"capecId\": \"CAPEC-12\", \"descriptions\": [{\"lang\": \"en\", \"value\": \"CAPEC-12 Exploiting Unsafe Default Behavior\"}]}], \"metrics\": [{\"format\": \"CVSS\", \"cvssV4_0\": {\"Safety\": \"NOT_DEFINED\", \"version\": \"4.0\", \"Recovery\": \"NOT_DEFINED\", \"baseScore\": 6.9, \"Automatable\": \"NOT_DEFINED\", \"attackVector\": \"NETWORK\", \"baseSeverity\": \"MEDIUM\", \"valueDensity\": \"NOT_DEFINED\", \"vectorString\": \"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N\", \"providerUrgency\": \"NOT_DEFINED\", \"userInteraction\": \"NONE\", \"attackComplexity\": \"LOW\", \"attackRequirements\": \"NONE\", \"privilegesRequired\": \"NONE\", \"subIntegrityImpact\": \"NONE\", \"vulnIntegrityImpact\": \"NONE\", \"subAvailabilityImpact\": \"NONE\", \"vulnAvailabilityImpact\": \"NONE\", \"subConfidentialityImpact\": \"NONE\", \"vulnConfidentialityImpact\": \"LOW\", \"vulnerabilityResponseEffort\": \"NOT_DEFINED\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"GENERAL\"}]}], \"affected\": [{\"repo\": \"https://github.com/MISP/MISP\", \"vendor\": \"MISP\", \"modules\": [\"app/Controller/AppController.php\"], \"product\": \"MISP\", \"versions\": [{\"status\": \"affected\", \"version\": \"0\", \"lessThan\": \"2.5.47\", \"versionType\": \"semver\"}], \"programFiles\": [\"app/Controller/AppController.php\"]}], \"solutions\": [{\"lang\": \"en\", \"value\": \"The fix introduces a custom XML input type handler in AppController::beforeFilter() that validates the request body contains an XML document marker (the \u003c character) before passing it to the XML decoder. If the body does not contain \u003c, it returns an empty array, preventing the Xml::build() locator/fetch code path from being reached regardless of the vendored library\u0027s internal guard logic. This ensures only actual XML documents are processed, eliminating the SSRF vector.\", \"supportingMedia\": [{\"type\": \"text/html\", \"value\": \"\u003cp\u003eThe fix introduces a custom XML input type handler in AppController::beforeFilter() that validates the request body contains an XML document marker (the \u0026lt; character) before passing it to the XML decoder. If the body does not contain \u0026lt;, it returns an empty array, preventing the Xml::build() locator/fetch code path from being reached regardless of the vendored library\u0027s internal guard logic. This ensures only actual XML documents are processed, eliminating the SSRF vector.\u003c/p\u003e\", \"base64\": false}]}], \"references\": [{\"url\": \"https://github.com/MISP/MISP/commit/716fc49d3\", \"name\": \"Security patch\", \"tags\": [\"patch\"]}], \"descriptions\": [{\"lang\": \"en\", \"value\": \"MISP\u0027s RequestHandlerComponent automatically decodes XML request bodies on all write requests. The underlying Xml::build() library contains a logic error in its readFile guard condition (readFile \u0026\u0026 http || https), where PHP operator precedence causes the https branch to bypass the readFile check entirely. As a result, a request body containing a bare HTTPS URL is treated as a locator and fetched by the server. Because the cspReport endpoint accepts XML content type and is unauthenticated by design, an unauthenticated remote attacker can send a POST request with a crafted XML body to cause the MISP server to issue an outbound HTTPS request to an arbitrary target reachable from the server.\\n\\nThe attacker does not receive the response body, but can use the vulnerability to probe internal services, trigger actions on internal HTTPS endpoints, or perform timing-based reconnaissance of the server\u0027s network environment.\\u00a0\\n\\nThe vulnerability affects any MISP deployment where the cspReport endpoint is reachable and the server has network access to internal or external HTTPS services.\", \"supportingMedia\": [{\"type\": \"text/html\", \"value\": \"\u003cp\u003eMISP\u0027s RequestHandlerComponent automatically decodes XML request bodies on all write requests. The underlying Xml::build() library contains a logic error in its readFile guard condition (readFile \u0026amp;\u0026amp; http || https), where PHP operator precedence causes the https branch to bypass the readFile check entirely. As a result, a request body containing a bare HTTPS URL is treated as a locator and fetched by the server. Because the cspReport endpoint accepts XML content type and is unauthenticated by design, an unauthenticated remote attacker can send a POST request with a crafted XML body to cause the MISP server to issue an outbound HTTPS request to an arbitrary target reachable from the server.\u003c/p\u003e\u003cp\u003eThe attacker does not receive the response body, but can use the vulnerability to probe internal services, trigger actions on internal HTTPS endpoints, or perform timing-based reconnaissance of the server\u0027s network environment.\u0026nbsp;\u003c/p\u003e\u003cp\u003eThe vulnerability affects any MISP deployment where the cspReport endpoint is reachable and the server has network access to internal or external HTTPS services.\u003c/p\u003e\", \"base64\": false}]}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-918\", \"description\": \"CWE-918 Server-Side Request Forgery (SSRF)\"}]}, {\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-20\", \"description\": \"CWE-20 Improper Input Validation\"}]}], \"providerMetadata\": {\"orgId\": \"5a6e4751-2f3f-4070-9419-94fb35b644e8\", \"shortName\": \"CIRCL\", \"dateUpdated\": \"2026-09-22T13:50:48.696Z\"}}}",
"cveMetadata": "{\"cveId\": \"CVE-2026-95679\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-09-22T15:37:46.734Z\", \"dateReserved\": \"2026-09-22T13:50:46.243Z\", \"assignerOrgId\": \"5a6e4751-2f3f-4070-9419-94fb35b644e8\", \"datePublished\": \"2026-09-22T13:50:48.696Z\", \"assignerShortName\": \"CIRCL\"}",
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
}
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.
Loading…
Loading…