目标达成 感谢每一位支持者 — 我们达成了 100% 目标!

目标: 1000 元 · 已筹: 1310

100%

CWE-77 在命令中使用的特殊元素转义处理不恰当(命令注入) 类漏洞列表 1237

CWE-77 在命令中使用的特殊元素转义处理不恰当(命令注入) 类弱点 1237 条 CVE 漏洞汇总,含 AI 中文分析。

CWE-77即命令注入,属于输入验证缺陷。攻击者通过构造包含特殊字符的恶意输入,篡改后端系统命令,从而执行任意指令或获取敏感数据。开发者应避免直接拼接用户输入,需采用白名单过滤、参数化调用或安全API替代系统命令执行,确保输入被严格限制在预期范围内,从源头阻断注入风险。

MITRE CWE 官方描述
CWE:CWE-77 命令注入(Command Injection)中特殊元素的不当中和 英文:产品使用来自上游组件的外部影响输入来构造命令的全部或部分内容,但在将命令发送给下游组件时,未对可能修改预期命令的特殊元素进行中和,或中和不当。 许多协议和产品拥有其自定义的命令语言。尽管操作系统(OS)或 Shell 命令字符串常被发现并作为攻击目标,但开发人员可能未意识到这些其他命令语言也可能易受攻击。
常见影响 (1)
Integrity, Confidentiality, AvailabilityExecute Unauthorized Code or Commands
If a malicious user injects a character (such as a semi-colon) that delimits the end of one command and the beginning of another, it may be possible to then insert an entirely new and unrelated command that was not intended to be executed. This gives an attacker a privilege or capability that they w…
缓解措施 (5)
Architecture and DesignIf at all possible, use library calls rather than external processes to recreate the desired functionality.
ImplementationIf possible, ensure that all external commands called from the program are statically created.
ImplementationAssume all input is malicious. Use an "accept known good" input validation strategy, i.e., use a list of acceptable inputs that strictly conform to specifications. Reject any input that does not strictly conform to specifications, or transform it into something that does. When performing input validation, consider all potentially relevant properties, including length, type of input, the full range…
OperationRun time: Run time policy enforcement may be used in an allowlist fashion to prevent use of any non-sanctioned commands.
System ConfigurationAssign permissions that prevent the user from accessing/opening privileged files.
代码示例 (2)
Consider a "CWE Differentiator" application that uses an an LLM generative AI based "chatbot" to explain the difference between two weaknesses. As input, it accepts two CWE IDs, constructs a prompt string, sends the prompt to the chatbot, and prints the results. The prompt string effectively acts as a command to the chatbot component. Assume that invokeChatbot() calls the chatbot and returns the …
prompt = "Explain the difference between {} and {}".format(arg1, arg2) result = invokeChatbot(prompt) resultHTML = encodeForHTML(result) print resultHTML
Bad · Python
Explain the difference between CWE-77 and CWE-78
Informative
Consider the following program. It intends to perform an "ls -l" on an input filename. The validate_name() subroutine performs validation on the input to make sure that only alphanumeric and "-" characters are allowed, which avoids path traversal (CWE-22) and OS command injection (CWE-78) weaknesses. Only filenames like "abc" or "d-e-f" are intended to be allowed.
my $arg = GetArgument("filename"); do_listing($arg); sub do_listing { my($fname) = @_; if (! validate_name($fname)) { print "Error: name is not well-formed!\n"; return; } # build command my $cmd = "/bin/ls -l $fname"; system($cmd); } sub validate_name { my($name) = @_; if ($name =~ /^[\w\-]+$/) { return(1); } else { return(0); } }
Bad · Perl
if ($name =~ /^\w[\w\-]+$/) ...
Good · Perl
CVE ID标题CVSS风险等级Published
CVE-2017-12341 多款Cisco产品Cisco NX-OS System Software 命令注入漏洞 — Cisco NX-OS 6.7 -2017-11-30
CVE-2017-12352 Cisco Application Policy Infrastructure Controller 命令注入漏洞 — Cisco Application Policy Infrastructure Controller 6.7 -2017-11-30
CVE-2017-12305 Cisco IP Phone 8800系列debug界面命令注入漏洞 — Cisco IP Phone 8800 Series 6.7 -2017-11-16
CVE-2017-6048 Satel Iberia SenNet Data Logger和Electricity Meters 命令注入漏洞 — Satel Iberia SenNet Data Logger and Electricity Meters 8.8 -2017-05-19
CVE-2016-10329 Synology Photo Station 命令注入漏洞 — Synology Photo Station 9.8 -2017-05-12
CVE-2014-9188 Schneider Electric ProClima MDraw30.ocx 缓冲区溢出漏洞 — ProClima 9.8 -2014-12-27
CVE-2014-0773 Advantech WebAccess‘CreateProcess’方法安全漏洞 — WebAccess 8.1 -2014-04-12

CWE-77(在命令中使用的特殊元素转义处理不恰当(命令注入)) 是常见的弱点类别,本平台收录该类弱点关联的 1237 条 CVE 漏洞。