Cyber Posture

CVE-2025-30223

CriticalPublic PoC

Published: 31 March 2025

Published
31 March 2025
Modified
01 August 2025
KEV Added
Patch
CVSS Score 9.3 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N
EPSS Score 0.0045 63.8th percentile
Risk Priority 19 60% EPSS · 20% KEV · 20% CVSS

Summary

CVE-2025-30223 is a critical-severity Cross-site Scripting (CWE-79) vulnerability in Beego Beego. Its CVSS base score is 9.3 (Critical).

Operationally, exploitation aligns with the MITRE ATT&CK technique Drive-by Compromise (T1189); ranked in the top 36.2% of CVEs by exploit likelihood; it is not currently listed in the CISA KEV catalog; a public proof-of-concept is referenced.

The strongest mitigations our analysis identified are NIST 800-53 SI-15 (Information Output Filtering) and SI-2 (Flaw Remediation).

Threat & Defense at a Glance

What attackers do: exploitation maps to Drive-by Compromise (T1189). What defenders deploy: see the NIST 800-53 controls recommended below.
Threat & Defense Details

Mitigating Controls (NIST 800-53 r5)AI

prevent

SI-15 mandates filtering and encoding of output prior to rendering, directly addressing the improper HTML escaping in Beego's RenderForm() that enables XSS injection.

prevent

SI-10 requires validation of user-controlled inputs before processing in RenderForm(), mitigating injection of malicious data even if output escaping is incomplete.

prevent

SI-2 ensures timely flaw remediation by upgrading Beego to version 2.3.6, which fixes the escaping issue in RenderForm().

MITRE ATT&CK Enterprise TechniquesAI

T1189 Drive-by Compromise Initial Access
Adversaries may gain access to a system through a user visiting a website over the normal course of browsing.
Why these techniques?

XSS in RenderForm() allows arbitrary JS injection in browser context via user interaction with attacker-crafted forms, directly enabling drive-by compromise of visiting users.

Confidence: HIGH · MITRE ATT&CK Enterprise v19.0

NVD Description

Beego is an open-source web framework for the Go programming language. Prior to 2.3.6, a Cross-Site Scripting (XSS) vulnerability exists in Beego's RenderForm() function due to improper HTML escaping of user-controlled data. This vulnerability allows attackers to inject malicious JavaScript…

more

code that executes in victims' browsers, potentially leading to session hijacking, credential theft, or account takeover. The vulnerability affects any application using Beego's RenderForm() function with user-provided data. Since it is a high-level function generating an entire form markup, many developers would assume it automatically escapes attributes (the way most frameworks do). This vulnerability is fixed in 2.3.6.

Deeper analysisAI

CVE-2025-30223 is a Cross-Site Scripting (XSS) vulnerability in Beego, an open-source web framework for the Go programming language. Prior to version 2.3.6, the RenderForm() function fails to properly escape user-controlled data when generating HTML form markup, allowing arbitrary JavaScript injection. This issue, classified under CWE-79, carries a CVSS v3.1 base score of 9.3 (AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N) due to its network accessibility, low complexity, lack of required privileges, reliance on user interaction, cross-scope impact, and high confidentiality and integrity effects. It impacts any Beego-based application that invokes RenderForm() with untrusted input, as developers may incorrectly assume automatic attribute escaping akin to other frameworks.

Attackers can exploit this vulnerability remotely without authentication by tricking users into interacting with a maliciously crafted form rendered via RenderForm(). Upon execution in the victim's browser, the injected JavaScript can steal session cookies, credentials, or perform account takeovers, enabling further actions like data exfiltration or unauthorized actions on the victim's behalf. The changed scope (S:C) amplifies risks, as exploitation occurs in the browser context rather than the server.

The vulnerability is addressed in Beego version 2.3.6, where the RenderForm() function now properly escapes user-controlled data. Official mitigation guidance is available in the Beego security advisory at https://github.com/beego/beego/security/advisories/GHSA-2j42-h78h-q4fg and the fixing commit at https://github.com/beego/beego/commit/939bb18c66406466715ddadd25dd9ffa6f169e25; practitioners should upgrade immediately and audit uses of RenderForm() in existing applications.

Details

CWE(s)

Affected Products

beego
beego
≤ 2.3.6

CVEs Like This One

CVE-2025-28855Shared CWE-79
CVE-2025-23714Shared CWE-79
CVE-2025-68871Shared CWE-79
CVE-2025-22594Shared CWE-79
CVE-2025-23852Shared CWE-79
CVE-2026-22438Shared CWE-79
CVE-2025-26586Shared CWE-79
CVE-2025-46410Shared CWE-79
CVE-2025-23489Shared CWE-79
CVE-2026-28113Shared CWE-79

References