Files
Groene AI 27c393ef80 Reject slash-containing spans for SSL certificate DNS/CN wildcards
A DNS label or CN never contains a slash, but the single-label rule only
forbade '.' in the matched wildcard span. Since extractAllSubjects stores
raw non-empty dNSName/CN strings without validation, a configured subject
'DNS:*.corp.example.com' matched a certificate SAN 'DNS:foo/bar.corp.example.com'
(matched span 'foo/bar' has no '.'), and a slash-containing CN wildcard matched
a deeper name. The original slash-count guard rejected these; the single-label
rewrite had dropped that guard for the DNS/CN branch.

For a DNS label (a CN or a 'DNS:' SAN), the matched span must now be a single
non-empty component containing neither '.' nor '/'. Other SANs ('URI:' or
configured without a recognized prefix) keep the original rule (only '/'
forbidden), which is identical to the slash-count guard, so URI matching is
unchanged.

Adds regression certificate client12 (CN and DNS SAN both
'foo/bar.corp.example.com') and negative cases to the DNS and CN wildcard
single-label tests.
2026-06-25 15:56:19 +00:00

29 lines
1.7 KiB
Plaintext

-----BEGIN CERTIFICATE REQUEST-----
MIIErTCCApUCAQAwaDELMAkGA1UEBhMCUlUxEzARBgNVBAgMClNvbWUtU3RhdGUx
ITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEhMB8GA1UEAwwYZm9v
L2Jhci5jb3JwLmV4YW1wbGUuY29tMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
CgKCAgEAnzjsCXVg/HDXMBs3iuCLbFVwRWr4+bYwd7dwCbg7QxPfYBYcDiImpA47
Su//FveTR7PLovCRugWwYSAPGaobzdysLOsnHCgF6XU0DTB06KOvNNkJrWAxF/nj
SgmlT0MpYPDT8qRX+iNxqkxSl2j4hT5buWI3P8RYqi/FOk6JxtN2kOiRwIT03tNN
zYUkPR2xR8MdAuiVgmWTqFBgCkgfz0aTLOZmJaiTHmFSkuNbQezkPoz+LstkoCdx
HYUNboAbKjLJFql06OZPQpOW6taA06f0XdUx9iVjtCXrOdmyEVDkT1KrFyp5rxm3
l2gzLzsE7i0YGspAUY+Nr76BLJ2DhWyql+Qf7ohhAnQD5hBD+vL5Z8kVTOqK80HB
wVgypCE76ni/xgnNzxyY2KIEWDFBs75ib/hCy9FZsHNbcdEyB02cfVmpsxIMmVSf
w7voR3tl1Gqyen5VoghZr+0bkfBU/chl8MQ8fgWWmplfLFjLfMhrLq6MN9+ADUIm
71bfGyUt9L9fVkPHNklOzUniPpduf+pwx67q+Oc7nfJ53AbB1B8m6fnwQExKo3AM
7ZKFGJRezoRYU+ExNNtdbAWwCdRvAnedCM7dbg1qh8XPr9rZo6v/2a8ENSXAVcaS
BznC7NW1B/dL14b6ee8lbyt/2Xe9/fqtRNkc4yrDHNUJPR6qTC0CAwEAAaAAMA0G
CSqGSIb3DQEBCwUAA4ICAQBq1OE0uLFei6+lvGfH/k1Y2ZW51OuumHKfsR9bbE6c
AFXsQlujlZ4xcyoGunjljPwgINakyZ0sBRLBAOp2bpj/GQbUqYkfT0/B66a8YNhl
tZoxVGpoDhHFKiuTfiVaUhIM36fvB2IMPTw+Es6WLt3SKo1AJXD5Ug0vXYb7CCmR
NWSAlLWm3lcUccC+a0lyr0JIINfpO86XouGt7mDzFNE6R5QFK5DF3BhTU3oVnRD1
8JrP1u6kHRcjb9fH/6xYOEj11NyZOUs8OHldPn1BktEB5xtG0x4TOhLOYzZIipCN
uYu33QY+69RsPBjPZhLK34RiO2YgOFFNU2kbBPFWwN0nwuZQ+MAmrGUloxajHCIs
tjik9xfSGkB/FwkMnb1OLhTByih+uMD6nnlvHoO6soCK88/oyV8/HUMCl4gzs9C/
usJYy5IzkxEF3xT2AOpJJ4bydA2mSZ9M2OQJ8fuT4+xSveiZATeh+Ngnz85Ao5op
Ke3rsduAyhd6vMPez/P5+RChp4ipWl7saRZ5HehqNXsAUIvtdxmbQISZpOJyTUU5
yzZ47CtyhRMR0rbTw/TlmVY0hGA+7SrggJh0WxFtTtZ0gZJdE26nedvL17BURdkF
7hbMIqAAZN1TYIbtxuEkySojLj1KEGTUoc22YAW1ZMPpqumo7zZrhxk0edwN92al
2Q==
-----END CERTIFICATE REQUEST-----