Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to MISP with attribute-write access
-
DeliveryCraft attribute URL targeting unblocked internal range
-
ExploitTrigger html_to_markdown expansion module
-
ExecutionServer fetches internal/link-local resource
-
ImpactRead internal service response via returned Markdown
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Credential Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires (1) an authenticated MISP account with privilege to create or modify attributes, and (2) the html_to_markdown expansion module being enabled and reachable so the supplied URL is fetched server-side. Exploitation specifically abuses URLs in the ranges the original BLOCKED_RANGES omitted - 0.0.0.0/8 (routes to loopback on Linux), 100.64.0.0/10 (RFC 6598 CGNAT), ::/128, fc00::/7 (IPv6 ULA), fe80::/10 (IPv6 link-local), plus IPv4-mapped IPv6 forms like [::ffff:0.0.0.0]. Limiting factors: no unauthenticated access (PR:L), the target expansion module must be configured/active, and impact is confined to reading reachable internal services - the MISP host is not directly compromised and there is no write/integrity or availability effect. |
| Impact | This is a genuine but moderate-priority SSRF (CWE-918). The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) confirms network-reachable, low-complexity exploitation but requires PR:L - an authenticated MISP user - so this is not an unauthenticated internet-facing bug. The severity is driven entirely by subsequent-system confidentiality (SC:H) while vulnerable-system impact is nil (VC:N/VI:N/VA:N), consistent with the description stating MISP itself is not compromised but is abused as a proxy. There is no public exploit identified at time of analysis and no CISA KEV listing; EPSS was not provided. No SSVC decision data was supplied. Signals are internally consistent (no CVSS-vs-description conflict), but the real-world risk is gated by two factors the raw score understates: the attacker must already hold MISP attribute-creation privileges, and the html_to_markdown expansion module must be enabled and triggerable. Net: a credible insider/compromised-account internal-reconnaissance risk worth patching, not a drop-everything externally-exploitable emergency. |
| Exploit ScenarioDerived | An authenticated MISP user (or an attacker who has phished/compromised a low-privilege MISP account) creates or edits an attribute whose value triggers the html_to_markdown expansion module, supplying a URL such as http://0.0.0.0/, http://[fc00::1]/ or http://100.64.0.1/ that points at an internal or link-local service. The MISP server fetches the URL server-side and returns the fetched HTML-to-Markdown content, letting the attacker read responses from internal admin panels, cloud metadata-adjacent services, or carrier-grade NAT infrastructure unreachable from outside. No public exploit code is identified, but the fix commit's test cases demonstrate the exact bypass payloads. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 19, 2026
Server-side request forgery in the MISP Modules html_to_markdown expansion module lets an authenticated user who can create or modify MISP attributes force the MISP server to fetch URLs pointing at internal address ranges the module's is_safe_url() denylist failed to cover. The gaps include 0.0.0.0/8 (which routes to loopback on Linux), 100.64.0.0/10 carrier-grade NAT space, and the IPv6 unspecified (::/128), unique-local (fc00::/7) and link-local (fe80::/10) ranges, with IPv4-mapped IPv6 forms such as [::ffff:0.0.0.0] also slipping through. Successful abuse gives read access to internal services reachable from the MISP host but does not compromise MISP itself; no public exploit code or CISA KEV entry was identified at time of analysis, and the vendor has published a fix commit.
RemediationAI
Vendor-released fix: apply misp-modules commit 98a1c2c2f297665dd8d4609e9cd644007a57516b (https://github.com/misp/misp-modules/commit/98a1c2c2f297665dd8d4609e9cd644007a57516b), which adds 0.0.0.0/8, 100.64.0.0/10, ::/128, fc00::/7 and fe80::/10 to BLOCKED_RANGES and adds regression tests covering IPv4-mapped IPv6 literals and hostnames resolving to unique-local addresses; a tagged release version that formally incorporates the commit was not independently confirmed in the provided data, so verify against the upstream release notes before relying on a version number. If immediate patching is not possible, disable the html_to_markdown expansion module in the misp-modules configuration, accepting the loss of HTML-to-Markdown conversion for attributes, and restrict the ability to create or modify MISP attributes to trusted roles, since the attack requires an authenticated account with that privilege. As a compensating control, enforce host-level or container egress filtering on the MISP server and misp-modules worker that drops traffic to 0.0.0.0/8, 100.64.0.0/10, fc00::/7, fe80::/10 and IPv4-mapped IPv6 variants while still permitting legitimate outbound fetches; a fully default-deny egress policy is stronger but will break any expansion module that legitimately retrieves external URLs. Running misp-modules in a segmented network namespace with no route to management, CGNAT or link-local interfaces reduces the reachable target set but does not remove the underlying validation flaw.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The html_to_markdown expansion module in misp-modules accepts a URL supplied through a MISP attribute, performs a server-side HTTP fetch of the HTML content, and converts the result to Markdown. To prevent SSRF (CWE-918), the module's is_safe_url() routine resolves the supplied hostname (via socket.getaddrinfo, as exercised in the project's unit tests) and compares the resulting addresses against a Python ipaddress BLOCKED_RANGES denylist before allowing the request. That denylist covered only IPv4 loopback 127.0.0.0/8, RFC 1918 private space, IPv4 link-local 169.254.0.0/16 and IPv6 loopback ::1/128, leaving 0.0.0.0/8 (unspecified, which Linux treats as loopback when used as a destination), the RFC 6598 100.64.0.0/10 CGNAT block, ::/128, fc00::/7 unique-local and fe80::/10 link-local unrepresented; IPv4-mapped IPv6 literals such as [::ffff:0.0.0.0] also bypassed matching because the embedded IPv4 address was never normalized and re-checked. This is a classic denylist-completeness failure: the trust boundary is the MISP server's network position, so the module acts as a proxy into segments that external clients cannot reach, which is why the assessed vector carries a scope change (S:C) with high confidentiality impact but no integrity or availability effect. A robust fix requires normalizing IPv4-mapped IPv6 forms and, ideally, replacing the denylist with an allowlist or an explicit egress policy rather than extending the block list again.
Know when Misp gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:N/SC:H/SI:N/SA:N
Authenticated low-priv attacker (PR:L) over network (AV:N/AC:L); SSRF reads resources in a separate security authority (S:C) with confidentiality-only impact (C:H, I:N/A:N).
Primary rating from Vendor (CIRCL).
CVSS VectorVendor: CIRCL
DescriptionCVE.org
The html_to_markdown expansion module in MISP Modules contains a server-side request forgery (SSRF) vulnerability in its is_safe_url() URL validation function. The BLOCKED_RANGES list used to reject unsafe destination addresses was incomplete, omitting several critical IP address ranges. Specifically, the following ranges were not blocked: 0.0.0.0/8 (unspecified, which routes to loopback on Linux), 100.64.0.0/10 (carrier-grade NAT per RFC 6598), ::/128 (IPv6 unspecified), fc00::/7 (IPv6 Unique Local Addresses), and fe80::/10 (IPv6 link-local). The existing list only covered IPv4 loopback (127.0.0.0/8), RFC 1918 private ranges, IPv4 link-local (169.254.0.0/16), and IPv6 loopback (::1/128).
An authenticated user with the ability to create or modify MISP attributes that trigger the html_to_markdown expansion module could supply URLs pointing to these unblocked internal address ranges. Because the module fetches the URL server-side to convert HTML content to Markdown, the request is made from the MISP server's network context. This allows an attacker to probe and read responses from internal services, carrier-grade NAT infrastructure, or link-local endpoints that would otherwise be unreachable from external networks. IPv4-mapped IPv6 forms (e.g., [::ffff:0.0.0.0]) also bypassed the existing checks.
The security impact is primarily confidentiality: an attacker can read data served by internal services reachable from the MISP server. The MISP instance itself is not compromised, but it is abused as a proxy to access otherwise restricted network resources.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
An issue was discovered in MISP 2.4.9x before 2.4.99. Rated high severity (CVSS 8.8), this vulnerability is remotely exp
An issue was discovered in MISP before 2.4.158. Rated critical severity (CVSS 9.8), this vulnerability is remotely explo
app/Controller/Component/IndexFilterComponent.php in MISP before 2.4.167 mishandles ordered_url_params and additional_de
SQL injection in MISP threat intelligence platform versions prior to 2.5.37 allows remote unauthenticated attackers to m
An issue was discovered in MISP before 2.4.158. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitab
MISP 2.4.172 mishandles different certificate file extensions in server sync. Rated high severity (CVSS 7.5), this vulne
In MISP before 2.4.148, app/Lib/Export/OpendataExport.php mishandles parameter data that is used in a shell_exec call. R
An issue was discovered in app/Controller/UsersController.php in MISP 2.4.92. Rated critical severity (CVSS 9.8), this v
An issue was discovered in MISP 2.4.128. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable,
MISP before 2.4.135 lacks an ACL check, related to app/Controller/GalaxyElementsController.php and app/Model/GalaxyEleme
app/View/Elements/genericElements/IndexTable/Fields/generic_field.ctp in MISP 2.4.144 does not sanitize certain data rel
MISP 2.4.148, in certain configurations, allows SQL injection via the app/Model/Log.php $conditions['org'] value. Rated
EUVD-2026-104668
GHSA-x7r8-hgm5-qq32
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB