CWE-572: Call to Thread run() instead of start()

Variant Draft Simple

CWE版本: 4.18

更新日期: 2025-09-09

弱点描述

The product calls a thread's run() method instead of calling start(), which causes the code to run in the thread of the caller instead of the callee.

扩展描述

In most cases a direct call to a Thread object's run() method is a bug. The programmer intended to begin a new thread of control, but accidentally called run() instead of start(), so the run() method will execute in the caller's thread of control.

常见后果

影响范围: Other

技术影响: Quality Degradation Varies by Context

潜在缓解措施

阶段: Implementation

描述: Use the start() method instead of the run() method.

检测方法

方法: Automated Static Analysis

Automated static analysis, commonly referred to as Static Application Security Testing (SAST), can find some instances of this weakness by analyzing source code (or binary/compiled code) without having to execute it. Typically, this is done by building a model of data flow and control flow, then searching for potentially-vulnerable patterns that connect "sources" (origins of input) with "sinks" (destinations where the data interacts with external components, a lower layer such as the OS, etc.)

有效性: High

引入模式

阶段 说明
Implementation -

适用平台

编程语言
Java (Undetermined)

分类映射

分类名称 条目ID 条目名称 映射适配度
The CERT Oracle Secure Coding Standard for Java (2011) THI00-J Do not invoke Thread.run() -
Software Fault Patterns SFP3 Use of an improper API -
关键信息

CWE ID: CWE-572

抽象级别: Variant

结构: Simple

状态: Draft

相关弱点