Skip to main content

Grocy CVE-2026-71236

| EUVDEUVD-2026-53309 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-08-05 309f9ea4-e3e9-4c6c-b79d-e8eb01244f2c GHSA-c924-wcfj-cr8j
8.7
CVSS 3.1 · Vendor: 309f9ea4-e3e9-4c6c-b79d-e8eb01244f2c
Share

Severity by source

Vendor (309f9ea4-e3e9-4c6c-b79d-e8eb01244f2c) PRIMARY
8.7 HIGH
AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
vuln.today AI
8.7 HIGH

API write requires authenticated session (PR:L); victim must view stored content (UI:R); stored XSS crosses user boundary (S:C) enabling session theft (C:H) and content manipulation (I:H).

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

Primary rating from Vendor (309f9ea4-e3e9-4c6c-b79d-e8eb01244f2c).

CVSS VectorVendor: 309f9ea4-e3e9-4c6c-b79d-e8eb01244f2c

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

Lifecycle Timeline

2
Analysis Generated
Aug 05, 2026 - 11:36 vuln.today
CVE Published
Aug 05, 2026 - 11:16 cve.org
HIGH 8.7

DescriptionCVE.org

Grocy's API request-body parser (controllers/Api/BaseApiController.php, GetParsedAndFilteredRequestBody) purifies incoming field values with HTMLPurifier, then manually reverses HTML-entity encoding of the resulting output by replacing &amp;lt;, &amp;gt;, and &amp;amp; back to <, >, and & immediately after purification. This double-decode reconstructs live HTML/script tags from the entity-encoded form that HTMLPurifier produced to neutralize them, re-introducing stored XSS across API-writable fields (products, recipes, stock, users, chores, and others) that are rendered elsewhere without re-sanitization.

AnalysisAI

Stored XSS in Grocy's API layer allows authenticated users to permanently inject arbitrary script tags into shared application data, executing in the browsers of any user who views affected records. The vulnerability spans all API-writable resource types - products, recipes, stock entries, user records, and chores - making it broadly exploitable across the application. The CVSS score of 8.7 with Scope:Changed reflects the cross-user impact characteristic of stored XSS: a single low-privileged write yields high confidentiality and integrity impact against other users' sessions. No public exploit code or CISA KEV listing is identified at time of analysis.

Technical ContextAI

Grocy is a self-hosted PHP ERP for household and grocery management, with an API layer rooted in controllers/Api/BaseApiController.php. The vulnerable function GetParsedAndFilteredRequestBody applies HTMLPurifier to incoming API field values, which is the correct first step - HTMLPurifier converts dangerous characters like < and > into their HTML-entity equivalents (&lt;, &gt;) to neutralize them. However, the code then explicitly reverses this neutralization by performing string replacements: &amp;lt; → <, &amp;gt; → >, and &amp;amp; → &. This post-processing step reconstructs the exact HTML/script tags that HTMLPurifier was designed to eliminate. The root cause maps to CWE-79 (Improper Neutralization of Input During Web Page Generation) - specifically a sanitization bypass via developer-introduced double-decode. The affected CPE is not formally registered in NVD; the product is identified via its GitHub repository at https://github.com/grocy/grocy. Because the stored content is rendered elsewhere in the application without re-sanitization, the injected payload persists and fires for all users who encounter the record.

RemediationAI

The primary fix is to remove or disable the post-HTMLPurifier entity-reversal logic in controllers/Api/BaseApiController.php - specifically, the string replacement calls that convert &amp;lt; back to <, &amp;gt; back to >, and &amp;amp; back to &. HTMLPurifier's encoded output should be stored and rendered as-is, or the application should adopt a single, trusted sanitization pass at display time rather than at input time. No vendor-released patched version has been identified from available data; administrators should monitor the Grocy GitHub repository at https://github.com/grocy/grocy for commits addressing this issue. As a compensating control pending a patch, administrators of multi-user instances should restrict API write access to trusted accounts only, reducing the pool of users who can introduce malicious payloads. Restricting API authentication to administrator-level accounts removes the PR:L attack surface but may break integrations. Single-user self-hosted deployments face lower risk since the attacker and victim are the same person.

More in PHP

View all
CVE-2019-11043 CRITICAL POC
9.8 Oct 28

In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it

CVE-2012-1823 CRITICAL POC
9.8 May 11

sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not

CVE-2016-1555 CRITICAL POC
9.8 Apr 21

(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear

CVE-2018-11138 CRITICAL POC
9.8 May 31

The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by

CVE-2024-11680 CRITICAL POC
9.8 Nov 26

ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C

CVE-2025-49113 CRITICAL POC
9.9 Jun 02

Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au

CVE-2017-9841 CRITICAL POC
9.8 Jun 27

Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c

CVE-2025-0108 HIGH POC
8.8 Feb 12

Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers

CVE-2021-25298 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2021-25296 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2013-4983 CRITICAL POC
10.0 Sep 10

The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

Share

CVE-2026-71236 vulnerability details – vuln.today

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