cwe - 1322:在单线程中使用阻塞的代码,非阻塞上下文
描述
产品使用一个非阻塞模式,依赖于一个单线程的过程特性,如可伸缩性,但是它包含代码块时调用。
扩展描述
当一个攻击者可以直接调用阻塞的代码,或阻塞的代码会受到环境条件的影响,可以受到攻击者的影响,那么这可能会导致拒绝服务通过引起意想不到的挂起或冻结的代码。阻塞的例子代码可能是一个昂贵的计算或调用阻塞库调用,比如那些执行排它文件操作或需要一个成功的网络操作。
由于限制在多线程模型、单线程模型是用来克服面临的资源约束是通过使用许多线程引起的。在这种模型中,所有的代码通常应该阻塞。如果阻塞的代码,那么事件循环将有效地停止,可不良或危险。这样的模型被用于Python asyncio,绿色。x,节点。js或其他自定义事件循环代码。
的关系
模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
可用性
|
意外调用阻塞的代码可以触发一个无限循环,或一个大的循环,导致软件无限期暂停等。 |
|
潜在的缓解措施
实施阶段:
一般来说,阻塞调用应该替换为异步非阻塞的替代品,可以使用。昂贵的计算应该通过工作线程,尽管正确的方法取决于所使用的框架。 |
实施阶段:
昂贵的计算,考虑将他们分解成多个较小的计算。参考框架的文档用于指导。 |
脆弱性映射笔记
用法:允许
(CWE ID可以用来映射到现实世界的漏洞) |
原因:可接受的使用 |
理由是: 这CWE条目底部的抽象级别,这是一个首选的抽象级别映射到漏洞的根本原因。 |
评论: 仔细阅读这两个名称和描述,以确保此映射是一个适当的配合。不要试图“力”映射到底层基础/变体只是遵守这首选的抽象级别。 |
更多的信息是可用的,请编辑自定义过滤器或选择一个不同的过滤器。
|