Skip to content

Commit 68eabe7

Browse files
committed
Merge branch 'main' into 2.0
2 parents b98742a + bfaf2f8 commit 68eabe7

60 files changed

Lines changed: 1882 additions & 56 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

SPECS/avahi/CVE-2023-38469.patch

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
From c89fd5f2e85052f1f8b74ddeff38235932236889 Mon Sep 17 00:00:00 2001
2+
From: Kanishk-Bansal <kbkanishk975@gmail.com>
3+
Date: Wed, 27 Nov 2024 08:48:59 +0000
4+
Subject: [PATCH] Fix CVE patch
5+
6+
---
7+
avahi-core/rr.c | 9 ++++++++-
8+
1 file changed, 8 insertions(+), 1 deletion(-)
9+
10+
diff --git a/avahi-core/rr.c b/avahi-core/rr.c
11+
index 7fa0bee..b03a24c 100644
12+
--- a/avahi-core/rr.c
13+
+++ b/avahi-core/rr.c
14+
@@ -32,6 +32,7 @@
15+
#include <avahi-common/malloc.h>
16+
#include <avahi-common/defs.h>
17+
18+
+#include "dns.h"
19+
#include "rr.h"
20+
#include "log.h"
21+
#include "util.h"
22+
@@ -688,11 +689,17 @@ int avahi_record_is_valid(AvahiRecord *r) {
23+
case AVAHI_DNS_TYPE_TXT: {
24+
25+
AvahiStringList *strlst;
26+
+ size_t used = 0;
27+
28+
- for (strlst = r->data.txt.string_list; strlst; strlst = strlst->next)
29+
+ for (strlst = r->data.txt.string_list; strlst; strlst = strlst->next) {
30+
if (strlst->size > 255 || strlst->size <= 0)
31+
return 0;
32+
33+
+ used += 1+strlst->size;
34+
+ if (used > AVAHI_DNS_RDATA_MAX)
35+
+ return 0;
36+
+ }
37+
+
38+
return 1;
39+
}
40+
}
41+
--
42+
2.45.2
43+

SPECS/avahi/CVE-2023-38470.patch

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
From cc5f44eb015384d8c764646c48b9da80f811446c Mon Sep 17 00:00:00 2001
2+
From: Kanishk-Bansal <kbkanishk975@gmail.com>
3+
Date: Mon, 2 Dec 2024 10:25:43 +0000
4+
Subject: [PATCH] Fix CVE-2023-38470
5+
6+
---
7+
avahi-common/domain-test.c | 14 ++++++++++++++
8+
avahi-common/domain.c | 2 +-
9+
2 files changed, 15 insertions(+), 1 deletion(-)
10+
11+
diff --git a/avahi-common/domain-test.c b/avahi-common/domain-test.c
12+
index cf763ec..3acc1c1 100644
13+
--- a/avahi-common/domain-test.c
14+
+++ b/avahi-common/domain-test.c
15+
@@ -45,6 +45,20 @@ int main(AVAHI_GCC_UNUSED int argc, AVAHI_GCC_UNUSED char *argv[]) {
16+
printf("%s\n", s = avahi_normalize_name_strdup("fo\\\\o\\..f oo."));
17+
avahi_free(s);
18+
19+
+ printf("%s\n", s = avahi_normalize_name_strdup("."));
20+
+ avahi_free(s);
21+
+
22+
+ s = avahi_normalize_name_strdup(",.=.}.=.?-.}.=.?.?.}.}.?.?.?.z.?.?.}.}."
23+
+ "}.?.?.?.r.=.=.}.=.?.}}.}.?.?.?.zM.=.=.?.?.}.}.?.?.}.}.}"
24+
+ ".?.?.?.r.=.=.}.=.?.}}.}.?.?.?.zM.=.=.?.?.}.}.?.?.?.zM.?`"
25+
+ "?.}.}.}.?.?.?.r.=.?.}.=.?.?.}.?.?.?.}.=.?.?.}??.}.}.?.?."
26+
+ "?.z.?.?.}.}.}.?.?.?.r.=.=.}.=.?.}}.}.?.?.?.zM.?`?.}.}.}."
27+
+ "??.?.zM.?`?.}.}.}.?.?.?.r.=.?.}.=.?.?.}.?.?.?.}.=.?.?.}?"
28+
+ "?.}.}.?.?.?.z.?.?.}.}.}.?.?.?.r.=.=.}.=.?.}}.}.?.?.?.zM."
29+
+ "?`?.}.}.}.?.?.?.r.=.=.?.?`.?.?}.}.}.?.?.?.r.=.?.}.=.?.?."
30+
+ "}.?.?.?.}.=.?.?.}");
31+
+ assert(s == NULL);
32+
+
33+
printf("%i\n", avahi_domain_equal("\\065aa bbb\\.\\046cc.cc\\\\.dee.fff.", "Aaa BBB\\.\\.cc.cc\\\\.dee.fff"));
34+
printf("%i\n", avahi_domain_equal("A", "a"));
35+
36+
diff --git a/avahi-common/domain.c b/avahi-common/domain.c
37+
index 3b1ab68..e66d241 100644
38+
--- a/avahi-common/domain.c
39+
+++ b/avahi-common/domain.c
40+
@@ -201,7 +201,7 @@ char *avahi_normalize_name(const char *s, char *ret_s, size_t size) {
41+
}
42+
43+
if (!empty) {
44+
- if (size < 1)
45+
+ if (size < 2)
46+
return NULL;
47+
48+
*(r++) = '.';
49+
--
50+
2.45.2
51+

SPECS/avahi/CVE-2023-38471.patch

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
From 48467feda7135e3fa2392294387601f88a06f001 Mon Sep 17 00:00:00 2001
2+
From: Kanishk-Bansal <kbkanishk975@gmail.com>
3+
Date: Mon, 2 Dec 2024 10:49:17 +0000
4+
Subject: [PATCH] Fix CVE-2023-38471 patch
5+
6+
---
7+
avahi-core/server.c | 27 +++++++++++++++++++++------
8+
1 file changed, 21 insertions(+), 6 deletions(-)
9+
10+
diff --git a/avahi-core/server.c b/avahi-core/server.c
11+
index e507750..40f1d68 100644
12+
--- a/avahi-core/server.c
13+
+++ b/avahi-core/server.c
14+
@@ -1295,7 +1295,11 @@ static void update_fqdn(AvahiServer *s) {
15+
}
16+
17+
int avahi_server_set_host_name(AvahiServer *s, const char *host_name) {
18+
- char *hn = NULL;
19+
+ char label_escaped[AVAHI_LABEL_MAX*4+1];
20+
+ char label[AVAHI_LABEL_MAX];
21+
+ char *hn = NULL, *h;
22+
+ size_t len;
23+
+
24+
assert(s);
25+
26+
AVAHI_CHECK_VALIDITY(s, !host_name || avahi_is_valid_host_name(host_name), AVAHI_ERR_INVALID_HOST_NAME);
27+
@@ -1305,17 +1309,28 @@ int avahi_server_set_host_name(AvahiServer *s, const char *host_name) {
28+
else
29+
hn = avahi_normalize_name_strdup(host_name);
30+
31+
- hn[strcspn(hn, ".")] = 0;
32+
+ h = hn;
33+
+ if (!avahi_unescape_label((const char **)&hn, label, sizeof(label))) {
34+
+ avahi_free(h);
35+
+ return AVAHI_ERR_INVALID_HOST_NAME;
36+
+ }
37+
+
38+
+ avahi_free(h);
39+
+
40+
+ h = label_escaped;
41+
+ len = sizeof(label_escaped);
42+
+ if (!avahi_escape_label(label, strlen(label), &h, &len))
43+
+ return AVAHI_ERR_INVALID_HOST_NAME;
44+
45+
- if (avahi_domain_equal(s->host_name, hn) && s->state != AVAHI_SERVER_COLLISION) {
46+
- avahi_free(hn);
47+
+ if (avahi_domain_equal(s->host_name, label_escaped) && s->state != AVAHI_SERVER_COLLISION)
48+
return avahi_server_set_errno(s, AVAHI_ERR_NO_CHANGE);
49+
- }
50+
51+
withdraw_host_rrs(s);
52+
53+
avahi_free(s->host_name);
54+
- s->host_name = hn;
55+
+ s->host_name = avahi_strdup(label_escaped);
56+
+ if (!s->host_name)
57+
+ return AVAHI_ERR_NO_MEMORY;
58+
59+
update_fqdn(s);
60+
61+
--
62+
2.45.2
63+

SPECS/avahi/CVE-2023-38472.patch

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
From 2cc17a0febc2c1f70db147d9d56861f3520bacad Mon Sep 17 00:00:00 2001
2+
From: Kanishk-Bansal <kbkanishk975@gmail.com>
3+
Date: Mon, 2 Dec 2024 04:44:07 +0000
4+
Subject: [PATCH] Fix CVE patch
5+
6+
---
7+
avahi-client/client-test.c | 3 +++
8+
avahi-daemon/dbus-entry-group.c | 2 +-
9+
2 files changed, 4 insertions(+), 1 deletion(-)
10+
11+
diff --git a/avahi-client/client-test.c b/avahi-client/client-test.c
12+
index 7d04a6a..57750a4 100644
13+
--- a/avahi-client/client-test.c
14+
+++ b/avahi-client/client-test.c
15+
@@ -258,6 +258,9 @@ int main (AVAHI_GCC_UNUSED int argc, AVAHI_GCC_UNUSED char *argv[]) {
16+
printf("%s\n", avahi_strerror(avahi_entry_group_add_service (group, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, 0, "Lathiat's Site", "_http._tcp", NULL, NULL, 80, "foo=bar", NULL)));
17+
printf("add_record: %d\n", avahi_entry_group_add_record (group, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, 0, "TestX", 0x01, 0x10, 120, "\5booya", 6));
18+
19+
+ error = avahi_entry_group_add_record (group, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, 0, "TestX", 0x01, 0x10, 120, "", 0);
20+
+ assert(error != AVAHI_OK);
21+
+
22+
avahi_entry_group_commit (group);
23+
24+
domain = avahi_domain_browser_new (avahi, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, NULL, AVAHI_DOMAIN_BROWSER_BROWSE, 0, avahi_domain_browser_callback, (char*) "omghai3u");
25+
diff --git a/avahi-daemon/dbus-entry-group.c b/avahi-daemon/dbus-entry-group.c
26+
index 4e879a5..aa23d4b 100644
27+
--- a/avahi-daemon/dbus-entry-group.c
28+
+++ b/avahi-daemon/dbus-entry-group.c
29+
@@ -340,7 +340,7 @@ DBusHandlerResult avahi_dbus_msg_entry_group_impl(DBusConnection *c, DBusMessage
30+
if (!(r = avahi_record_new_full (name, clazz, type, ttl)))
31+
return avahi_dbus_respond_error(c, m, AVAHI_ERR_NO_MEMORY, NULL);
32+
33+
- if (avahi_rdata_parse (r, rdata, size) < 0) {
34+
+ if (!rdata || avahi_rdata_parse (r, rdata, size) < 0) {
35+
avahi_record_unref (r);
36+
return avahi_dbus_respond_error(c, m, AVAHI_ERR_INVALID_RDATA, NULL);
37+
}
38+
--
39+
2.45.2
40+

SPECS/avahi/CVE-2023-38473.patch

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
From e6348a0e1f1f42547dce80135afea806125654cc Mon Sep 17 00:00:00 2001
2+
From: Kanishk-Bansal <kbkanishk975@gmail.com>
3+
Date: Mon, 2 Dec 2024 09:20:54 +0000
4+
Subject: [PATCH] Fix CVE-2023-38473
5+
6+
---
7+
avahi-common/alternative-test.c | 3 +++
8+
avahi-common/alternative.c | 27 +++++++++++++++++++--------
9+
2 files changed, 22 insertions(+), 8 deletions(-)
10+
11+
diff --git a/avahi-common/alternative-test.c b/avahi-common/alternative-test.c
12+
index 9255435..681fc15 100644
13+
--- a/avahi-common/alternative-test.c
14+
+++ b/avahi-common/alternative-test.c
15+
@@ -31,6 +31,9 @@ int main(AVAHI_GCC_UNUSED int argc, AVAHI_GCC_UNUSED char *argv[]) {
16+
const char* const test_strings[] = {
17+
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
18+
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXüüüüüüü",
19+
+ ").",
20+
+ "\\.",
21+
+ "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\\\\",
22+
"gurke",
23+
"-",
24+
" #",
25+
diff --git a/avahi-common/alternative.c b/avahi-common/alternative.c
26+
index b3d39f0..a094e6d 100644
27+
--- a/avahi-common/alternative.c
28+
+++ b/avahi-common/alternative.c
29+
@@ -49,15 +49,20 @@ static void drop_incomplete_utf8(char *c) {
30+
}
31+
32+
char *avahi_alternative_host_name(const char *s) {
33+
+ char label[AVAHI_LABEL_MAX], alternative[AVAHI_LABEL_MAX*4+1];
34+
+ char *alt, *r, *ret;
35+
const char *e;
36+
- char *r;
37+
+ size_t len;
38+
39+
assert(s);
40+
41+
if (!avahi_is_valid_host_name(s))
42+
return NULL;
43+
44+
- if ((e = strrchr(s, '-'))) {
45+
+ if (!avahi_unescape_label(&s, label, sizeof(label)))
46+
+ return NULL;
47+
+
48+
+ if ((e = strrchr(label, '-'))) {
49+
const char *p;
50+
51+
e++;
52+
@@ -74,19 +79,18 @@ char *avahi_alternative_host_name(const char *s) {
53+
54+
if (e) {
55+
char *c, *m;
56+
- size_t l;
57+
int n;
58+
59+
n = atoi(e)+1;
60+
if (!(m = avahi_strdup_printf("%i", n)))
61+
return NULL;
62+
63+
- l = e-s-1;
64+
+ len = e-label-1;
65+
66+
- if (l >= AVAHI_LABEL_MAX-1-strlen(m)-1)
67+
- l = AVAHI_LABEL_MAX-1-strlen(m)-1;
68+
+ if (len >= AVAHI_LABEL_MAX-1-strlen(m)-1)
69+
+ len = AVAHI_LABEL_MAX-1-strlen(m)-1;
70+
71+
- if (!(c = avahi_strndup(s, l))) {
72+
+ if (!(c = avahi_strndup(label, len))) {
73+
avahi_free(m);
74+
return NULL;
75+
}
76+
@@ -100,7 +104,7 @@ char *avahi_alternative_host_name(const char *s) {
77+
} else {
78+
char *c;
79+
80+
- if (!(c = avahi_strndup(s, AVAHI_LABEL_MAX-1-2)))
81+
+ if (!(c = avahi_strndup(label, AVAHI_LABEL_MAX-1-2)))
82+
return NULL;
83+
84+
drop_incomplete_utf8(c);
85+
@@ -109,6 +113,13 @@ char *avahi_alternative_host_name(const char *s) {
86+
avahi_free(c);
87+
}
88+
89+
+ alt = alternative;
90+
+ len = sizeof(alternative);
91+
+ ret = avahi_escape_label(r, strlen(r), &alt, &len);
92+
+
93+
+ avahi_free(r);
94+
+ r = avahi_strdup(ret);
95+
+
96+
assert(avahi_is_valid_host_name(r));
97+
98+
return r;
99+
--
100+
2.45.2
101+

SPECS/avahi/avahi.spec

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
Summary: Local network service discovery
44
Name: avahi
55
Version: 0.8
6-
Release: 2%{?dist}
6+
Release: 3%{?dist}
77
License: LGPLv2+
88
Vendor: Microsoft Corporation
99
Distribution: Mariner
@@ -13,6 +13,11 @@ Patch0: %{name}-libevent-pc-fix.patch
1313
Patch1: CVE-2021-3468.patch
1414
Patch2: CVE-2021-3502.patch
1515
Patch3: CVE-2023-1981.patch
16+
Patch4: CVE-2023-38470.patch
17+
Patch5: CVE-2023-38471.patch
18+
Patch6: CVE-2023-38472.patch
19+
Patch7: CVE-2023-38473.patch
20+
Patch8: CVE-2023-38469.patch
1621
BuildRequires: automake
1722
BuildRequires: dbus-devel >= 0.90
1823
BuildRequires: dbus-glib-devel >= 0.70
@@ -406,6 +411,13 @@ exit 0
406411
%endif
407412

408413
%changelog
414+
* Mon Dec 02 2024 Kanishk Bansal <kanbansal@microsoft.com> - 0.8-3
415+
- Fix CVE-2023-38473 wih an upstream patch
416+
- Fix CVE-2023-38472 wih an upstream patch
417+
- Fix CVE-2023-38471 wih an upstream patch
418+
- Fix CVE-2023-38470 wih an upstream patch
419+
- Fix CVE-2023-38469.patch with an upstream patch
420+
409421
* Tue Oct 29 2024 Daniel McIlvaney <damcilva@microsoft.com> - 0.8-2
410422
- Fix CVE-2023-1981 with an upstream patch
411423

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
From 78460dfd1cbe6887b60af68c19c782e089e5012e Mon Sep 17 00:00:00 2001
2+
From: Suresh Thelkar <sthelkar@microsoft.com>
3+
Date: Wed, 4 Dec 2024 15:32:17 +0530
4+
Subject: [PATCH] Patch for CVE-2024-24786
5+
6+
Upstream patch details are given below.
7+
https://github.com/protocolbuffers/protobuf-go/commit/f01a588
8+
---
9+
.../protobuf/encoding/protojson/well_known_types.go | 4 ++++
10+
.../protobuf/internal/encoding/json/decode.go | 2 +-
11+
2 files changed, 5 insertions(+), 1 deletion(-)
12+
13+
diff --git a/vendor/google.golang.org/protobuf/encoding/protojson/well_known_types.go b/vendor/google.golang.org/protobuf/encoding/protojson/well_known_types.go
14+
index 6c37d41..70c2ba6 100644
15+
--- a/vendor/google.golang.org/protobuf/encoding/protojson/well_known_types.go
16+
+++ b/vendor/google.golang.org/protobuf/encoding/protojson/well_known_types.go
17+
@@ -348,6 +348,10 @@ func (d decoder) skipJSONValue() error {
18+
}
19+
}
20+
}
21+
+ case json.EOF:
22+
+ // This can only happen if there's a bug in Decoder.Read.
23+
+ // Avoid an infinite loop if this does happen.
24+
+ return errors.New("unexpected EOF")
25+
}
26+
return nil
27+
}
28+
diff --git a/vendor/google.golang.org/protobuf/internal/encoding/json/decode.go b/vendor/google.golang.org/protobuf/internal/encoding/json/decode.go
29+
index d043a6e..d2b3ac0 100644
30+
--- a/vendor/google.golang.org/protobuf/internal/encoding/json/decode.go
31+
+++ b/vendor/google.golang.org/protobuf/internal/encoding/json/decode.go
32+
@@ -121,7 +121,7 @@ func (d *Decoder) Read() (Token, error) {
33+
34+
case ObjectClose:
35+
if len(d.openStack) == 0 ||
36+
- d.lastToken.kind == comma ||
37+
+ d.lastToken.kind&(Name|comma) != 0 ||
38+
d.openStack[len(d.openStack)-1] != ObjectOpen {
39+
return Token{}, d.newSyntaxError(tok.pos, unexpectedFmt, tok.RawString())
40+
}
41+
--
42+
2.34.1
43+

0 commit comments

Comments
 (0)