Skip to content

step-ca has Unauthenticated Certificate Issuance via SCEP UpdateReq (MessageType=18)

Critical severity GitHub Reviewed Published Mar 19, 2026 in smallstep/certificates • Updated Apr 6, 2026

Package

gomod github.com/smallstep/certificates (Go)

Affected versions

< 0.30.0

Patched versions

0.30.0

Description

Summary

An attacker can force a Step CA SCEP provisioner to create certificates without completing certain protocol authorization checks.

Details

SCEP requests carry a message type. On receipt of a SCEP request, Step CA starts processing it by parsing its contents. Message types that were considered valid, but not explicitly supported in Step CA, would result in getting parsed successfully. While processing the parsed SCEP message, authorization logic would be skipped for the non-supported message types.

As a result, the request would be treated as authorized, bypassing the authorization checks normally enforced as part of the SCEP protocol and its implementation in Step CA.

Authorization webhooks and regular CA policies, such as allowed names and restrictions on certificate validity periods, remain in place.

Mitigations

If you are unable to upgrade to v0.30.0 or newer, the attack can be mitigated by (temporarily) disabling or removing SCEP provisioners, or restricting access to SCEP provisioners to trusted clients only.

Fix

In v0.30.0, additional validation was added to SCEP provisioners, so that they reject unsupported message types.

Acknowledgements

This issue was identified and reported by Prasanth Sundararajan.

Embargo List

If your organization runs Step CA in production and would like advance, embargoed notification of future security updates, visit https://u.step.sm/disclosure to request inclusion on our embargo list.

Stay safe, and thank you for helping us keep the ecosystem secure.

If you have urgent questions, please contact security@smallstep.com.

References

@dopey dopey published to smallstep/certificates Mar 19, 2026
Published to the GitHub Advisory Database Mar 19, 2026
Reviewed Mar 19, 2026
Published by the National Vulnerability Database Mar 19, 2026
Last updated Apr 6, 2026

Severity

Critical

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
None

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N

EPSS score

Exploit Prediction Scoring System (EPSS)

This score estimates the probability of this vulnerability being exploited within the next 30 days. Data provided by FIRST.
(1st percentile)

Weaknesses

Improper Authentication

When an actor claims to have a given identity, the product does not prove or insufficiently proves that the claim is correct. Learn more on MITRE.

Improper Certificate Validation

The product does not validate, or incorrectly validates, a certificate. Learn more on MITRE.

CVE ID

CVE-2026-30836

GHSA ID

GHSA-q4r8-xm5f-56gw

Credits

Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.