Skip to main content

FreshRSS CVE-2025-58173

HIGH
Improper Input Validation (CWE-20)
2025-12-16 security-advisories@github.com
7.4
CVSS 4.0 · Vendor: github
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as low-privilege FreshRSS user
  2. Delivery
    Send path-traversal request via language parameter
  3. Exploit
    Reach install.php installer actions
  4. Execution
    Create admin or repoint database server
  5. Persist
    Inject malicious feed curl_params
  6. Impact
    Execute code on host

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
Exploitation Conditions

Exploitation requires a valid low-privilege (non-admin) account on the FreshRSS instance (CVSS PR:L), and the installed version must be in the 1.23.0-1.27.0 range. The specific trigger is path traversal injected through the language user configuration parameter, which re-exposes the installer (install.php) to an unprivileged user; from there the attacker invokes installer actions (admin login/creation, or database reconfiguration) and, for code execution, must be able to point FreshRSS at an attacker-controlled MySQL server and set malicious curl_params in the feed table. Limiting factors: no code execution without the attacker-controlled database step; instances that disable self-registration and have no untrusted users are far less exposed, since the attacker needs a usable account; single-user private deployments are low risk despite the network vector.

Impact

This is a genuine high-priority issue for internet-exposed instances, not a paper-tiger high-CVSS case. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) describes a low-complexity, network-reachable attack requiring only low privileges - i.e. any registered, unprivileged FreshRSS user - with high confidentiality, integrity, and availability impact (VC:H/VI:H/VA:H). The chain is severe: path traversal in the language parameter re-exposes install.php to a normal user, who can then log in as admin, create new admin accounts, or repoint the database to an attacker MySQL server and achieve code execution via malicious feed curl_params. So effective impact is full application compromise and likely RCE on the host, which is why an independent 3.1 assessment lands higher (~8.8) than the vendor's 7.4; the 4.0 score is tempered by SC:N/SI:N/SA:N (no modeled subsequent-system impact). Exploitation maturity E:P (proof-of-concept) aligns with the input signal that public exploit code exists. No EPSS score and no CISA KEV entry were provided, so there is no evidence of widespread automated exploitation yet - the realistic risk is targeted abuse of multi-user or publicly-registrable instances rather than mass exploitation. The key limiting factor is PR:L: an attacker needs a valid low-privilege account, so single-user or closed-registration deployments face materially lower exposure than instances allowing self-registration.

Exploit ScenarioDerived

An attacker holding (or self-registering) an ordinary FreshRSS account on versions 1.23.0-1.27.0 sends a request abusing path traversal in the language configuration parameter to reach install.php, then invokes installer actions to create a new admin user or repoint FreshRSS to an attacker-controlled MySQL server. By injecting malicious feed curl_params into the database, they turn admin takeover into code execution on the host. Public proof-of-concept exploit code exists, and the low attack complexity (AC:L) makes reliable exploitation straightforward once an account is obtained.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.7% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 14, 2026

Path traversal in FreshRSS 1.23.0 through 1.27.0 lets an authenticated low-privilege user expose and invoke the installer (install.php), escalating to full administrative control - logging in as the existing admin, creating a new admin account, or repointing the instance at an attacker-controlled MySQL server so malicious curl_params in the feed table can be used to execute code in FreshRSS. The vendor released a fix in 1.27.1, and publicly available exploit code exists, so internet-exposed instances that allow self-registration or host untrusted users should be treated as high priority; the independent assessment rates this CVSS:3.1 8.8 (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H), consistent with a genuine, high-impact issue rather than a paper-tiger high-CVSS case. Single-user private deployments are far less exposed because the attacker must already hold a usable non-admin account.

RemediationAI

Upgrade to FreshRSS 1.27.1, the vendor-released patched version, following the guidance in the GitHub advisory at https://github.com/FreshRSS/FreshRSS/security/advisories/GHSA-6c8h-w3j5-j293; the fix PRs are #7878, #7971 and #7979 (commits 79604aa, dbbae15 and ee175dd). If immediate upgrade is not possible, the most effective compensating controls follow the attack chain: disable self-registration and remove or rotate any untrusted low-privilege accounts, since exploitation requires a usable non-admin login (trade-off: blocks legitimate new-user onboarding until restored); deny direct HTTP access to app/install.php at the web server or reverse proxy (trade-off: also blocks legitimate re-install/upgrade flows until the rule is lifted); and block outbound MySQL (TCP 3306) egress from the FreshRSS host so a compromised instance cannot point at an attacker-controlled database - this is the step that turns the traversal into code execution (trade-off: breaks any legitimate remote-database deployment that requires outbound connections). Because the flaw permits silent creation of admin accounts and reconfiguration of the database, assume compromise for any instance previously reachable by untrusted users, audit user accounts and connection settings, and inspect the feed table for unexpected curl_params values or other tampering rather than relying on patching alone to undo prior state changes.

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

FreshRSS is a self-hosted PHP RSS aggregator built on the Minz framework, which loads per-user configuration (including a language setting) and resolves resources based on those values. The vulnerability class is recorded as CWE-20 (improper input validation); mechanically it behaves as a path traversal (CWE-22) because the language user configuration parameter is consumed without adequate sanitization, allowing ../ sequences to walk outside the intended directory and reach install.php. The installer, normally relevant only before setup completes, remains executable in an already-installed instance, so a low-privilege user can drive privileged install actions such as authenticating as admin, creating a new admin user, or rewriting database connection settings. The database step is what enables code execution: by pointing FreshRSS at an attacker-controlled MySQL server that supplies a crafted feed row with malicious curl_params, the attacker gains an execution primitive. The 1.27.1 fixes (commits 79604aa, dbbae15, ee175dd; PRs #7878, #7971, #7979) harden the flow, adding session-nonce validation in authController.php's login action, correcting the nonce/hasUserConf() logic in javascriptController.php, and tightening character-class patterns in userController.php's USERNAME_PATTERN and the installer's host/user/base input patterns by properly escaping the hyphen.

Know when Freshrss 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 (github) PRIMARY 7.4 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:P
vuln.today AI 8.8 HIGH

Network-reachable with low complexity; requires an authenticated low-privilege account (PR:L) but then yields admin takeover and likely RCE, so C/I/A all High; scope unchanged to match vendor's no-subsequent-system modeling.

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

Primary rating from Vendor (github).

CVSS VectorVendor: github

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

DescriptionCVE.org

FreshRSS is a self-hosted RSS feed aggregator. In versions 1.23.0 through 1.27.0, using a path traversal inside the language user configuration parameter, it's possible to call install.php and perform various administrative actions as an unprivileged user. These actions include logging in as the admin, creating a new admin user, or set the database to an attacker-controlled MySQL server and abuse it to execute code in FreshRSS by setting malicious feed curl_params inside the feed table. Version 1.27.1 fixes the issue.

Executive ViewAI

Why It Matters

FreshRSS feed reader versions 1.23.0 through 1.27.0 contain an access-control flaw that lets any authenticated low-privilege account - including one created through self-registration - reach the application's installer and seize full administrative control of the instance. Organizations that expose FreshRSS to the internet or allow users to self-register face the greatest exposure, because a single ordinary account is enough to compromise the service, its stored credentials, and any data it processes. Internally hosted, single-user deployments where no untrusted accounts exist carry materially lower organizational risk.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.7%
Top 48% exploitable
Prevalence
Low
niche self-hosted RSS aggregator, enthusiast rather than enterprise footprint
Exploit
POC
Public exploit code exists
Data Quality
3 sources
Confidence: Low

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 HIGH
CISA KEV No
Public POC Yes
EPSS 0.7%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

58
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +37
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

Affected Products (CPE)CVE.org

cpe:2.3:a:freshrss:freshrss:*:*:*:*:*:*:*:*
CVE-2025-31134 HIGH POC
7.5 Jun 04

FreshRSS versions prior to 1.26.2 suffer from an information disclosure vulnerability that allows unauthenticated remote

CVE-2025-68148 HIGH POC
7.5 Dec 27

Denial of service in FreshRSS 1.27.0 through versions before 1.28.0 lets a remote, unauthenticated attacker who controls

CVE-2025-46341 HIGH POC
7.1 Jun 04

Critical authentication bypass vulnerability in FreshRSS versions prior to 1.26.2 that allows authenticated attackers to

CVE-2025-32015 MEDIUM POC
6.7 Jun 04

FreshRSS is a self-hosted RSS feed aggregator. Prior to version 1.26.2, HTML is sanitized improperly inside the `<iframe

CVE-2025-31136 MEDIUM POC
6.7 Jun 04

FreshRSS is a self-hosted RSS feed aggregator. Prior to version 1.26.2, it's possible to run arbitrary JavaScript on the

CVE-2025-59949 MEDIUM POC
6.5 Dec 18

Forced session termination in FreshRSS versions prior to 1.27.1 allows an attacker-controlled web page to log out an aut

CVE-2023-22481 MEDIUM POC
5.5 Mar 06

FreshRSS is a self-hosted RSS feed aggregator. Rated medium severity (CVSS 5.5), this vulnerability is low attack comple

CVE-2025-46339 MEDIUM POC
4.3 Jun 04

A security vulnerability in FreshRSS (CVSS 4.3). Risk factors: public PoC available. Vendor patch is available.

CVE-2025-31482 MEDIUM POC
4.3 Jun 04

FreshRSS is a self-hosted RSS feed aggregator. A vulnerability in versions prior to 1.26.2 causes a user to be repeatedl

CVE-2025-62166 HIGH
7.5 Mar 09

self-hostable RSS aggregator. versions up to 1.28.0 is affected by improper access control (CVSS 7.5).

CVE-2022-23497 HIGH
7.5 Dec 09

FreshRSS is a free, self-hostable RSS aggregator. Rated high severity (CVSS 7.5), this vulnerability is remotely exploit

CVE-2025-68932 LOW POC
2.9 Dec 27

Weak randomness in FreshRSS versions prior to 1.28.0 lets attackers predict the 'keep me logged in' remember-me tokens,

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