commit 8c24aa4

Michael Forney  ·  2026-04-15 06:50:54 +0000 UTC
parent 4106ebe
bearssl: Add patch to disallow empty wildcards and wildcards under TLD level
2 files changed,  +68, -1
+67, -0
 1@@ -0,0 +1,67 @@
 2+From 7077cb239f9405b02b4db968dff0d2fa16698893 Mon Sep 17 00:00:00 2001
 3+From: Michael Forney <mforney@mforney.org>
 4+Date: Sat, 13 Nov 2021 11:28:29 -0800
 5+Subject: [PATCH] Disallow empty wildcards and wildcards at TLD level
 6+
 7+---
 8+ src/x509/x509_minimal.c  | 10 +++++++++-
 9+ src/x509/x509_minimal.t0 | 10 +++++++++-
10+ 2 files changed, 18 insertions(+), 2 deletions(-)
11+
12+diff --git a/src/x509/x509_minimal.c b/src/x509/x509_minimal.c
13+index 04f149b..fc5fa6b 100644
14+--- a/src/x509/x509_minimal.c
15++++ b/src/x509/x509_minimal.c
16+@@ -1474,13 +1474,21 @@ br_x509_minimal_run(void *t0ctx)
17+ 	if (n2 >= 2 && CTX->pad[1] == '*' && CTX->pad[2] == '.') {
18+ 		size_t u;
19+ 
20++		u = 3;
21++		while (u <= n2 && CTX->pad[u] != '.') {
22++			u ++;
23++		}
24++		if (u > n2) {
25++			T0_PUSH(0);
26++			T0_RET();
27++		}
28+ 		u = 0;
29+ 		while (u < n1 && CTX->server_name[u] != '.') {
30+ 			u ++;
31+ 		}
32+ 		u ++;
33+ 		n1 -= u;
34+-		if ((n2 - 2) == n1
35++		if (u > 1 && (n2 - 2) == n1
36+ 			&& eqnocase(&CTX->pad[3], CTX->server_name + u, n1))
37+ 		{
38+ 			T0_PUSHi(-1);
39+diff --git a/src/x509/x509_minimal.t0 b/src/x509/x509_minimal.t0
40+index 80a3701..d3d01da 100644
41+--- a/src/x509/x509_minimal.t0
42++++ b/src/x509/x509_minimal.t0
43+@@ -778,13 +778,21 @@ cc: match-server-name ( -- bool ) {
44+ 	if (n2 >= 2 && CTX->pad[1] == '*' && CTX->pad[2] == '.') {
45+ 		size_t u;
46+ 
47++		u = 3;
48++		while (u <= n2 && CTX->pad[u] != '.') {
49++			u ++;
50++		}
51++		if (u > n2) {
52++			T0_PUSH(0);
53++			T0_RET();
54++		}
55+ 		u = 0;
56+ 		while (u < n1 && CTX->server_name[u] != '.') {
57+ 			u ++;
58+ 		}
59+ 		u ++;
60+ 		n1 -= u;
61+-		if ((n2 - 2) == n1
62++		if (u > 1 && (n2 - 2) == n1
63+ 			&& eqnocase(&CTX->pad[3], CTX->server_name + u, n1))
64+ 		{
65+ 			T0_PUSHi(-1);
66+-- 
67+2.49.0
68+
+1, -1
1@@ -1 +1 @@
2-0.6-39-g7bea48e
3+0.6-39-g7bea48e r1