COMMON WEAKNESS ENUMERATIONIncomplete

CWE-618

Exposed Unsafe ActiveX Method

An ActiveX control is intended for use in a web browser, but it exposes dangerous methods that perform actions that are outside of the browser's security model (e.g. the zone or domain).

Abstraction

Variant

Structure

Simple

Likelihood of Exploit

Medium

Understand the problem

What is the problem?

An ActiveX control is intended for use in a web browser, but it exposes dangerous methods that perform actions that are outside of the browser's security model (e.g. the zone or domain).

Extended description

ActiveX controls can exercise far greater control over the operating system than typical Java or javascript. Exposed methods can be subject to various vulnerabilities, depending on the implemented behaviors of those methods, and whether input validation is performed on the provided arguments. If there is no integrity checking or origin validation, this method could be invoked by attackers.

Root cause

How and when does the problem arise?

Lifecycle phase

Architecture and Design

Lifecycle phase

Implementation

Risk

What does successful exploitation lead to?

Other

Affected security scopes: Other

Defence

How is it prevented and fixed?

Implementation

Implementation-phase defence

Detail
If you must expose a method, make sure to perform input validation on all arguments, and protect against all possible vulnerabilities.

Architecture and Design

Architecture and design approach

Detail
Use code signing, although this does not protect against any weaknesses that are already in the control.

Architecture and Design · System Configuration

Defence to apply across several lifecycle phases

Detail
Where possible, avoid marking the control as safe for scripting.

Verification

How is it detected?

Automated Static Analysis

High
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.)
CWE-618: Common Weakness Enumeration Entry CWE-618 · DayBreach