MISP mispguard: Feed responses with 2xx status codes other than 200 bypass filtering rules
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| MISP | misp-guard | affected |
|
No data.
No data.
| Vendor | Product | Versions | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Misp | Misp-guard |
|
Vendor Solution
The fix adds an explicit check in process_feed_response that rejects any HTTP response with a status code in the 201-299 range (i.e., successful responses other than 200) by returning a 403 Forbidden response. This ensures that only responses with exactly status code 200 are subject to the normal filtering pipeline, and all other 2xx responses are blocked before they can reach the MISP instance, closing the bypass vector.
No CVSS v3.1
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.362% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
| Type | Values Removed | Values Added |
|---|---|---|
| Description | 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. | |
| Title | MISP mispguard: Feed responses with 2xx status codes other than 200 bypass filtering rules | |
| First Time appeared |
Misp
Misp misp-guard |
|
| Weaknesses | CWE-20 | |
| CPEs | cpe:2.3:a:misp:misp-guard:*:*:*:*:*:*:*:* | |
| Vendors & Products |
Misp
Misp misp-guard |
|
| References |
| |
| Metrics |
cvssV4_0
|