Skip to content

Commit feae6fc

Browse files
committed
bearssl: Add patch to disallow empty wildcards and wildcards under TLD level
1 parent 5e923d9 commit feae6fc

2 files changed

Lines changed: 68 additions & 1 deletion

File tree

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

pkg/bearssl/ver

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.6-39-g7bea48e
1+
0.6-39-g7bea48e r1

0 commit comments

Comments
 (0)