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

目标: 1000 元 · 已筹: 1336

100%

CWE-354 完整性检查值验证不恰当 类漏洞列表 92

CWE-354 完整性检查值验证不恰当 类弱点 92 条 CVE 漏洞汇总,含 AI 中文分析。

CWE-354 属于完整性校验失效漏洞,指产品未正确验证消息的校验和或完整性检查值。攻击者常利用此缺陷篡改传输中的数据,而系统因无法检测修改导致处理恶意或损坏信息。开发者应严格遵循协议规范,在数据使用前实施正确的校验算法,确保数据未被篡改,从而有效规避此类安全风险。

MITRE CWE 官方描述
CWE:CWE-354 完整性校验值验证不当 英文:产品未验证或错误验证消息的完整性校验值(integrity check values)或“校验和”(checksums)。这可能导致其无法检测数据在传输过程中是否被修改或损坏。 在使用前对校验和(checksums)进行不当验证会带来不必要的风险,而这种风险很容易得到缓解。协议规范描述了用于计算校验和(checksum)的算法。因此,实现该计算并验证计算得到的校验和(checksum)与接收到的校验和(checksum)是否匹配,是一件简单的事情。对计算得到的校验和(checksum)与接收到的校验和(checksum)进行不当验证可能会导致更为严重的后果。
常见影响 (3)
Integrity, Other Modify Application Data, Other
Integrity checks usually use a secret key that helps authenticate the data origin. Skipping integrity checking generally opens up the possibility that new data from an invalid source can be injected.
Integrity, Other Other
Data that is parsed and used may be corrupted.
Non-Repudiation, Other Hide Activities, Other
Without a checksum check, it is impossible to determine if any changes have been made to the data after it was sent.
缓解措施 (1)
Implementation Ensure that the checksums present in messages are properly checked in accordance with the protocol specification before they are parsed and used.
代码示例 (1)
The following example demonstrates the weakness.
sd = socket(AF_INET, SOCK_DGRAM, 0); serv.sin_family = AF_INET; serv.sin_addr.s_addr = htonl(INADDR_ANY); servr.sin_port = htons(1008); bind(sd, (struct sockaddr *) & serv, sizeof(serv)); while (1) { memset(msg, 0x0, MAX_MSG); clilen = sizeof(cli); if (inet_ntoa(cli.sin_addr)==...) n = recvfrom(sd, msg, MAX_MSG, 0, (struct sockaddr *) & cli, &clilen); }
Bad · C
while(true) { DatagramPacket packet = new DatagramPacket(data,data.length,IPAddress, port); socket.send(sendPacket); }
Bad · Java
CVE ID 标题 CVSS 风险等级 Published
CVE-2017-3224 Quagga 安全漏洞 — Protocol 6.9 - 2018-07-24
CVE-2018-5441 PHOENIX CONTACT mGuard 安全漏洞 — PHOENIX CONTACT mGuard 8.1 - 2018-01-30

CWE-354(完整性检查值验证不恰当) 是常见的弱点类别,本平台收录该类弱点关联的 92 条 CVE 漏洞。