Skip to main content

Client St0r CVE-2026-112254

| EUVDEUVD-2026-104590 LOW
Server-Side Request Forgery (SSRF) (CWE-918)
2026-10-19 VulDB GHSA-8q52-22p3-3mxf
2.1
CVSS 4.0 · Vendor: VulDB
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as low-privilege member
  2. Exploit
    Submit internal URL to property import endpoint
  3. Execution
    Server performs unrestricted requests.get (SSRF)
  4. Impact
    Harvest internal/metadata response via echoed output

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 an authenticated session on Client St0r - pre-patch, any logged-in member including a read-only account - reaching the POST /locations/<id>/import-property-from-url/ endpoint backed by _fetch_html in the Property URL Importer. The attacker supplies a URL that the server fetches with a plain requests.get() whose only validation was an http:// or https:// prefix; redirects and proxy environment variables were honoured, allowing requests to 127.0.0.1, RFC1918 ranges, 169.254.169.254 and other routable internal hosts, with failure exception text echoed back. Exploitation is LIMITED by the need for valid account credentials (no anonymous access) and by the importer feature being present (shipped since v2.11.4); it does not require any special non-default configuration.

Impact

This is a genuine but moderate-severity SSRF (CWE-918) rather than a top-tier emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N) scores 5.3 (Medium): network-reachable, low attack complexity, but it requires authentication (PR:L) and yields only low confidentiality impact with no integrity or availability impact. The source-code evidence confirms the real-world risk profile: any logged-in member - including a read-only one, pre-patch - could coerce the server into requesting 127.0.0.1, RFC1918 hosts, or the 169.254.169.254 cloud metadata endpoint, and exception text was echoed back, enabling limited blind/semi-blind internal reconnaissance and potential metadata/credential theft in cloud deployments. On exploitation signals the picture is consistent: the CVSS 4.0 string carries E:P (Proof-of-Concept) and the description states 'the exploit has been made public,' so publicly available exploit code exists. However, there is NO CISA KEV listing and NO EPSS score in the provided data, so there is no evidence of active, widespread exploitation. The dominant risk-reducing factor is prevalence: this is an obscure, single-maintainer GitHub project with negligible enterprise footprint. Net: real and patchable, but a low operational priority for most organizations unless they actually run this product.

Exploit ScenarioDerived

An attacker with any valid low-privilege account (pre-patch, even a read-only member) submits a crafted URL such as http://169.254.169.254/latest/meta-data/ to the Property URL Importer endpoint. The server-side _fetch_html function performs a plain requests.get() that follows redirects and ignores IP-range restrictions, so it fetches the internal/metadata resource and leaks response or exception details back to the attacker. Public exploit code exists, and the low attack complexity makes this trivially reproducible against any exposed instance.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 19, 2026

Server-side request forgery in Client St0r through 3.17.586 lets any logged-in user - including read-only accounts - force the server to fetch arbitrary internal URLs through the Property URL Importer endpoint (POST /locations/<id>/import-property-from-url/). Because the pre-patch code only checked for an http:// or https:// prefix and used a plain requests.get() that followed redirects and honoured proxy environment variables, attackers could reach 127.0.0.1, RFC1918 hosts, and the 169.254.169.254 metadata endpoint, with failure exception text echoed back to the requester. Exploit code is publicly available, but no confirmed active exploitation (CISA KEV) is reported; upgrading to 3.17.587 resolves the issue.

RemediationAI

Vendor-released patch: upgrade to Client St0r 3.17.587 (commit 7e75c6cc6a07621c10be9b07fafd99e89a02e327), available from https://github.com/agit8or1/clientst0r/releases/tag/v3.17.587. The release ships core/safe_http.py, which enforces scheme/port/hostname and literal-IP validation on the original URL and every redirect target, resolves hostnames once and connects to the validated IP to block DNS rebinding, re-checks the connected peer, ignores proxies and .netrc, and applies 5s connect / 10s read / 25s total timeouts with a 2 MB body cap and HTML/text-only content types; the importer endpoint additionally now requires write access (@require_write) and returns generic error messages. If upgrading immediately is not possible, compensating controls with trade-offs: restrict the importer endpoint at the reverse proxy to trusted roles or IP ranges, accepting that the legitimate import feature becomes unavailable to normal members; block outbound traffic from the application server to RFC1918, loopback and 169.254.0.0/16 at the network egress layer, noting this may break other internal integrations the instance relies on; and unset proxy environment variables and enforce a locked-down HTTP proxy that rejects internal destinations, though this is weaker than the in-code socket-level check. Note the ALLOW_PRIVATE_IP_INTEGRATIONS setting deliberately does NOT apply to this code path, so it cannot be used as a workaround.

Affected VersionsENISA

clientst0r 3.17.586

Affected Packages

euvd clientst0r no fix

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 (SSRF) in a Django-style Python application. The vulnerable function _fetch_html in locations/services/property_url_importer.py accepted a user-supplied URL and fetched it server-side with requests.get(), validating only that the string began with http:// or https://. Default requests behaviour - automatic redirect following, proxy environment variable support, ~/.netrc usage - meant the server could be steered at loopback, RFC1918 space, link-local 169.254.169.254 (cloud metadata), or any host the server could route to; exception text from failed fetches was returned to the client, aiding reconnaissance. The fix introduces core/safe_http.py with two independent layers: textual validation (scheme, no embedded credentials, ports 80/443, hostname blocklist/suffix rules, and literal internal IP detection across dotted, decimal, hex, octal, shortened, IPv6, IPv4-mapped, NAT64 and zone-id spellings) plus an authoritative urllib3 connection-level guard that resolves once, refuses if any resolved address is non-public, pins the connection to the validated IP literal to prevent DNS rebinding, and re-checks the connected peer. Redirects are followed manually (max 3) with revalidation, proxies and .netrc are ignored, and timeouts, a 25s deadline, a 2 MB body cap and HTML/text-only content types are enforced. The endpoint also gained a write-access requirement. The feature had been present since v2.11.4, so all releases from that point through 3.17.586 are affected.

Know when Clientst0R 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

Vendor (VulDB) PRIMARY 2.1 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:P
vuln.today AI 4.3 MEDIUM

Network-reachable with low complexity, but a valid low-privilege member account is required (PR:L); impact is limited internal information disclosure (C:L) with no integrity or availability effect.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulDB).

CVSS VectorVendor: VulDB

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Severity Changed
Oct 19, 2026 - 20:23 NVD
MEDIUM LOW
CVSS changed
Oct 19, 2026 - 20:23 NVD
5.3 (MEDIUM) 2.1 (LOW)

DescriptionCVE.org

A vulnerability was found in agit8or1 clientst0r up to 3.17.586. Affected by this vulnerability is the function _fetch_html of the file locations/services/property_url_importer.py of the component Property URL Importer. The manipulation of the argument url results in server-side request forgery. The attack may be launched remotely. The exploit has been made public and could be used. Upgrading to version 3.17.587 addresses this issue. The patch is identified as 7e75c6cc6a07621c10be9b07fafd99e89a02e327. The affected component should be upgraded. The vendor was contacted early, responded in a very professional manner and quickly released a fixed version of the affected product.

Threat Intelligence Overview

EPSS Score
0.3%
Top 73% exploitable
Prevalence
Rare
obscure single-maintainer GitHub project, no meaningful enterprise footprint
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL GitHub VulDB

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.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

10
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +10
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy