目標達成 すべての支援者に感謝 — 100%達成しました!

目標: 1000 CNY · 調達済み: 1000 CNY

100.0%

CWE-621 变量抽取错误 类漏洞列表 1

CWE-621 变量抽取错误 类弱点 1 条 CVE 漏洞汇总,含 AI 中文分析。

CWE-621 属于变量提取错误漏洞,指程序使用外部输入直接确定变量名,却未验证其合法性。攻击者可利用此缺陷覆盖非预期的内存变量,从而引发数据篡改或逻辑绕过。开发者应避免直接信任外部输入作为变量标识,需实施严格的白名单校验机制,确保仅允许预定义的合法变量名,从而防止非法变量覆盖风险。

MITRE CWE 官方描述
CWE:CWE-621 变量提取错误(Variable Extraction Error) 英文:产品使用外部输入来确定将信息提取到其中的变量名称,而未验证所指定变量的名称是否有效。这可能导致程序覆盖非预期的变量。 例如,在 PHP 中,extract(提取)函数可用于提供类似于 register_globals 的功能,这是一种在生产系统中经常被禁用的危险功能。如果未使用适当的参数调用 extract() 或 import_request_variables(),则可能允许任意全局变量被覆盖,包括超全局变量(superglobals)。在其他解释型语言(包括自定义语言)中也可能存在类似的功能。
常见影响 (1)
IntegrityModify Application Data
An attacker could modify sensitive data or program variables.
缓解措施 (3)
ImplementationUse allowlists of variable names that can be extracted.
ImplementationConsider refactoring your code to avoid extraction routines altogether.
ImplementationIn PHP, call extract() with options such as EXTR_SKIP and EXTR_PREFIX_ALL; call import_request_variables() with a prefix argument. Note that these capabilities are not present in all PHP versions.
代码示例 (1)
This code uses the credentials sent in a POST request to login a user.
//Log user in, and set $isAdmin to true if user is an administrator function login($user,$pass){ $query = buildQuery($user,$pass); mysql_query($query); if(getUserRole($user) == "Admin"){ $isAdmin = true; } } $isAdmin = false; extract($_POST); login(mysql_real_escape_string($user),mysql_real_escape_string($pass));
Bad · PHP
CVE IDタイトルCVSS深刻度公開日
CVE-2018-6334 Facebook HHVM 安全漏洞 — HHVM 9.8 -2018-12-31

CWE-621(变量抽取错误) 是常见的弱点类别,本平台收录该类弱点关联的 1 条 CVE 漏洞。