Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with low-privilege Shiori account
-
DeliverySubmit bookmark with loopback or metadata URL via API endpoint
-
ExploitServer invokes DownloadBookmark() without IP validation
-
Executionhttp.Client connects to internal target
-
PersistInternal service returns sensitive data
-
ImpactAttacker reads exfiltrated credentials or internal data
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 | Exploitation requires a valid authenticated user account on the Shiori instance (CVSS PR:L - low-privilege authentication). The attacker must have access to at least one of the three affected HTTP endpoints: POST /api/bookmark, PUT /api/v1/bookmarks/cache, or POST /api/bookmarks/ext. The targeted internal resource must be reachable from the Shiori server process (loopback services are always reachable; metadata endpoints require a cloud environment; private-range services require network adjacency). The 0.0.0.0 loopback bypass technique is Linux-specific - on non-Linux platforms, 0.0.0.0 may not route to loopback and this specific bypass may not apply, though direct 127.0.0.1 targeting remains universal. No special Shiori configuration is required beyond the presence of a user account. Exploitation is most impactful on cloud-hosted instances (IMDSv1 accessible) or hosts with co-located sensitive services (Redis, Elasticsearch, internal HTTP APIs). The authentication requirement (PR:L) limits exposure compared to unauthenticated SSRF, but offers minimal protection in deployments with open registration or shared credentials. |
| Impact | The CVSS 3.1 score of 8.5 (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N) is well-calibrated: the Scope:Changed designation correctly captures that Shiori becomes a pivot point into adjacent internal systems outside its own security boundary, with high confidentiality impact reflecting potential exfiltration of cloud IAM credentials or internal service data. Authentication (PR:L) is the primary real-world limiting factor - any registered user can exploit this, which is meaningful for personal deployments but weak protection on multi-tenant or publicly accessible instances. Shiori is not listed in CISA KEV, and no EPSS score was provided; active exploitation is not confirmed. No POC code has been identified in the provided data. Despite the absence of a KEV listing, the SSRF pattern targeting cloud metadata (e.g., AWS IMDSv1 at 169.254.169.254) and the 0.0.0.0 Linux bypass are both well-understood and require no special tooling to weaponize, making practical risk higher than KEV/EPSS absence might suggest for cloud-hosted instances. The wildcard CPE (all versions) signals that no patched release has been confirmed. |
| Exploit ScenarioDerived | An authenticated Shiori user submits a new bookmark via POST /api/bookmark with the URL set to |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 05, 2026
Server-Side Request Forgery in Shiori's bookmark download function allows any authenticated user to force the server to issue HTTP requests to loopback addresses (127.0.0.1) and 0.0.0.0 - which Linux routes to the loopback interface - reaching cloud metadata endpoints, co-located databases, and internal-only APIs. The root cause is DownloadBookmark() in internal/core/download.go using a plain http.Client with no custom DialContext and no post-resolution IP validation (no IsLoopback(), IsPrivate(), IsUnspecified(), or IsLinkLocalUnicast() checks). No public exploit has been identified at time of analysis, but the attack path is trivially constructable given the well-documented SSRF pattern against Go's standard HTTP client.
RemediationAI
No vendor-released patch has been identified at time of analysis. The correct fix is implementing a custom DialContext in the http.Client used by DownloadBookmark() that resolves the destination address and then validates it with Go's net.IP methods - blocking IsLoopback(), IsPrivate(), IsUnspecified(), and IsLinkLocalUnicast() before the connection proceeds; the connection should be refused if any check triggers. As a compensating control while awaiting a patch, administrators should apply host-level firewall rules (iptables/nftables) blocking outbound connections from the Shiori process to 127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, and 169.254.0.0/16 - note that iptables OUTPUT rules affect all processes unless constrained by uid/gid matching, so scoping the rule to Shiori's runtime user reduces side effects. In cloud environments, additionally enforce IMDSv2 (token-required mode) on EC2 instances to prevent credential theft via 169.254.169.254 even if SSRF is triggered. Restricting bookmark creation permissions to a minimal set of trusted accounts provides defense-in-depth. Monitor the upstream repository at https://github.com/go-shiori/shiori for patch releases.
Affected VersionsENISA
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Shiori is an open-source self-hosted bookmark manager written in Go (CPE: cpe:2.3:a:go-shiori:shiori:*:*:*:*:*:*:*:*). The flaw is in DownloadBookmark() (internal/core/download.go), which accepts a caller-supplied URL and fetches it using Go's stdlib http.Client with no transport-layer restrictions. CWE-918 (Server-Side Request Forgery) is the root cause class: the server acts as an unguarded HTTP proxy for user-controlled destinations. Go's http.Client resolves DNS and connects to the resulting IP without any post-resolution filtering, meaning addresses in RFC-1918 private ranges, loopback (127.0.0.0/8), link-local (169.254.0.0/16), and the special 0.0.0.0 address (which the Linux kernel routes to the loopback interface) are all reachable. Three distinct API endpoints are affected: POST /api/bookmark, PUT /api/v1/bookmarks/cache, and POST /api/bookmarks/ext, giving the attacker multiple trigger surfaces.
Know when Shiori 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
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N
Network-reachable API requires a user account (PR:L); scope changes because the server pivots to internal systems; C:H reflects cloud credential exfiltration potential via metadata endpoints.
Primary rating from Vendor (TuranSec).
CVSS VectorVendor: TuranSec
DescriptionCVE.org
go-shiori's DownloadBookmark() (internal/core/download.go) fetches a caller-supplied bookmark URL using a plain http.Client with no custom DialContext or destination-IP validation (no IsLoopback(), IsPrivate(), IsUnspecified(), or IsLinkLocalUnicast() checks). An authenticated user creating or updating a bookmark via POST /api/bookmark, PUT /api/v1/bookmarks/cache, or POST /api/bookmarks/ext can supply a loopback (127.0.0.1) or 0.0.0.0 (which Linux redirects to loopback) URL, causing the server to make outbound requests to internal-only services, cloud metadata endpoints, or other network-restricted resources.
Executive ViewAI
Shiori's bookmark management feature contains a server-side request forgery vulnerability that enables authenticated users to extract cloud credentials and access internal-only databases and APIs. This threatens any organization using Shiori by allowing malicious or compromised user accounts to breach network boundaries and access sensitive cloud infrastructure, creating an escalation vector for attackers already inside your perimeter.
No vendor-released patch identified at time of analysis. Interim mitigations include: disable or restrict bookmark download functionality to trusted administrators; implement strict egress filtering and IP address whitelisting on Shiori servers to prevent access to 127.0.0.1, 0.0.0.0, cloud metadata endpoints, and sensitive internal networks; establish continuous monitoring of outbound HTTP requests for attempts to reach loopback addresses or metadata services; consider network segmentation to isolate Shiori from critical internal systems.
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.
Vertical privilege escalation in Shiori (go-shiori), the self-hosted Go bookmark manager, lets any authenticated low-pri
Privilege persistence in Shiori, the self-hosted bookmarks manager (go-shiori/shiori), allows a deleted or demoted owner
A lack of rate limiting in the login page of shiori v1.7.4 and below allows attackers to bypass authentication via a bru
EUVD-2026-53365
GHSA-5mx2-758c-cg2x
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB