Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessRun unprivileged local process on host
-
DeliveryPOST attacker-controlled index URL to /api/v1/updates/from-url
-
ExploitMissing authorization accepts request, bypasses version/auto-apply checks
-
ExecutionFetch and install older Safing-signed release
-
ImpactDowngraded Portmaster reintroduces previously fixed vulnerabilities
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication required for critical functions
MITRE ATT&CK
1 technique across 1 tactic: Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires the attacker to already be able to execute an unprivileged local process on a host running Safing Portmaster before 2.2.5, and the local API (default on the machine) must be reachable so the process can issue a POST to /api/v1/updates/from-url - the endpoint performs no authorization (api.PermitAnyone), so no credentials or user interaction are needed once local code execution exists. Exploitation is LIMITED by three factors: it cannot be performed remotely (local access is a hard prerequisite), the installed payload must be a legitimately Safing-signed release so only genuine older versions can be forced (not arbitrary attacker binaries), and the value to an attacker is indirect - reintroducing a previously patched vulnerability rather than immediate compromise. Fixed in 2.2.5 by removing the endpoint entirely. |
| Impact | This is a genuine but modest-severity local vulnerability, not a top-tier priority. The input CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:L/UI:N) and the description agree and are internally consistent: exploitation requires an already-present unprivileged local process, so this is a local privilege/integrity issue rather than a remotely reachable flaw - AV:L and the 'local processes' wording do not conflict. Impact is limited to VI:L/VA:L with VC:N, reflecting that an attacker cannot read data or run arbitrary code directly; they can only force a downgrade to an older but still Safing-signed release, thereby reintroducing previously patched vulnerabilities (a staging primitive rather than direct compromise). No EPSS score, no CISA KEV listing, and no public exploit code are present in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation. The CWE-306 missing-authorization root cause is confirmed by the patch diff, which simply removes the api.PermitAnyone-registered updates/from-url endpoint and its UpdateFromURL handler. Net: a real, patch-confirmed weakness worth remediating, but the local-access prerequisite, lack of confidentiality impact, and signed-binary constraint keep real-world risk low-to-moderate. |
| Exploit ScenarioDerived | An attacker who already has the ability to run an ordinary unprivileged process on a machine running Portmaster (e.g. via malware, a compromised user account, or a hostile local app) sends a POST request to the local http://api endpoint /api/v1/updates/from-url supplying an attacker-controlled index URL. Because the endpoint is registered with api.PermitAnyone, no authorization check occurs, and the supplied URL bypasses version checks and auto-apply settings, forcing installation of an older Safing-signed release. No public exploit code is identified at time of analysis, but the source-level commit diff makes the vulnerable endpoint and trigger trivially reproducible. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 16, 2026
Safing Portmaster before 2.2.5 exposes a local update endpoint, POST /api/v1/updates/from-url, that is registered with api.PermitAnyone and therefore performs no authorization check, allowing any unprivileged local process to point the updater at an attacker-controlled index URL and bypass both version checks and auto-apply settings. The result is a forced downgrade that can only install releases legitimately signed by Safing, so the practical impact is the reintroduction of previously patched vulnerabilities rather than execution of arbitrary attacker-supplied code, and exploitation requires low-privileged local access (CVSS PR:L) with no user interaction and cannot be performed remotely. Fixed in 2.2.5 by removing the endpoint entirely; no public exploit identified at time of analysis.
RemediationAI
Vendor-released patch: Safing Portmaster 2.2.5, obtainable from the official release page at https://github.com/safing/portmaster/releases/tag/v2.2.5; the upstream fix (commit https://github.com/safing/portmaster/commit/f943e1eaf98f45bc48490bf288e1d63c04929ae0) removes the updates/from-url endpoint and the UpdateFromURL function outright, so there is no configuration flag or permission setting that can re-enable it and users who relied on the manual from-URL install feature lose that capability - a deliberate trade-off considered acceptable because the route had no legitimate authorization model. Until upgrading, no in-product workaround fully closes the gap: the local API is reachable by any process running as the same user, so operators should treat local code execution as the real trust boundary - run untrusted or research software in a container, sandbox, or VM where the Portmaster API socket is not exposed, avoid executing untrusted local binaries on hosts running Portmaster, and restrict host access to trusted, single-tenant users. Defensive monitoring is limited; because the forced update installs a genuine Safing-signed older release, detection depends on tracking the installed Portmaster version over time and alerting on unexpected downgrades, then re-upgrading to 2.2.5 or later. Verify the post-upgrade version explicitly, since a downgrade may otherwise go unnoticed.
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
Safing Portmaster is a Go-based application firewall and privacy tool that runs a local HTTP API on the host, with endpoints registered through an internal api.RegisterEndpoint helper that assigns each route a write permission policy. In versions before 2.2.5 the route updates/from-url (POST) was registered with Write: api.PermitAnyone, meaning any local caller could invoke it without authentication or privilege, and its ActionFunc passed the raw request body straight into module.instance.BinaryUpdates().UpdateFromURL(), which in turn called updateAndUpgrade with the force and auto-apply flags set to true. Because the URL is fully caller-controlled and treated as an update index, the supplied index can point at an older, still-validly-Safing-signed release, defeating version comparison and downgrade protections. This is a CWE-306 (Missing Authentication for Critical Function) issue affecting every build matched by cpe:2.3:a:safing:portmaster:*:*:*:*:*:*:*:* prior to 2.2.5; the modernized CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:L) and the independent CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L assessment both characterize it as a low-severity local integrity and limited-availability issue: the signature requirement bound the blast radius, and the attacker's gain is indirect - restoring a patched flaw by reinstalling a genuine older build rather than dropping a malicious binary.
Know when Portmaster 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:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N
Needs an unprivileged local process (AV:L, PR:L, AC:L, no UI); forced downgrade affects integrity and availability at low level (I:L/A:L) with no data disclosure (C:N).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Safing Portmaster before 2.2.5 contains a missing authorization vulnerability that allows unprivileged local processes to force updates by calling the POST /api/v1/updates/from-url endpoint registered with api.PermitAnyone. Attackers can supply an attacker-controlled index URL that bypasses version checks and auto-apply settings, installing older Safing-signed releases carrying previously fixed vulnerabilities.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
EUVD-2026-102955
GHSA-6952-c35h-6rff
NVD
CVE.org
EPSS
Exploit-DB