Skip to main content

FreshRSS CVE-2025-59949

MEDIUM
Cross-Site Request Forgery (CSRF) (CWE-352)
2025-12-18 security-advisories@github.com
6.5
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Lure authenticated FreshRSS user to malicious page
  2. Exploit
    Browser auto-loads <track src> pointing at logout URL
  3. Execution
    Forged request bypasses missing CSRF check
  4. Impact
    Victim session terminated, repeatable forced-logout DoS

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V3 - Web Frontend Security Anti-CSRF tokens, SameSite cookies
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

Exploitation requires a victim who is currently authenticated to FreshRSS (versions prior to 1.27.1) and who then visits an attacker-controlled web page (UI:R). The specific enabler is that the logout endpoint lacks a CSRF token check, and the HTML <track src> element auto-issues the cross-site request with no click required. Limiting factors that reduce real-world risk: only logged-in users are affected, the impact is availability-only (forced logout, recoverable by re-authenticating rather than data loss or code execution), and the victim must load the malicious content; it does not grant the attacker any access to the account or its data.

Impact

Signals point to a genuine but low-priority medium-severity issue. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H, base 6.5) describes a network-reachable CSRF that needs no attacker privileges but does need victim interaction (UI:R), with impact limited to availability only (C:N/I:N). EPSS is low at 0.45% (37th percentile) and the CVE is NOT in CISA KEV, so there is no evidence of active or widespread exploitation - exploitation status here is 'publicly available exploit code exists' (POC referenced in the GitHub Security Advisory), which is a distinct and weaker signal than active exploitation. No SSVC decision data was supplied. The key tension is the A:H rating: the described impact is a forced logout (denial of service), which is user-specific and fully recoverable by re-authenticating, so A:H appears to overstate the real-world availability impact - I would assess this closer to A:L (see assessed vector). Net: a real, patchable CSRF worth fixing, but not an urgent priority given low EPSS, no KEV, availability-only impact, and the UI:R requirement.

Exploit ScenarioDerived

An attacker hosts a web page containing a <track src> element pointing at the FreshRSS logout endpoint and lures an authenticated FreshRSS user to visit it. Because the logout action lacks CSRF protection and the <track> element auto-fetches its source without a click, the victim's browser silently issues the forged logout request, terminating their session; a page that repeatedly triggers this produces a sustained denial of service. Public exploit/POC details are referenced in the vendor's GitHub Security Advisory (GHSA-w7f5-8vf9-f966).

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 13, 2026

Forced session termination in FreshRSS versions prior to 1.27.1 allows an attacker-controlled web page to log out an authenticated user without their knowledge, via a cross-site request forgery against the logout endpoint that is fired automatically by an HTML <track src> element - no click required. Exploitation requires a victim who is currently logged in and who visits the malicious page (CVSS AV:N/AC:L/PR:N/UI:R, availability-only impact, rated 6.5 by NVD and A:L in the independent assessment). Publicly available exploit code exists, EPSS is low at 0.45% (37th percentile), and there is no confirmed active exploitation; the effect is a denial of service against the affected user's session only, with no account takeover or data exposure, and the user recovers by logging back in.

RemediationAI

Upgrade FreshRSS to 1.27.1, the vendor-released patch version, and confirm the deployment now runs that build; the fix is distributed via the project's advisory GHSA-w7f5-8vf9-f966 and pull requests https://github.com/FreshRSS/FreshRSS/pull/7958 and https://github.com/FreshRSS/FreshRSS/pull/7997. Because the patched code also removes the legacy unsafe_autologin option and its unsafe_autologin_enabled configuration flag, administrators who previously enabled that feature should not attempt to restore it after upgrading, as doing so would reintroduce the weakened authentication path the maintainers deliberately deleted. If an immediate upgrade is not possible, set the FreshRSS session cookie to SameSite=Lax or Strict so that cross-site subresource requests such as <track src> do not carry the session cookie - the trade-off is that stricter cookie scoping can break legitimate cross-site embedding or integration flows - or add a reverse-proxy/WAF rule in front of the logout endpoint that rejects requests lacking a same-origin Sec-Fetch-Site or equivalent referer signal, accepting that non-browser API clients may then need allow-listing. Restricting the instance to a trusted network or placing it behind SSO/VPN reduces exposure to attacker-hosted pages but does not address the underlying missing CSRF protection and should be viewed as temporary only.

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

The issue is a CWE-352 cross-site request forgery in FreshRSS, a self-hosted PHP RSS aggregator built on the Minz framework. The logout endpoint accepted a state-changing request without a valid anti-CSRF token; because the request can be issued as a simple cross-origin subresource fetch, the HTML <track src> element - normally used to load WebVTT subtitle files - causes the browser to hit that endpoint automatically when an attacker's page is rendered, converting a token-less GET into a silent logout. The CVSS vector confirms network reachability with no authentication required from the attacker's side (PR:N), but victim interaction is mandatory (UI:R) because the target must be logged in and must load the attacker's content. Affected code is tracked under the nearly version-agnostic CPE cpe:2.3:a:freshrss:freshrss:*:*:*:*:*:*:*:* with the advisory scoping impact to everything before 1.27.1. The upstream patch series also removed the legacy unsafe_autologin facility from app/Controllers/authController.php and the corresponding unsafe_autologin_enabled property in SystemConfiguration.php/UserConfiguration.php plus its translation strings across app/i18n/*/admin.php, indicating the maintainers hardened the surrounding authentication/session code path rather than only adding a token check.

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

NVD PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
vuln.today AI 4.3 MEDIUM

CSRF needs no attacker privileges (PR:N) but requires the victim to load a malicious page (UI:R); impact is a recoverable forced logout, so A:L rather than the vendor's A:H, with no C/I impact.

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

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

DescriptionNVD

FreshRSS is a free, self-hostable RSS aggregator. Versions prior to 1.27.1 have a logout cross-site request forgery vulnerability that can lead to denial of service via <track src>. Version 1.27.1 patches the issue.

Threat Intelligence Overview

EPSS Score
0.4%
Top 63% exploitable
Prevalence
Low
niche self-hosted RSS aggregator, hobbyist/enthusiast footprint, no enterprise ubiquity
Exploit
POC
Public exploit code exists
Data Quality
4 sources
Confidence: Medium

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 MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Medium

Priority Score

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

Attack Technique

Cross-Site Request Forgery exploits the automatic credential inclusion behavior of web browsers.

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

Affected Products (CPE)NVD

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-58173 HIGH POC
7.4 Dec 16

Path traversal in FreshRSS 1.23.0 through 1.27.0 lets an authenticated low-privilege user expose and invoke the installe

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-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