logo

oasis

Own branch of Oasis Linux (upstream: <https://git.sr.ht/~mcf/oasis/>) git clone https://anongit.hacktivis.me/git/oasis.git

0003-Disallow-empty-wildcards-and-wildcards-at-TLD-level.patch (1649B)


  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. src/x509/x509_minimal.c | 10 +++++++++-
  7. src/x509/x509_minimal.t0 | 10 +++++++++-
  8. 2 files changed, 18 insertions(+), 2 deletions(-)
  9. diff --git a/src/x509/x509_minimal.c b/src/x509/x509_minimal.c
  10. index 04f149b..fc5fa6b 100644
  11. --- a/src/x509/x509_minimal.c
  12. +++ b/src/x509/x509_minimal.c
  13. @@ -1474,13 +1474,21 @@ br_x509_minimal_run(void *t0ctx)
  14. if (n2 >= 2 && CTX->pad[1] == '*' && CTX->pad[2] == '.') {
  15. size_t u;
  16. + u = 3;
  17. + while (u <= n2 && CTX->pad[u] != '.') {
  18. + u ++;
  19. + }
  20. + if (u > n2) {
  21. + T0_PUSH(0);
  22. + T0_RET();
  23. + }
  24. u = 0;
  25. while (u < n1 && CTX->server_name[u] != '.') {
  26. u ++;
  27. }
  28. u ++;
  29. n1 -= u;
  30. - if ((n2 - 2) == n1
  31. + if (u > 1 && (n2 - 2) == n1
  32. && eqnocase(&CTX->pad[3], CTX->server_name + u, n1))
  33. {
  34. T0_PUSHi(-1);
  35. diff --git a/src/x509/x509_minimal.t0 b/src/x509/x509_minimal.t0
  36. index 80a3701..d3d01da 100644
  37. --- a/src/x509/x509_minimal.t0
  38. +++ b/src/x509/x509_minimal.t0
  39. @@ -778,13 +778,21 @@ cc: match-server-name ( -- bool ) {
  40. if (n2 >= 2 && CTX->pad[1] == '*' && CTX->pad[2] == '.') {
  41. size_t u;
  42. + u = 3;
  43. + while (u <= n2 && CTX->pad[u] != '.') {
  44. + u ++;
  45. + }
  46. + if (u > n2) {
  47. + T0_PUSH(0);
  48. + T0_RET();
  49. + }
  50. u = 0;
  51. while (u < n1 && CTX->server_name[u] != '.') {
  52. u ++;
  53. }
  54. u ++;
  55. n1 -= u;
  56. - if ((n2 - 2) == n1
  57. + if (u > 1 && (n2 - 2) == n1
  58. && eqnocase(&CTX->pad[3], CTX->server_name + u, n1))
  59. {
  60. T0_PUSHi(-1);
  61. --
  62. 2.49.0