FreshRSS up to 1.26.x Allow API api/query.php history.replaceState cross site scripting
| CVSS Meta Temp Score | Current Exploit Price (≈) | CTI Interest Score |
|---|---|---|
| 4.9 | $0-$5k | 0.00 |
Summary
A vulnerability, which was classified as problematic, has been found in FreshRSS up to 1.26.x. Affected by this issue is the function history.replaceState of the file api/query.php of the component Allow API. The manipulation leads to cross site scripting.
This vulnerability is uniquely identified as CVE-2025-59948. The attack is possible to be carried out remotely. No exploit exists.
It is advisable to upgrade the affected component.
Details
A vulnerability was found in FreshRSS up to 1.26.x and classified as problematic. This issue affects the function history.replaceState of the file api/query.php of the component Allow API. The manipulation with an unknown input leads to a cross site scripting vulnerability. Using CWE to declare the problem leads to CWE-79. The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users. Impacted is integrity. The summary by CVE is:
FreshRSS is a free, self-hostable RSS aggregator. Versions 1.26.3 and below do not sanitize certain event handler attributes in feed content, so by finding a page that renders feed entries without CSP, it is possible to execute an XSS payload. The Allow API access authentication setting needs to be enabled by the instance administrator beforehand for the attack to work as it relies on api/query.php. An account takeover is possible by sending a change password request via the XSS payload / setting UserJS for persistence / stealing the autofill password / displaying a phishing page with a spoofed URL using history.replaceState() If the victim is an administrator, the attacker can also perform administrative actions. This issue is fixed in version 1.27.0.
It is possible to read the advisory at github.com. The identification of this vulnerability is CVE-2025-59948 since 09/23/2025. The exploitation is known to be difficult. The attack may be initiated remotely. It demands that the victim is doing some kind of user interaction. Technical details of the vulnerability are known, but there is no available exploit. The attack technique deployed by this issue is T1059.007 according to MITRE ATT&CK.
By approaching the search of inurl:api/query.php it is possible to find vulnerable targets with Google Hacking.
Upgrading to version 1.27.0 eliminates this vulnerability. The upgrade is hosted for download at github.com. Applying the patch 7df6c201f2e6a6521d20718dfd8d9794c7437d1f is able to eliminate this problem. The bugfix is ready for download at github.com. The best possible mitigation is suggested to be upgrading to the latest version.
Be aware that VulDB is the high quality source for vulnerability data.
Product
Name
Version
License
Website
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔒VulDB Reliability: 🔍
CVSSv3
VulDB Meta Base Score: 4.9VulDB Meta Temp Score: 4.9
VulDB Base Score: 2.6
VulDB Temp Score: 2.5
VulDB Vector: 🔒
VulDB Reliability: 🔍
NVD Base Score: 5.4
NVD Vector: 🔒
CNA Base Score: 6.7
CNA Vector (GitHub_M): 🔒
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vector | Complexity | Authentication | Confidentiality | Integrity | Availability |
|---|---|---|---|---|---|
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
VulDB Base Score: 🔒
VulDB Temp Score: 🔒
VulDB Reliability: 🔍
Exploiting
Class: Cross site scriptingCWE: CWE-79 / CWE-94 / CWE-74
CAPEC: 🔒
ATT&CK: 🔒
Physical: No
Local: No
Remote: Yes
Availability: 🔒
Status: Not defined
Google Hack: 🔒
EPSS Score: 🔒
EPSS Percentile: 🔒
Price Prediction: 🔍
Current Price Estimation: 🔒
| 0-Day | Unlock | Unlock | Unlock | Unlock |
|---|---|---|---|---|
| Today | Unlock | Unlock | Unlock | Unlock |
Threat Intelligence
Interest: 🔍Active Actors: 🔍
Active APT Groups: 🔍
Countermeasures
Recommended: UpgradeStatus: 🔍
0-Day Time: 🔒
Upgrade: FreshRSS 1.27.0
Patch: 7df6c201f2e6a6521d20718dfd8d9794c7437d1f
Timeline
09/23/2025 CVE reserved09/30/2025 Advisory disclosed
09/30/2025 VulDB entry created
10/04/2025 VulDB entry last update
Sources
Product: github.comAdvisory: GHSA-rwhf-vjjx-gmm9
Status: Confirmed
CVE: CVE-2025-59948 (🔒)
GCVE (CVE): GCVE-0-2025-59948
GCVE (VulDB): GCVE-100-326327
Entry
Created: 09/30/2025 08:22Updated: 10/04/2025 03:43
Changes: 09/30/2025 08:22 (69), 10/04/2025 03:43 (11)
Complete: 🔍
Cache ID: 216::103
Be aware that VulDB is the high quality source for vulnerability data.
No comments yet. Languages: en.
Please log in to comment.