Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSubmit document via upload, email, or crawl
-
DeliveryEmbed internal image URL in body
-
ExploitIndexer fetches URL bypassing SSRF guard
-
ExecutionReach loopback or cloud-metadata endpoint
-
ImpactResponse embedded into indexed content
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 | The attacker must get a document containing an attacker-chosen HTTP(S) image URL into the indexing pipeline; the URL only needs to be a well-formed http/https link ending in a valid image extension, because ImageParser._is_valid_image_url checks scheme and extension only, never the host, and _fetch_single_url then calls session.get(allow_redirects=True) without the blocked-host policy. Three entry paths exist: an authenticated member uploading a Markdown/HTML file (requires a PipesHub account, hence PR:L), or - requiring NO account - an email to a connector-synced mailbox or a page crawled by the web/RSS connector. The flaw is present in default configurations of PipesHub before 0.10.0. Limiting factors: full read-back of the fetched response into persisted indexed content depends on the indexing stage completing (the PoC host could not persist content because no model provider was configured), and cloud-metadata credential theft only applies on cloud-hosted deployments where 169.254.169.254 is reachable; the blind outbound request itself, however, requires none of these. |
| Impact | This is a genuine but mid-tier priority, not a drop-everything emergency, and the signals are largely consistent. The input CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:L/SI:L) scores 5.3 (Medium) and reflects network reach, low complexity, and some privilege. The vuln.today decision label is 'this_month' - meaningful urgency but below act_now/emergency. There is no CISA KEV listing and no EPSS value in the provided data, so there is no evidence of active or widespread exploitation; this reads as a credible, reported weakness rather than a mass-exploited one. The VulnCheck/GHSA advisory includes an executed proof-of-concept that demonstrably caused the server to fetch a loopback URL, which raises practical risk above a purely theoretical SSRF. The key tension is impact magnitude: the input 4.0 vector rates confidentiality Low (VC:L/SC:L), but the advisory argues the fetched response is base64-embedded into indexed content - a read primitive reaching internal microservices and cloud instance-metadata (169.254.169.254) credentials, which would justify a materially higher confidentiality impact. The advisory itself flags that response read-back was code-inferred, not demonstrated on the test host (indexing halted at extraction because no model provider was configured). So treat the high-confidentiality metadata-theft outcome as plausible and architecturally supported but not proven. Net: a real SSRF worth patching within the vendor's and vuln.today's stated window, with upside risk on cloud-hosted deployments. |
| Exploit ScenarioDerived | An attacker places an image reference pointing at an internal address (e.g. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 30, 2026
Server-side request forgery in PipesHub's document indexing pipeline lets anyone who can place content in front of the indexer make the server issue HTTP GETs to addresses of their choosing. Image URLs embedded in the body of an uploaded Markdown or HTML file, an email delivered to a connector-synced mailbox, or a page pulled in by the web/RSS connector are checked only for scheme and image file extension before ImageParser._fetch_single_url calls aiohttp with allow_redirects=True, so loopback, private-network and cloud instance-metadata targets are reachable despite the blocked-host policy the same codebase applies to other user-supplied fetches. The documented proof-of-concept in the public advisory confirms the service's own aiohttp client fetching a loopback URL that existed only inside an uploaded file; reading the response back into persisted indexed content was inferred from code rather than demonstrated, because the test host had no model provider configured. Exploitation status is not confirmed actively exploited (no CISA KEV listing) and no independently verified exploit tooling has been published, though the advisory's executed walkthrough gives attackers a clear template; the vendor fix is PipesHub 0.10.0, and priority is a this-month remediation cadence rather than a drop-everything emergency.
RemediationAI
Vendor-released patch: upgrade to PipesHub 0.10.0 or later (https://github.com/pipeshub-ai/pipeshub-ai/releases/tag/v0.10.0); the fix commit is 16b05ed7c4c492330046fa10753389a5a5886613, which routes _fetch_single_url through PublicUrlFetcher with _IMAGE_FETCH_LIMITS (20 MB, 10 s) so image URLs from document bodies are resolved and checked against the blocked-host policy before any request, with per-hop redirect re-validation and proxy-variable clearing handled by that shared fetcher. Verification after upgrading: confirm the deployed image tag is 0.10.0 or newer and that image_parser.py imports PublicUrlFetcher from app.utils.public_http rather than calling session.get directly. The vendor advisory states explicitly that there are no workarounds and that upgrading to the patched release is the only complete fix, because the guard must be applied at this call site itself - the policy already protects image_utils, the skills importer and the fetch_url tool, so isolating those paths does not close this one. Remediate on a this-month cadence consistent with the vuln.today priority label; deployments that cannot move immediately should treat the parser container's network reachability (loopback services, internal microservices and 169.254.169.254) as the exposure to be reduced while the upgrade is scheduled.
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
CWE-918 (server-side request forgery) in the Python backend of PipesHub (CPE cpe:2.3:a:pipeshub-ai:pipeshub-ai), a document-indexing and knowledge-base platform. Commit 23f85354d introduced a single blocked-host policy for user-supplied URLs - resolve_public_http_target in app/utils/url_fetcher.py, exposed through PublicUrlFetcher in app/utils/public_http.py and already wired into the skills importer, the fetch_url tool and image_utils (which passes block_private_hosts=True at line 309) - but the image-parser path used during indexing never consults it. In image_parser.py, _is_valid_image_url (lines 75-93) validates only that the URL starts with http:// or https:// and that the path carries a valid image extension, and _fetch_single_url (lines 141-145) then calls session.get(url, allow_redirects=True) directly; http://127.0.0.1:9411/x.png satisfies every condition. The URL list originates from document bodies: processor.py (lines 842-849 for Markdown, 930-945 for HTML) extracts every <img> URL and hands it to the parser with no provenance or allow-list check. Fetched bytes are base64-encoded into a data URI that becomes indexed block content, which is why the code path is a potential read primitive and not merely a blind request; the documented PoC proved the outbound fetch but could not persist content because indexing halted with no model provider configured, so exfiltration is code-inferred. allow_redirects=True also means even a host that passed a guard could be followed through a 3xx to an internal address, which is why redirect re-validation is part of the same fix. Internal targets include the product's own unauthenticated parsing, extraction, docling and embedding microservices reachable from the container that holds connector credentials, storage configuration and database credentials. The independent assessment scores this CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N = 8.5, higher than the CVSS 4.0 score of 5.3 carried with the CVE, because the pivot escapes the application into the hosting network and confidentiality is the dominant impact; for the mail- and crawl-based entry paths, where no PipesHub account is needed, PR:N applies and the effective risk is higher.
Know when Pipeshub Ai 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:L/VI:L/VA:N/SC:L/SI:L/SA:N
Network, low-complexity SSRF; PR:L for the authenticated-upload path (mail/crawl paths would be PR:N); scope changes as the fetch pivots into the hosting network and cloud metadata, where credential exposure drives C:H.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
PipesHub before 0.10.0 contains a server-side request forgery vulnerability in ImageParser._fetch_single_url that allows attackers to make the indexing service fetch internal addresses by embedding image URLs in documents. Attackers can supply Markdown or HTML via uploads, synced mailboxes, or web connectors to reach loopback, private-network, or cloud metadata endpoints, with image responses embedded into indexed content.
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.
More in Pipeshub Ai
View allPipesHub 0.3.0 through 0.9.1 allows an authenticated user holding only the crawl:write OAuth scope to permanently destro
Rate limiting in PipesHub 0.1.0 through 0.9.1 can be evaded entirely by any unauthenticated remote client, because the l
EUVD-2026-114117
GHSA-5r5q-7f5q-f5h2
NVD
CVE.org
EPSS
Exploit-DB