DSL Vuln Context

The vuln context describes the vulnerability in four fields: report, analysis, task and execution.

Field Required Description
report yes Represents a vulnerability report in the vulnerability context. Every vulnerability context requires a report.
analysis no Represents a vulnerability analysis in the vulnerability context. Requires report to be defined first.
task no Represents a vulnerability task in the vulnerability context. Requires analysis to be defined first.
execution no Represents a vulnerability execution in the vulnerability context. Requires task to be defined first.

Note: Each field has an abbreviated version consisting of the first letter to allow shorter descriptions.

  • report -> r
  • analysis -> a
  • task -> t
  • execution -> e

Report

flowchart LR
    reportInitState(report: VlReportInitState) -->|reporter: VlReporter| reportReporterState[VlReportReporterState]
    reportInitState -->|reporter: Set<VlReporter>| reportReporterState
    reportReporterState -->|at: String| reportOnState[VlReportOnState]
    reportOnState -->|on: ClosedRange<ReleaseBranch>| analyseInitState[AnalyseInitState]

Example:

report from dependencyScanner1 at "2025-01-08" on releaseBranch0..releaseBranch0

Report Init State

Represents the initial state of a vulnerability report within the vulnerability reporting DSL.

Function Parameters Return
from The reporter that found the vulnerability. Report Reporter State
from The reporters that found the vulnerability. Report Reporter State

Report Reporter State

Defines the date since when the software security engineering team is aware of this vulnerability.

Function Parameters Return
at A date string in the format YYYY-MM-dd, e.g. 2025-03-07 Report On State

Report On State

Define on what release branches the reported vulnerability was found.

Function Parameters Return
on A range of release branches e.g. v1..v2 Analyse Init State

Analysis

flowchart LR
    analysisInitState(analysis: VlAnalyseInitState) -->|verdict: String| analyseReasoningState[VlAnalyseReasoningState]
    analysisInitState -->|verdict: VlVerdict| analyseReasoningState
    analysisInitState -->|analysedAt: String| analyseVerdictState[VlAnalyseReasoningState]
    analyseVerdictState -->|verdict: String| analyseReasoningState
    analyseVerdictState -->|verdict: VlVerdict| analyseReasoningState
    analyseReasoningState -->|because: String| taskInitState[VlTaskInitState]

Example:

analysis analysedAt "2025-01-12" verdict notAffected because "The vulnerable method `foo()` is not used."

Analyse Init State

Represents the initial analysis state of the vulnerability analysis process within the DSL. Extends the Verdict interface. Allows specifying the date of the analysis.

Function Parameters Return
analysedAt A date string in the format YYYY-MM-dd, e.g. 2025-03-07. If not specified the date of the report is used. Analyse Verdict State
verdict A verdict based on the analysis of the report on the software project. Analyse Reasoning State

Analyse Verdict State

This interface represents a specific state within the vulnerability analysis DSL. It extends the base verdict behavior and provides a focus on analysis-related verdicts for software project reports.

It serves as a part of the fluent interface design to chain analysis verdict actions within the vulnerability reporting and task management DSL.

Function Parameters Return
verdict A verdict based on the analysis of the report on the software project. Analyse Reasoning State

Analyse Reasoning State

Represents the reasoning state within the analysis DSL. This is used to specify the rationale behind a verdict choice during the analysis process.

Function Parameters Return
because The reasoning why the verdict was chosen. Task Init State

Task

flowchart LR
    taskInitState(task: VlTaskInitState) -->|update: String| taskUpdateState[VlTaskUpdateState]
    taskInitState -->|noActionOn: ReleaseGroup| executionInitState(VlExecutionInitState)
    taskInitState -->|waitOnAllFor: Duration| executionInitState
    taskUpdateState -->|atLeastTo: String| taskOnState[VlTaskOnState]
    taskOnState -->|on: ReleaseGroup| taskFollowUpSpecificationState[VlTaskFollowUpSpecificationState]
    taskOnState -->|on: ClosedRange<ReleaseGroup>| taskFollowUpSpecificationState
    taskOnState -->|on: ReleaseBranch| taskFollowUpSpecificationState
    taskFollowUpSpecificationState -->|andNoActionOn: ClosedRange<ReleaseBranch>| executionInitState
    taskFollowUpSpecificationState -->|andNoActionOn: ReleaseGroup| executionInitState
    taskFollowUpSpecificationState -->|andUpdateAtLeastTo: String| taskOnState

Example:

task update "vulnerable.dependency" atLeastTo "1.2.3" on releaseBranch0

Task Init State

Represents the initial state of a task in the vulnerability task management DSL. It serves as the starting point for defining task initialization actions within the DSL.

Function Parameters Return
update The dependency to update as string. Task Update State
noActionOn No actions required on releaseGroup. Execution Init State
waitOnAllFor Wait on all release branches for duration, e.g., 14.days. Execution Init State

Task Update State

Represents an interface for updating the state of a vulnerability task to a specific version. This interface is utilized within the vulnerability reporting DSL to define and manage version updates for tasks in a fluent and declarative manner.

Function Parameters Return
atLeastTo Update at least to the specified version. Task On State

Task On State

Represents the task-on-state within the vulnerability lifecycle management DSL, allowing the specification of actions and follow-up state on certain release branches or groups.

Function Parameters Return
on Describe on what releaseGroup this task applies. Task Follow Up State
on Describe on what releases this task applies. Task Follow Up State
on Describe on what release this task applies. Task Follow Up State

Task Follow Up State

Represents the follow-up state of a task in the vulnerability lifecycle management DSL, allowing further actions to be defined on specific release branches or release groups.

Function Parameters Return
andNoActionOn No further action required on releases. Execution Init State
andNoActionOn No further action required on releaseGroup. Execution Init State
andUpdateAtLeastTo Update at least to the specified version. Task On State

Execution

flowchart LR
    executionInitState(execution: VlExecutionInitState) -->|suppress: VlSuppressionPermanent| executionOnState[VlExecutionOnState]
    executionInitState -->|suppress: VlSuppressionTemporarily| executionSuppressTemporarilyState[VlExecutionSuppressTemporarilyState]
    executionInitState -->|suppress: VlSuppressionUntilNextPublication| executionOnState
    executionInitState -->|fixedAt: String| executionOnState
    executionSuppressTemporarilyState -->|forTime: Duration| executionOnState
    executionOnState -->|on: ReleaseGroup| executionInitState[VlExecutionInitState]
    executionOnState -->|on: ClosedRange<ReleaseGroup>| executionInitState[VlExecutionInitState]
    executionOnState -->|on: ReleaseBranch| executionInitState[VlExecutionInitState]

Example:

execution suppress untilNextPublication on releaseBranch0

Execution Init State

Represents the initial state of an execution in the vulnerability lifecycle management DSL. This interface provides methods to suppress or resolve vulnerabilities during the DSL workflow.

Function Parameters Return
fixedAt Mark a vulnerability as fixed at date e.g. 2025-03-07. Execution on State
suppress Suppress a vulnerability permanently: permanent Execution On State
suppress Suppress a vulnerability for a certain amount of time:temporarily Execution Suppress Temporarily State
suppress Suppress a vulnerability until the next release is published: untilNextPublication Execution On State

Execution Suppress Temporarily State

Represents a state in the vulnerability lifecycle management DSL where execution is temporarily suppressed. This interface allows specifying a waiting duration before transitioning to the next state.

Function Parameters Return
forTime Duration to wait fore, e.g. 14.days Execution On State

Execution On State

Represents the transition state for executing actions on specific releases or release groups within the vulnerability lifecycle management DSL.

This interface provides methods to specify the target releases or release groups where the defined actions will be applied.

Function Parameters Return
on Describe on what releaseGroup this execution applies. A complete Execution
on Describe on what releases this execution applies. A complete Execution
on Describe on what release this execution applies. A complete Execution