PublicCMS CVE-2026-121583
LOWAttack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privileged trade user
-
ExploitSend pendingRefund request with forged userId
-
ExecutionBypass per-user authorization check
-
ImpactRead or alter another user's refund record
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization verification
MITRE ATT&CK
1 technique across 1 tactic: Defense Evasion The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires a valid authenticated low-privileged account (PR:L) on a PublicCMS 5 instance where the trade/payment module is deployed and the web trade payment controller is reachable. The specific trigger is manipulation of the userId argument passed to TradePaymentService.pendingRefund, causing the function to operate on another user's refund context without verifying ownership. Limiting factors: exploitation is gated by authentication, by the presence/enablement of the trade payment feature, and by version - the vulnerable web trade payment controller was removed starting with the 202608 series (commit 7329437), so instances at or beyond that series are not affected. |
| Impact | All severity signals point to a LOW real-world priority. The supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L) scores 2.1, and the vuln.today Decision label is 'monitor' - the lowest actionable tier. The PR:L metric confirms exploitation is authenticated: an attacker needs a valid low-privileged account on the PublicCMS trade module before manipulating the userId argument. Impact is bounded to Low across confidentiality and integrity, consistent with an IDOR-style authorization bypass (CWE-285) over trade/refund records rather than system compromise. The E:P threat metric and the VulDB statement that an exploit is public indicate a proof-of-concept exists, but this is NOT in CISA KEV and no EPSS score is provided, so there is no evidence of widespread or automated exploitation. No signals conflict; they consistently describe a low-impact, authentication-gated flaw in a niche product. Note one metadata caveat: the input Tags say 'Authentication Bypass,' but CWE-285 and the description ('authorization bypass') describe an AUTHORIZATION bypass - verify classification with the source, as it changes the control that mitigates it. |
| Exploit ScenarioDerived | A registered low-privileged user of a PublicCMS 5 deployment running the trade/payment module sends a crafted request to the TradePaymentService.pendingRefund function, substituting another account's value for the userId argument. Because the function does not verify that the caller owns the referenced record (CWE-285), the attacker reads or acts on another user's pending-refund data. A public PoC reference is cited by VulDB, and the low attack complexity (AC:L) means the manipulation is a simple parameter change, though a valid authenticated session is required. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 04, 2026
Authorization bypass in Sanluan PublicCMS 5's trade payment module lets an authenticated low-privileged user supply an arbitrary userId to TradePaymentService.pendingRefund and act on another user's refund records without any ownership check. Exposure is limited to deployments running a release before the 202608 series with the trade payment feature deployed and the web trade payment controller reachable, since that controller was removed in commit 7329437. VulDB reports a public proof-of-concept reference and the CVSS 4.0 vector carries E:P, but there is no confirmed active exploitation (not in CISA KEV) and the vendor-linked priority label is monitor.
RemediationAI
Move to a PublicCMS release from the 202608 series or later, which removes the vulnerable web trade payment controller (commit 7329437) and is the only complete fix described in the available data; no back-ported patch version is listed for older branches, so 202608-or-later should be treated as the target. If upgrading cannot be done immediately, disable the trade/payment module so TradePaymentService.pendingRefund is not reachable, and restrict access to the web trade payment controller endpoints to trusted administrative roles; both measures reduce exposure but leave the underlying authorization logic in place for any caller that can still reach it, and disabling the module removes trade payment functionality for legitimate users. Track https://vuldb.com/vuln/430428 and https://vuldb.com/vuln/430428/cti for updated fix information, noting the current priority label is monitor with no confirmed active exploitation.
Affected ProductsAI
Sanluan PublicCMS 5 releases that bundle the publiccms-trade module and expose the web trade payment controller, i.e. builds prior to the 202608 series; the affected component is publiccms-parent/publiccms-trade, specifically com.publiccms.logic.service.trade.TradePaymentService.pendingRefund. Releases from the 202608 series onward are not affected because commit 7329437 removed the controller. No CPE identifiers were supplied in the intelligence feed; the available vendor references are the VulDB entry https://vuldb.com/cve/CVE-2026-121583, the submission record https://vuldb.com/submit/1020265, and the advisory pages https://vuldb.com/vuln/430428 and https://vuldb.com/vuln/430428/cti.
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 flaw is CWE-285 (Improper Authorization) in the Java-based Sanluan PublicCMS content management system, inside the publiccms-trade module at publiccms-parent/publiccms-trade/src/main/java/com/publiccms/logic/service/trade/TradePaymentService.java. The pendingRefund function accepts a userId argument and, per the assessment, acts on another user's refund context without verifying that the caller owns that identity, so a low-privileged authenticated account can reach records belonging to other users through the web trade payment controller. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N with low confidentiality, integrity and availability impact, E:P) maps closely to the assessed CVSS 3.1 vector AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N: network reachable, no user interaction, but gated by a valid low-privileged login and by the presence of the trade payment feature. The defect is effectively retired in newer code rather than patched in place, because commit 7329437 removed the web trade payment controller starting with the 202608 series; the precise internal trigger beyond manipulation of the userId argument is not described in the available sources.
Know when Java 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:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P
Remote, low-complexity parameter manipulation (AV:N/AC:L) but requires an authenticated low-privileged account (PR:L); impact is limited to another user's refund data (C:L/I:L), with no availability effect.
Primary rating from Vendor (vuldb).
CVSS VectorVendor: vuldb
DescriptionCVE.org
A vulnerability was identified in Sanluan PublicCMS 5. This affects the function TradePaymentService.pendingRefund of the file publiccms-parent/publiccms-trade/src/main/java/com/publiccms/logic/service/trade/TradePaymentService.java. The manipulation of the argument userId leads to authorization bypass. The attack is possible to be carried out remotely. The exploit is publicly available and might be used. The web trade payment controller was removed starting with the 202608 series (commit 7329437).
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.
Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m
Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti
Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent
Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug
JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up
Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up
The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow
Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla
The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during
NVD
CVE.org
VulDB
GitHub PoC
Exploit-DB