Skip to content

Specification: CVE Detection in Validation and Client Reporting#6292

Draft
denelon wants to merge 1 commit into
microsoft:masterfrom
denelon:spec/cve-detection-reporting
Draft

Specification: CVE Detection in Validation and Client Reporting#6292
denelon wants to merge 1 commit into
microsoft:masterfrom
denelon:spec/cve-detection-reporting

Conversation

@denelon

@denelon denelon commented Jun 17, 2026

Copy link
Copy Markdown
Collaborator

📖 Description

Specification for integrating CVE detection into the WinGet ecosystem. Covers validation pipeline flagging (winget-pkgs), client reporting via a new winget security command, Group Policy controls for enterprise blocking/reporting, and a package-to-vulnerability mapping system.

Authored with GitHub Copilot assistance.

🔗 References

Related Issues:

🔍 Validation

Spec document — no code changes to validate.

✅ Checklist

📋 Issue Type

  • Bug fix
  • Feature
  • Task
Microsoft Reviewers: Open in CodeFlow

…#2204)

Specification for integrating vulnerability detection into the WinGet
ecosystem — validation pipeline flagging, client reporting via
'winget security' command, and Group Policy controls for enterprise.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

@Trenly Trenly left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My main concern is mostly about using the severity instead of the actual CVSS. I'd prefer to use the actual CVSS if possible, since it provides a greater level of fidelity. If the severity is important for user facing features, that mapping could be internal to the CLI

2. **Known CVE flagging** — If the submitted version has known CVEs:
- Add a `Security-CVE` label to the PR
- Post a bot comment listing CVEs with severity ratings (CVSS score)
- Do NOT auto-reject — moderators approve with acknowledgment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Distinguish between community moderator vs MSFT moderated with waiver

- Do NOT auto-reject — moderators approve with acknowledgment
3. **Severity-based workflow:**
- Critical/High (CVSS ≥ 7.0): Require explicit moderator approval
- Medium (CVSS 4.0–6.9): Warning, auto-approve still possible

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There currently is no auto-approve, everything is either community moderated or MSFT moderated. Auto-approve would only happen for verified publisher


| Command | CVE Behavior |
|---------|-------------|
| `winget list` | `--include-security` flag adds CVE column |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not reuse --details ?

|---------|-------------|
| `winget list` | `--include-security` flag adds CVE column |
| `winget upgrade` | Security-relevant upgrades highlighted with ⚠️ |
| `winget install --version` | Non-blocking warning when version has known CVEs |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocking if GPO disallows installs with CVEs?

| `winget list` | `--include-security` flag adds CVE column |
| `winget upgrade` | Security-relevant upgrades highlighted with ⚠️ |
| `winget install --version` | Non-blocking warning when version has known CVEs |
| `winget show` | `--security` flag shows CVE details |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why add a new flag? winget show is already a single package level, no need to require additional user action just to see CVE data

Security:
Advisories:
- Id: CVE-2024-32002
Severity: Critical

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should users be specifying severity, or should it be determined automatically based on CVSS? What is the risk if a user marks a CVSS 8.0 as Medium severity?

| Argument | Commands | Description |
|----------|----------|-------------|
| `--ignore-security-warnings` | install, upgrade | Proceed despite CVE warnings |
| `--include-security` | list, show | Show CVE information |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See comments above regarding this parameter

|----------|----------|-------------|
| `--ignore-security-warnings` | install, upgrade | Proceed despite CVE warnings |
| `--include-security` | list, show | Show CVE information |
| `--severity` | security scan | Minimum severity to report |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this strictly an enum, or would users be able to do --severity 7.0 ?

Some orgs specify that anything with a CVSS 8.0 or above is not allowed, others allow 7.0 CVSS; More granular control will be needed than just Critical/High/Med/Low in my opinion


### Schema Version

This feature requires manifest schema version 1.29.0 for the optional `Security` field. The CVE detection itself works without manifest changes (uses external database lookups).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove specific version information

Node.js OpenJS.NodeJS 18.12.0 18.20.3 winget ⚠️ High
VS Code Microsoft.VS.. 1.90.0 1.91.0 winget

⚠️ 2 packages have security updates. Run 'winget upgrade --all' to apply.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What if users want to only upgrade packages with security updates? winget upgrade --all --security ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants