MISP mispguard: Feed responses with 2xx status codes other than 200 bypass filtering rules
MISP mispguard is a security filtering proxy that inspects and blocks MISP feed responses based on configured rules. The process_feed_response method in src/mispguard.py was responsible for evaluating feed responses before they reached the MISP instance. The original logic only explicitly handled the case where the HTTP status code was not 200 by passing the response through without filtering, on the assumption that non-200 responses would not carry ingestible event data. However, HTTP 2xx status codes other than 200 (such as 201 Created, 203 Non-Authoritative Information, and 206 Partial Content) were also passed through unfiltered. Because MISP may still ingest content from these responses, a malicious or compromised feed host could return a 203 or 206 status code with arbitrary content, effectively bypassing all of mispguard's filtering rules. This allowed unfiltered or malicious feed data to be ingested into the MISP instance, undermining the security controls that mispguard is designed to enforce. The vulnerability requires the attacker to control or compromise a feed endpoint configured in the MISP instance. No authentication or user interaction is required beyond the feed polling mechanism already in place.
- Products
- misp-guard
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-116372
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 29 Oct 2026, 21:33 UTC · Revision 1
Source evidence
MISP mispguard: Feed responses with 2xx status codes other than 200 bypass filtering rules
core-cve · Original sourcePublished 26 Oct 2026, 08:36 UTC
MISP mispguard is a security filtering proxy that inspects and blocks MISP feed responses based on configured rules. The process_feed_response method in src/mispguard.py was responsible for evaluating feed responses before they reached the MISP instance. The original logic only explicitly handled the case where the HTTP status code was not 200 by passing the response through without filtering, on the assumption that non-200 responses would not carry ingestible event data. However, HTTP 2xx status codes other than 200 (such as 201 Created, 203 Non-Authoritative Information, and 206 Partial Content) were also passed through unfiltered. Because MISP may still ingest content from these responses, a malicious or compromised feed host could return a 203 or 206 status code with arbitrary content, effectively bypassing all of mispguard's filtering rules. This allowed unfiltered or malicious feed data to be ingested into the MISP instance, undermining the security controls that mispguard is designed to enforce. The vulnerability requires the attacker to control or compromise a feed endpoint configured in the MISP instance. No authentication or user interaction is required beyond the feed polling mechanism already in place.
cve:CVE-2026-116372
misp-guard
Fixed versions: Not specified
Complete source record
{
"id": "32aabdcb8cec72f5f02c38873003f7b665b7db9c1ca98ea3ac87ddaaa9f1399c",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-116372",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "MISP mispguard: Feed responses with 2xx status codes other than 200 bypass filtering rules",
"summary": "MISP mispguard is a security filtering proxy that inspects and blocks MISP feed responses based on configured rules. The process_feed_response method in src/mispguard.py was responsible for evaluating feed responses before they reached the MISP instance. The original logic only explicitly handled the case where the HTTP status code was not 200 by passing the response through without filtering, on the assumption that non-200 responses would not carry ingestible event data. However, HTTP 2xx status codes other than 200 (such as 201 Created, 203 Non-Authoritative Information, and 206 Partial Content) were also passed through unfiltered. Because MISP may still ingest content from these responses, a malicious or compromised feed host could return a 203 or 206 status code with arbitrary content, effectively bypassing all of mispguard's filtering rules. This allowed unfiltered or malicious feed data to be ingested into the MISP instance, undermining the security controls that mispguard is designed to enforce. The vulnerability requires the attacker to control or compromise a feed endpoint configured in the MISP instance. No authentication or user interaction is required beyond the feed polling mechanism already in place.",
"evidence": "cve:CVE-2026-116372",
"products": [
{
"name": {
"value": "misp-guard",
"evidence": "/containers/cna/affected/0/product"
},
"prerequisites": [],
"fixed_versions": [],
"affected_versions": []
}
],
"severity": "high",
"structured": {
"id": "CVE-2026-116372",
"aliases": [
"CVE-2026-116372"
],
"metrics": [
{
"format": "CVSS",
"cvssV4_0": {
"Safety": "NOT_DEFINED",
"version": "4.0",
"Recovery": "NOT_DEFINED",
"baseScore": 7.7,
"Automatable": "NOT_DEFINED",
"attackVector": "NETWORK",
"baseSeverity": "HIGH",
"valueDensity": "NOT_DEFINED",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/SC:N/SI:H/SA:N",
"providerUrgency": "NOT_DEFINED",
"userInteraction": "NONE",
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"privilegesRequired": "NONE",
"subIntegrityImpact": "HIGH",
"vulnIntegrityImpact": "NONE",
"subAvailabilityImpact": "NONE",
"vulnAvailabilityImpact": "NONE",
"subConfidentialityImpact": "NONE",
"vulnConfidentialityImpact": "NONE",
"vulnerabilityResponseEffort": "NOT_DEFINED"
},
"scenarios": [
{
"lang": "en",
"value": "GENERAL"
}
]
},
{
"other": {
"type": "SSVC",
"content": {
"role": "Supplier",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"version": "2.0.3",
"timestamp": "2026-10-26T08:33:29Z"
}
},
"format": "SSVC",
"scenarios": [
{
"lang": "en",
"value": "GENERAL"
}
]
}
],
"affected": [
{
"cpes": [
"cpe:2.3:a:misp:misp-guard:*:*:*:*:*:*:*:*"
],
"repo": "https://github.com/MISP/misp-guard",
"vendor": "MISP",
"modules": [
"src/mispguard.py (process_feed_response)"
],
"product": "misp-guard",
"versions": [
{
"status": "affected",
"version": "0",
"versionType": "semver",
"lessThanOrEqual": "1.3"
}
],
"programFiles": [
"src/mispguard.py"
]
}
],
"modified": "2026-10-26T08:36:16.664Z",
"provider": "cve",
"references": [
"https://github.com/MISP/misp-guard/commit/b5f606a4e57a49cc4dbf9b3ef0c6ddd19f866735"
],
"provider_metadata": {
"cna": {
"orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
"shortName": "CIRCL",
"dateUpdated": "2026-10-26T08:36:16.664Z"
}
}
},
"related_cves": [
{
"value": "CVE-2026-116372",
"evidence": "/cveMetadata/cveId"
}
],
"security_relevant": true,
"severity_evidence": "/containers/cna/metrics"
},
"source_id": "core-cve",
"document_id": 273360,
"published_at": "2026-10-26T08:36:16.664+00:00"
}