summaryrefslogtreecommitdiff
path: root/mail-filter/opendmarc/files/opendmarc-1.4.1.1-CVE-2021-34555.patch
blob: 2bf87ffbde0737bab99154843dc26e7627b726ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
From afa44abe68afe5ce29b6418538a60a642f39e459 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20B=C3=BCrgin?= <dbuergin@gluet.ch>
Date: Thu, 3 Jun 2021 21:59:55 +0200
Subject: [PATCH 1/3] Fix multi-value From handling logic

Fixes #175
---
 opendmarc/opendmarc.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/opendmarc/opendmarc.c b/opendmarc/opendmarc.c
index 65f6b49..bc38103 100644
--- a/opendmarc/opendmarc.c
+++ b/opendmarc/opendmarc.c
@@ -2479,12 +2479,12 @@ mlfi_eom(SMFICTX *ctx)
 				syslog(LOG_ERR,
 				       "%s: multi-valued From field detected",
 				       dfc->mctx_jobid);
-			}
 
-			if (conf->conf_reject_multi_from)
-				return SMFIS_REJECT;
-			else
-				return SMFIS_ACCEPT;
+				if (conf->conf_reject_multi_from)
+					return SMFIS_REJECT;
+				else
+					return SMFIS_ACCEPT;
+			}
 		}
 
 		user = users[0];

From 4ea4b219c6c93dbfd512b1caa433f5a810fdb436 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20B=C3=BCrgin?= <dbuergin@gluet.ch>
Date: Thu, 3 Jun 2021 22:01:34 +0200
Subject: [PATCH 2/3] Guard syslog call with conf_dolog flag

---
 opendmarc/opendmarc.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/opendmarc/opendmarc.c b/opendmarc/opendmarc.c
index bc38103..fb3d4b9 100644
--- a/opendmarc/opendmarc.c
+++ b/opendmarc/opendmarc.c
@@ -2476,9 +2476,12 @@ mlfi_eom(SMFICTX *ctx)
 		{
 			if (strcasecmp(domains[0], domains[c]) != 0)
 			{
-				syslog(LOG_ERR,
-				       "%s: multi-valued From field detected",
-				       dfc->mctx_jobid);
+				if (conf->conf_dolog)
+				{
+					syslog(LOG_ERR,
+					       "%s: multi-valued From field detected",
+					       dfc->mctx_jobid);
+				}
 
 				if (conf->conf_reject_multi_from)
 					return SMFIS_REJECT;

From 1245589ad44baadb3eb18ce110932da8c6fe286c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20B=C3=BCrgin?= <dbuergin@gluet.ch>
Date: Wed, 9 Jun 2021 19:18:21 +0200
Subject: [PATCH 3/3] Skip null domains when checking multi-value From header

---
 opendmarc/opendmarc.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/opendmarc/opendmarc.c b/opendmarc/opendmarc.c
index fb3d4b9..ffcbc3f 100644
--- a/opendmarc/opendmarc.c
+++ b/opendmarc/opendmarc.c
@@ -2474,7 +2474,9 @@ mlfi_eom(SMFICTX *ctx)
 
 		for (c = 1; users[c] != NULL; c++)
 		{
-			if (strcasecmp(domains[0], domains[c]) != 0)
+			if (domains[0] != NULL
+			    && domains[c] != NULL
+			    && strcasecmp(domains[0], domains[c]) != 0)
 			{
 				if (conf->conf_dolog)
 				{