Hi Ross and Steve,

Please consider this patch for the Kirkstone branch.

As discussed again with Meenali, I will be sending patches to remaining
branches.

Thanks & Regards,
Vijay

On Fri, Nov 17, 2023 at 10:13 PM Randy MacLeod <randy.macl...@windriver.com>
wrote:

> Add Hari who will inform WR developers on his team once the CVE
> co-ordination scheme is available.
> Add Marta.
>
> On 2023-11-17 9:11 a.m., Meenali Gupta via lists.openembedded.org wrote:
>
> Hi Ross,
>
> As discussed with Vijay,  we'll cooperate on this CVE fixes.
>
> Marta,
>
>
> Do you have a wiki page set-up?
>
>
> I see:
>
>    https://wiki.yoctoproject.org/wiki/Synchronization_CVEs
>
> and it mentions, but does not point to, "A synchronization wiki page".
>
>
>
> ../Randy
>
>
>
> Regards
> Meenali
> ------------------------------
> *From:* Vijay Anusuri <vanus...@mvista.com> <vanus...@mvista.com>
> *Sent:* 16 November 2023 21:31
> *To:* jpuhl...@mvista.com <jpuhl...@mvista.com> <jpuhl...@mvista.com>;
> Ross Burton <ross.bur...@arm.com> <ross.bur...@arm.com>; Gupta, Meenali
> <meenali.gu...@windriver.com> <meenali.gu...@windriver.com>
> *Cc:* openembedded-core@lists.openembedded.org
> <openembedded-core@lists.openembedded.org>
> <openembedded-core@lists.openembedded.org>
> *Subject:* Re: [OE-core][kirkstone][PATCH] avahi: Fix for multiple CVE's
>
> *CAUTION: This email comes from a non Wind River email account!*
> Do not click links or open attachments unless you recognize the sender and
> know the content is safe.
> Hi Ross,
>
> As discussed with Meenali, I agreed she was going to do this work.
> She has already submitted patches for multiple branches ( master,
> mickledore and kirkstone ).
>
> For CVE-2023-38469, we need to include 2 commits to fix the CVE. Meenali
> will send the v2 patch for CVE-2023-38469 which will include 2 patches for
> all the branches.
>
> Thank you Meenali for your timely response.
>
> Thanks & Regards,
> Vijay
>
> On Thu, Nov 16, 2023 at 7:56 PM Jeremy Puhlman via lists.openembedded.org
> <https://urldefense.com/v3/__http://lists.openembedded.org__;!!AjveYdw8EvQ!YPO7NIVZeFhisahLwBZhGe79g5KJTQ1xZy2oR8nOiu1HFt04VXa4FsGlVur74kFZ8fbQ-9H_LG6OXVHPwKv5R-0$>
> <jpuhlman=mvista....@lists.openembedded.org> wrote:
>
>
>
> On 11/16/2023 3:22 AM, Ross Burton wrote:
> > Hi Vijay and Meenali,
> >
> > Hopefully this will show everyone - especially WR and Montavista - that
> we need to communicate better when working on CVEs.  In the short term at
> least, Marta proposed a wiki page which can be updated via a tool and when
> someone is working on an issue that can be marked to avoid duplication of
> effort.  Would that be acceptable to both of your companies?
>
> Yeah, I think something like that would be great on our end, provided
> its automated and the data can be extracted, so it can be consolidated
> in internal CVE tracking that we are currently required to.
>
> >
> > I’ve not checked that the fixes are identical, but apparently I need to
> remind everyone that we take fixes in *master first* and then backport to
> the releases in order.
> There should also be an agree upon change decoration to indicate
> non-applicability/differently addressed in earlier releases.
>
> With 4 year LTS releases many issues are just not going to be applicable
> to master. Also there may well be very good reasons to fix a given set
> of CVEs in
> completely different ways, but making sure they are addressed in both is
> important. Setting aside this example, in almost all cases on master
> moving to the fixed version, is almost always the right answer, where as
> on say dunfell, moving to the new version may have too many knock on
> effects to make sense.
> In this instance, Khem has already indicated moving to the new release
> may make sense for both kirkstone and master.
>
> >
> > Luckily the avahi recipe is fairly untouched so this should be trivial.
> Can you both discuss and agree who is going to do this?
> Vijay can you work with Meenali to consolidate this patch.
> >
> > Ross
> >
> >> On 16 Nov 2023, at 04:05, Vijay Anusuri via lists.openembedded.org
> <https://urldefense.com/v3/__http://lists.openembedded.org__;!!AjveYdw8EvQ!YPO7NIVZeFhisahLwBZhGe79g5KJTQ1xZy2oR8nOiu1HFt04VXa4FsGlVur74kFZ8fbQ-9H_LG6OXVHPwKv5R-0$>
> <vanusuri=mvista....@lists.openembedded.org> wrote:
> >>
> >> From: Vijay Anusuri <vanus...@mvista.com>
> >>
> >> Patches to fix:
> >> CVE-2023-38469
> >> CVE-2023-38470
> >> CVE-2023-38471
> >> CVE-2023-38472
> >> CVE-2023-38473
> >>
> >> Upstream-Status: Backport [
> https://github.com/lathiat/avahi/commit/a337a1ba7d15853fb56deef1f464529af6e3a1cf
> <https://urldefense.com/v3/__https://github.com/lathiat/avahi/commit/a337a1ba7d15853fb56deef1f464529af6e3a1cf__;!!AjveYdw8EvQ!YPO7NIVZeFhisahLwBZhGe79g5KJTQ1xZy2oR8nOiu1HFt04VXa4FsGlVur74kFZ8fbQ-9H_LG6OXVHPSO96cKo$>
> >> &
> >>
> https://github.com/lathiat/avahi/commit/c6cab87df290448a63323c8ca759baa516166237
> <https://urldefense.com/v3/__https://github.com/lathiat/avahi/commit/c6cab87df290448a63323c8ca759baa516166237__;!!AjveYdw8EvQ!YPO7NIVZeFhisahLwBZhGe79g5KJTQ1xZy2oR8nOiu1HFt04VXa4FsGlVur74kFZ8fbQ-9H_LG6OXVHPlqjXgoU$>
> >> &
> >>
> https://github.com/lathiat/avahi/commit/94cb6489114636940ac683515417990b55b5d66c
> <https://urldefense.com/v3/__https://github.com/lathiat/avahi/commit/94cb6489114636940ac683515417990b55b5d66c__;!!AjveYdw8EvQ!YPO7NIVZeFhisahLwBZhGe79g5KJTQ1xZy2oR8nOiu1HFt04VXa4FsGlVur74kFZ8fbQ-9H_LG6OXVHPRzxTKP8$>
> >> &
> >>
> https://github.com/lathiat/avahi/commit/894f085f402e023a98cbb6f5a3d117bd88d93b09
> <https://urldefense.com/v3/__https://github.com/lathiat/avahi/commit/894f085f402e023a98cbb6f5a3d117bd88d93b09__;!!AjveYdw8EvQ!YPO7NIVZeFhisahLwBZhGe79g5KJTQ1xZy2oR8nOiu1HFt04VXa4FsGlVur74kFZ8fbQ-9H_LG6OXVHPwzmpbVo$>
> >> &
> >>
> https://github.com/lathiat/avahi/commit/b024ae5749f4aeba03478e6391687c3c9c8dee40
> <https://urldefense.com/v3/__https://github.com/lathiat/avahi/commit/b024ae5749f4aeba03478e6391687c3c9c8dee40__;!!AjveYdw8EvQ!YPO7NIVZeFhisahLwBZhGe79g5KJTQ1xZy2oR8nOiu1HFt04VXa4FsGlVur74kFZ8fbQ-9H_LG6OXVHPOROFOvo$>
> >> &
> >>
> https://github.com/lathiat/avahi/commit/b448c9f771bada14ae8de175695a9729f8646797
> <https://urldefense.com/v3/__https://github.com/lathiat/avahi/commit/b448c9f771bada14ae8de175695a9729f8646797__;!!AjveYdw8EvQ!YPO7NIVZeFhisahLwBZhGe79g5KJTQ1xZy2oR8nOiu1HFt04VXa4FsGlVur74kFZ8fbQ-9H_LG6OXVHPLLeXBTg$>
> ]
> >>
> >> Signed-off-by: Vijay Anusuri <vanus...@mvista.com>
> >> ---
> >> meta/recipes-connectivity/avahi/avahi_0.8.bb
> <https://urldefense.com/v3/__http://avahi_0.8.bb__;!!AjveYdw8EvQ!YPO7NIVZeFhisahLwBZhGe79g5KJTQ1xZy2oR8nOiu1HFt04VXa4FsGlVur74kFZ8fbQ-9H_LG6OXVHPSo_Ck9E$>
> |   6 +
> >> .../avahi/files/CVE-2023-38469-1.patch        |  47 ++++++++
> >> .../avahi/files/CVE-2023-38469-2.patch        |  65 +++++++++++
> >> .../avahi/files/CVE-2023-38470.patch          |  56 +++++++++
> >> .../avahi/files/CVE-2023-38471.patch          |  72 ++++++++++++
> >> .../avahi/files/CVE-2023-38472.patch          |  47 ++++++++
> >> .../avahi/files/CVE-2023-38473.patch          | 108 ++++++++++++++++++
> >> 7 files changed, 401 insertions(+)
> >> create mode 100644
> meta/recipes-connectivity/avahi/files/CVE-2023-38469-1.patch
> >> create mode 100644
> meta/recipes-connectivity/avahi/files/CVE-2023-38469-2.patch
> >> create mode 100644
> meta/recipes-connectivity/avahi/files/CVE-2023-38470.patch
> >> create mode 100644
> meta/recipes-connectivity/avahi/files/CVE-2023-38471.patch
> >> create mode 100644
> meta/recipes-connectivity/avahi/files/CVE-2023-38472.patch
> >> create mode 100644
> meta/recipes-connectivity/avahi/files/CVE-2023-38473.patch
> >>
> >> diff --git a/meta/recipes-connectivity/avahi/avahi_0.8.bb
> <https://urldefense.com/v3/__http://avahi_0.8.bb__;!!AjveYdw8EvQ!YPO7NIVZeFhisahLwBZhGe79g5KJTQ1xZy2oR8nOiu1HFt04VXa4FsGlVur74kFZ8fbQ-9H_LG6OXVHPSo_Ck9E$>
> b/meta/recipes-connectivity/avahi/avahi_0.8.bb
> <https://urldefense.com/v3/__http://avahi_0.8.bb__;!!AjveYdw8EvQ!YPO7NIVZeFhisahLwBZhGe79g5KJTQ1xZy2oR8nOiu1HFt04VXa4FsGlVur74kFZ8fbQ-9H_LG6OXVHPSo_Ck9E$>
> >> index b5c966c102..772fb43939 100644
> >> --- a/meta/recipes-connectivity/avahi/avahi_0.8.bb
> <https://urldefense.com/v3/__http://avahi_0.8.bb__;!!AjveYdw8EvQ!YPO7NIVZeFhisahLwBZhGe79g5KJTQ1xZy2oR8nOiu1HFt04VXa4FsGlVur74kFZ8fbQ-9H_LG6OXVHPSo_Ck9E$>
> >> +++ b/meta/recipes-connectivity/avahi/avahi_0.8.bb
> <https://urldefense.com/v3/__http://avahi_0.8.bb__;!!AjveYdw8EvQ!YPO7NIVZeFhisahLwBZhGe79g5KJTQ1xZy2oR8nOiu1HFt04VXa4FsGlVur74kFZ8fbQ-9H_LG6OXVHPSo_Ck9E$>
> >> @@ -26,6 +26,12 @@ SRC_URI = "
> https://github.com/lathiat/avahi/releases/download/v${PV}/avahi-${PV}
> <https://urldefense.com/v3/__https://github.com/lathiat/avahi/releases/download/v$*7BPV*7D/avahi-$*7BPV*7D__;JSUlJQ!!AjveYdw8EvQ!YPO7NIVZeFhisahLwBZhGe79g5KJTQ1xZy2oR8nOiu1HFt04VXa4FsGlVur74kFZ8fbQ-9H_LG6OXVHP0Am2ovI$>
> >>             file://0001-Fix-opening-etc-resolv.conf-error.patch \
> >>             file://handle-hup.patch \
> >>             file://local-ping.patch \
> >> +           file://CVE-2023-38469-1.patch \
> >> +           file://CVE-2023-38469-2.patch \
> >> +           file://CVE-2023-38470.patch \
> >> +           file://CVE-2023-38471.patch \
> >> +           file://CVE-2023-38472.patch \
> >> +           file://CVE-2023-38473.patch \
> >>             "
> >>
> >> UPSTREAM_CHECK_URI = "https://github.com/lathiat/avahi/releases/
> <https://urldefense.com/v3/__https://github.com/lathiat/avahi/releases/__;!!AjveYdw8EvQ!YPO7NIVZeFhisahLwBZhGe79g5KJTQ1xZy2oR8nOiu1HFt04VXa4FsGlVur74kFZ8fbQ-9H_LG6OXVHP0Xuk60k$>
> "
> >> diff --git
> a/meta/recipes-connectivity/avahi/files/CVE-2023-38469-1.patch
> b/meta/recipes-connectivity/avahi/files/CVE-2023-38469-1.patch
> >> new file mode 100644
> >> index 0000000000..99c717daf3
> >> --- /dev/null
> >> +++ b/meta/recipes-connectivity/avahi/files/CVE-2023-38469-1.patch
> >> @@ -0,0 +1,47 @@
> >> +From a337a1ba7d15853fb56deef1f464529af6e3a1cf Mon Sep 17 00:00:00 2001
> >> +From: Evgeny Vereshchagin <evv...@ya.ru>
> >> +Date: Mon, 23 Oct 2023 20:29:31 +0000
> >> +Subject: [PATCH] core: reject overly long TXT resource records
> >> +
> >> +Closes https://github.com/lathiat/avahi/issues/455
> <https://urldefense.com/v3/__https://github.com/lathiat/avahi/issues/455__;!!AjveYdw8EvQ!YPO7NIVZeFhisahLwBZhGe79g5KJTQ1xZy2oR8nOiu1HFt04VXa4FsGlVur74kFZ8fbQ-9H_LG6OXVHP-9siEVs$>
> >> +
> >> +CVE-2023-38469
> >> +
> >> +Upstream-Status: Backport [
> https://github.com/lathiat/avahi/commit/a337a1ba7d15853fb56deef1f464529af6e3a1cf
> <https://urldefense.com/v3/__https://github.com/lathiat/avahi/commit/a337a1ba7d15853fb56deef1f464529af6e3a1cf__;!!AjveYdw8EvQ!YPO7NIVZeFhisahLwBZhGe79g5KJTQ1xZy2oR8nOiu1HFt04VXa4FsGlVur74kFZ8fbQ-9H_LG6OXVHPSO96cKo$>
> ]
> >> +CVE: CVE-2023-38469
> >> +Signed-off-by: Vijay Anusuri <vanus...@mvista.com>
> >> +---
> >> + avahi-core/rr.c | 9 ++++++++-
> >> + 1 file changed, 8 insertions(+), 1 deletion(-)
> >> +
> >> +diff --git a/avahi-core/rr.c b/avahi-core/rr.c
> >> +index 2bb89244..9c04ebbd 100644
> >> +--- a/avahi-core/rr.c
> >> ++++ b/avahi-core/rr.c
> >> +@@ -32,6 +32,7 @@
> >> + #include <avahi-common/malloc.h>
> >> + #include <avahi-common/defs.h>
> >> +
> >> ++#include "dns.h"
> >> + #include "rr.h"
> >> + #include "log.h"
> >> + #include "util.h"
> >> +@@ -689,11 +690,17 @@ int avahi_record_is_valid(AvahiRecord *r) {
> >> +         case AVAHI_DNS_TYPE_TXT: {
> >> +
> >> +             AvahiStringList *strlst;
> >> ++            size_t used = 0;
> >> +
> >> +-            for (strlst = r->data.txt.string_list; strlst; strlst =
> strlst->next)
> >> ++            for (strlst = r->data.txt.string_list; strlst; strlst =
> strlst->next) {
> >> +                 if (strlst->size > 255 || strlst->size <= 0)
> >> +                     return 0;
> >> +
> >> ++                used += 1+strlst->size;
> >> ++                if (used > AVAHI_DNS_RDATA_MAX)
> >> ++                    return 0;
> >> ++            }
> >> ++
> >> +             return 1;
> >> +         }
> >> +     }
> >> diff --git
> a/meta/recipes-connectivity/avahi/files/CVE-2023-38469-2.patch
> b/meta/recipes-connectivity/avahi/files/CVE-2023-38469-2.patch
> >> new file mode 100644
> >> index 0000000000..b83a70e29b
> >> --- /dev/null
> >> +++ b/meta/recipes-connectivity/avahi/files/CVE-2023-38469-2.patch
> >> @@ -0,0 +1,65 @@
> >> +From c6cab87df290448a63323c8ca759baa516166237 Mon Sep 17 00:00:00 2001
> >> +From: Evgeny Vereshchagin <evv...@ya.ru>
> >> +Date: Wed, 25 Oct 2023 18:15:42 +0000
> >> +Subject: [PATCH] tests: pass overly long TXT resource records
> >> +
> >> +to make sure they don't crash avahi any more.
> >> +
> >> +It reproduces https://github.com/lathiat/avahi/issues/455
> <https://urldefense.com/v3/__https://github.com/lathiat/avahi/issues/455__;!!AjveYdw8EvQ!YPO7NIVZeFhisahLwBZhGe79g5KJTQ1xZy2oR8nOiu1HFt04VXa4FsGlVur74kFZ8fbQ-9H_LG6OXVHP-9siEVs$>
> >> +
> >> +Upstream-Status: Backport [
> https://github.com/lathiat/avahi/commit/c6cab87df290448a63323c8ca759baa516166237
> <https://urldefense.com/v3/__https://github.com/lathiat/avahi/commit/c6cab87df290448a63323c8ca759baa516166237__;!!AjveYdw8EvQ!YPO7NIVZeFhisahLwBZhGe79g5KJTQ1xZy2oR8nOiu1HFt04VXa4FsGlVur74kFZ8fbQ-9H_LG6OXVHPlqjXgoU$>
> ]
> >> +CVE: CVE-2023-38469
> >> +Signed-off-by: Vijay Anusuri <vanus...@mvista.com>
> >> +---
> >> + avahi-client/client-test.c | 14 ++++++++++++++
> >> + 1 file changed, 14 insertions(+)
> >> +
> >> +diff --git a/avahi-client/client-test.c b/avahi-client/client-test.c
> >> +index 7d04a6a..66e3574 100644
> >> +--- a/avahi-client/client-test.c
> >> ++++ b/avahi-client/client-test.c
> >> +@@ -22,6 +22,7 @@
> >> + #endif
> >> +
> >> + #include <stdio.h>
> >> ++#include <string.h>
> >> + #include <assert.h>
> >> +
> >> + #include <avahi-client/client.h>
> >> +@@ -33,6 +34,8 @@
> >> + #include <avahi-common/malloc.h>
> >> + #include <avahi-common/timeval.h>
> >> +
> >> ++#include <avahi-core/dns.h>
> >> ++
> >> + static const AvahiPoll *poll_api = NULL;
> >> + static AvahiSimplePoll *simple_poll = NULL;
> >> +
> >> +@@ -222,6 +225,9 @@ int main (AVAHI_GCC_UNUSED int argc,
> AVAHI_GCC_UNUSED char *argv[]) {
> >> +     uint32_t cookie;
> >> +     struct timeval tv;
> >> +     AvahiAddress a;
> >> ++    uint8_t rdata[AVAHI_DNS_RDATA_MAX+1];
> >> ++    AvahiStringList *txt = NULL;
> >> ++    int r;
> >> +
> >> +     simple_poll = avahi_simple_poll_new();
> >> +     poll_api = avahi_simple_poll_get(simple_poll);
> >> +@@ -258,6 +264,14 @@ int main (AVAHI_GCC_UNUSED int argc,
> AVAHI_GCC_UNUSED char *argv[]) {
> >> +     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)));
> >> +     printf("add_record: %d\n", avahi_entry_group_add_record (group,
> AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, 0, "TestX", 0x01, 0x10, 120,
> "\5booya", 6));
> >> +
> >> ++    memset(rdata, 1, sizeof(rdata));
> >> ++    r = avahi_string_list_parse(rdata, sizeof(rdata), &txt);
> >> ++    assert(r >= 0);
> >> ++    assert(avahi_string_list_serialize(txt, NULL, 0) ==
> sizeof(rdata));
> >> ++    error = avahi_entry_group_add_service_strlst(group,
> AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, 0, "TestX", "_qotd._tcp", NULL, NULL,
> 123, txt);
> >> ++    assert(error == AVAHI_ERR_INVALID_RECORD);
> >> ++    avahi_string_list_free(txt);
> >> ++
> >> +     avahi_entry_group_commit (group);
> >> +
> >> +     domain = avahi_domain_browser_new (avahi, AVAHI_IF_UNSPEC,
> AVAHI_PROTO_UNSPEC, NULL, AVAHI_DOMAIN_BROWSER_BROWSE, 0,
> avahi_domain_browser_callback, (char*) "omghai3u");
> >> +--
> >> +2.25.1
> >> +
> >> diff --git a/meta/recipes-connectivity/avahi/files/CVE-2023-38470.patch
> b/meta/recipes-connectivity/avahi/files/CVE-2023-38470.patch
> >> new file mode 100644
> >> index 0000000000..1cbb00dcab
> >> --- /dev/null
> >> +++ b/meta/recipes-connectivity/avahi/files/CVE-2023-38470.patch
> >> @@ -0,0 +1,56 @@
> >> +From 94cb6489114636940ac683515417990b55b5d66c Mon Sep 17 00:00:00 2001
> >> +From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemen...@redhat.com>
> >> +Date: Tue, 11 Apr 2023 15:29:59 +0200
> >> +Subject: [PATCH] Ensure each label is at least one byte long
> >> +
> >> +The only allowed exception is single dot, where it should return empty
> >> +string.
> >> +
> >> +Fixes #454.
> >> +
> >> +Upstream-Status: Backport [
> https://github.com/lathiat/avahi/commit/94cb6489114636940ac683515417990b55b5d66c
> <https://urldefense.com/v3/__https://github.com/lathiat/avahi/commit/94cb6489114636940ac683515417990b55b5d66c__;!!AjveYdw8EvQ!YPO7NIVZeFhisahLwBZhGe79g5KJTQ1xZy2oR8nOiu1HFt04VXa4FsGlVur74kFZ8fbQ-9H_LG6OXVHPRzxTKP8$>
> ]
> >> +CVE: CVE-2023-38470
> >> +Signed-off-by: Vijay Anusuri <vanus...@mvista.com>
> >> +---
> >> + avahi-common/domain-test.c | 14 ++++++++++++++
> >> + avahi-common/domain.c      |  2 +-
> >> + 2 files changed, 15 insertions(+), 1 deletion(-)
> >> +
> >> +diff --git a/avahi-common/domain-test.c b/avahi-common/domain-test.c
> >> +index cf763eca6..3acc1c1e4 100644
> >> +--- a/avahi-common/domain-test.c
> >> ++++ b/avahi-common/domain-test.c
> >> +@@ -45,6 +45,20 @@ int main(AVAHI_GCC_UNUSED int argc,
> AVAHI_GCC_UNUSED char *argv[]) {
> >> +     printf("%s\n", s = avahi_normalize_name_strdup("fo\\\\o\\..f
> oo."));
> >> +     avahi_free(s);
> >> +
> >> ++    printf("%s\n", s = avahi_normalize_name_strdup("."));
> >> ++    avahi_free(s);
> >> ++
> >> ++    s =
> avahi_normalize_name_strdup(",.=.}.=.?-.}.=.?.?.}.}.?.?.?.z.?.?.}.}."
> >> ++    "}.?.?.?.r.=.=.}.=.?.}}.}.?.?.?.zM.=.=.?.?.}.}.?.?.}.}.}"
> >> ++    ".?.?.?.r.=.=.}.=.?.}}.}.?.?.?.zM.=.=.?.?.}.}.?.?.?.zM.?`"
> >> ++    "?.}.}.}.?.?.?.r.=.?.}.=.?.?.}.?.?.?.}.=.?.?.}??.}.}.?.?."
> >> ++    "?.z.?.?.}.}.}.?.?.?.r.=.=.}.=.?.}}.}.?.?.?.zM.?`?.}.}.}."
> >> ++    "??.?.zM.?`?.}.}.}.?.?.?.r.=.?.}.=.?.?.}.?.?.?.}.=.?.?.}?"
> >> ++    "?.}.}.?.?.?.z.?.?.}.}.}.?.?.?.r.=.=.}.=.?.}}.}.?.?.?.zM."
> >> ++    "?`?.}.}.}.?.?.?.r.=.=.?.?`.?.?}.}.}.?.?.?.r.=.?.}.=.?.?."
> >> ++    "}.?.?.?.}.=.?.?.}");
> >> ++    assert(s == NULL);
> >> ++
> >> +     printf("%i\n", avahi_domain_equal("\\065aa
> bbb\\.\\046cc.cc\\\\.dee.fff.", "Aaa BBB\\.\\.cc.cc\\\\.dee.fff"));
> >> +     printf("%i\n", avahi_domain_equal("A", "a"));
> >> +
> >> +diff --git a/avahi-common/domain.c b/avahi-common/domain.c
> >> +index 3b1ab6834..e66d2416c 100644
> >> +--- a/avahi-common/domain.c
> >> ++++ b/avahi-common/domain.c
> >> +@@ -201,7 +201,7 @@ char *avahi_normalize_name(const char *s, char
> *ret_s, size_t size) {
> >> +         }
> >> +
> >> +         if (!empty) {
> >> +-            if (size < 1)
> >> ++            if (size < 2)
> >> +                 return NULL;
> >> +
> >> +             *(r++) = '.';
> >> diff --git a/meta/recipes-connectivity/avahi/files/CVE-2023-38471.patch
> b/meta/recipes-connectivity/avahi/files/CVE-2023-38471.patch
> >> new file mode 100644
> >> index 0000000000..8242646da1
> >> --- /dev/null
> >> +++ b/meta/recipes-connectivity/avahi/files/CVE-2023-38471.patch
> >> @@ -0,0 +1,72 @@
> >> +From 894f085f402e023a98cbb6f5a3d117bd88d93b09 Mon Sep 17 00:00:00 2001
> >> +From: Michal Sekletar <msekl...@redhat.com>
> >> +Date: Mon, 23 Oct 2023 13:38:35 +0200
> >> +Subject: [PATCH] core: extract host name using avahi_unescape_label()
> >> +
> >> +Previously we could create invalid escape sequence when we split the
> >> +string on dot. For example, from valid host name "foo\\.bar" we have
> >> +created invalid name "foo\\" and tried to set that as the host name
> >> +which crashed the daemon.
> >> +
> >> +Fixes #453
> >> +
> >> +CVE-2023-38471
> >> +
> >> +Upstream-Status: Backport [
> https://github.com/lathiat/avahi/commit/894f085f402e023a98cbb6f5a3d117bd88d93b09
> <https://urldefense.com/v3/__https://github.com/lathiat/avahi/commit/894f085f402e023a98cbb6f5a3d117bd88d93b09__;!!AjveYdw8EvQ!YPO7NIVZeFhisahLwBZhGe79g5KJTQ1xZy2oR8nOiu1HFt04VXa4FsGlVur74kFZ8fbQ-9H_LG6OXVHPwzmpbVo$>
> ]
> >> +CVE: CVE-2023-38471
> >> +Signed-off-by: Vijay Anusuri <vanus...@mvista.com>
> >> +---
> >> + avahi-core/server.c | 27 +++++++++++++++++++++------
> >> + 1 file changed, 21 insertions(+), 6 deletions(-)
> >> +
> >> +diff --git a/avahi-core/server.c b/avahi-core/server.c
> >> +index c32637af8..f6a21bb77 100644
> >> +--- a/avahi-core/server.c
> >> ++++ b/avahi-core/server.c
> >> +@@ -1295,7 +1295,11 @@ static void update_fqdn(AvahiServer *s) {
> >> + }
> >> +
> >> + int avahi_server_set_host_name(AvahiServer *s, const char *host_name)
> {
> >> +-    char *hn = NULL;
> >> ++    char label_escaped[AVAHI_LABEL_MAX*4+1];
> >> ++    char label[AVAHI_LABEL_MAX];
> >> ++    char *hn = NULL, *h;
> >> ++    size_t len;
> >> ++
> >> +     assert(s);
> >> +
> >> +     AVAHI_CHECK_VALIDITY(s, !host_name ||
> avahi_is_valid_host_name(host_name), AVAHI_ERR_INVALID_HOST_NAME);
> >> +@@ -1305,17 +1309,28 @@ int avahi_server_set_host_name(AvahiServer *s,
> const char *host_name) {
> >> +     else
> >> +         hn = avahi_normalize_name_strdup(host_name);
> >> +
> >> +-    hn[strcspn(hn, ".")] = 0;
> >> ++    h = hn;
> >> ++    if (!avahi_unescape_label((const char **)&hn, label,
> sizeof(label))) {
> >> ++        avahi_free(h);
> >> ++        return AVAHI_ERR_INVALID_HOST_NAME;
> >> ++    }
> >> ++
> >> ++    avahi_free(h);
> >> ++
> >> ++    h = label_escaped;
> >> ++    len = sizeof(label_escaped);
> >> ++    if (!avahi_escape_label(label, strlen(label), &h, &len))
> >> ++        return AVAHI_ERR_INVALID_HOST_NAME;
> >> +
> >> +-    if (avahi_domain_equal(s->host_name, hn) && s->state !=
> AVAHI_SERVER_COLLISION) {
> >> +-        avahi_free(hn);
> >> ++    if (avahi_domain_equal(s->host_name, label_escaped) && s->state
> != AVAHI_SERVER_COLLISION)
> >> +         return avahi_server_set_errno(s, AVAHI_ERR_NO_CHANGE);
> >> +-    }
> >> +
> >> +     withdraw_host_rrs(s);
> >> +
> >> +     avahi_free(s->host_name);
> >> +-    s->host_name = hn;
> >> ++    s->host_name = avahi_strdup(label_escaped);
> >> ++    if (!s->host_name)
> >> ++        return AVAHI_ERR_NO_MEMORY;
> >> +
> >> +     update_fqdn(s);
> >> +
> >> diff --git a/meta/recipes-connectivity/avahi/files/CVE-2023-38472.patch
> b/meta/recipes-connectivity/avahi/files/CVE-2023-38472.patch
> >> new file mode 100644
> >> index 0000000000..43b26c1132
> >> --- /dev/null
> >> +++ b/meta/recipes-connectivity/avahi/files/CVE-2023-38472.patch
> >> @@ -0,0 +1,47 @@
> >> +From b024ae5749f4aeba03478e6391687c3c9c8dee40 Mon Sep 17 00:00:00 2001
> >> +From: Michal Sekletar <msekl...@redhat.com>
> >> +Date: Thu, 19 Oct 2023 17:36:44 +0200
> >> +Subject: [PATCH] core: make sure there is rdata to process before
> parsing it
> >> +
> >> +Fixes #452
> >> +
> >> +CVE-2023-38472
> >> +
> >> +Upstream-Status: Backport [
> https://github.com/lathiat/avahi/commit/b024ae5749f4aeba03478e6391687c3c9c8dee40
> <https://urldefense.com/v3/__https://github.com/lathiat/avahi/commit/b024ae5749f4aeba03478e6391687c3c9c8dee40__;!!AjveYdw8EvQ!YPO7NIVZeFhisahLwBZhGe79g5KJTQ1xZy2oR8nOiu1HFt04VXa4FsGlVur74kFZ8fbQ-9H_LG6OXVHPOROFOvo$>
> ]
> >> +CVE: CVE-2023-38472
> >> +Signed-off-by: Vijay Anusuri <vanus...@mvista.com>
> >> +---
> >> + avahi-client/client-test.c      | 3 +++
> >> + avahi-daemon/dbus-entry-group.c | 2 +-
> >> + 2 files changed, 4 insertions(+), 1 deletion(-)
> >> +
> >> +diff --git a/avahi-client/client-test.c b/avahi-client/client-test.c
> >> +index 66e3574..9a015d7 100644
> >> +--- a/avahi-client/client-test.c
> >> ++++ b/avahi-client/client-test.c
> >> +@@ -272,6 +272,9 @@ int main (AVAHI_GCC_UNUSED int argc,
> AVAHI_GCC_UNUSED char *argv[]) {
> >> +     assert(error == AVAHI_ERR_INVALID_RECORD);
> >> +     avahi_string_list_free(txt);
> >> +
> >> ++    error = avahi_entry_group_add_record (group, AVAHI_IF_UNSPEC,
> AVAHI_PROTO_UNSPEC, 0, "TestX", 0x01, 0x10, 120, "", 0);
> >> ++    assert(error != AVAHI_OK);
> >> ++
> >> +     avahi_entry_group_commit (group);
> >> +
> >> +     domain = avahi_domain_browser_new (avahi, AVAHI_IF_UNSPEC,
> AVAHI_PROTO_UNSPEC, NULL, AVAHI_DOMAIN_BROWSER_BROWSE, 0,
> avahi_domain_browser_callback, (char*) "omghai3u");
> >> +diff --git a/avahi-daemon/dbus-entry-group.c
> b/avahi-daemon/dbus-entry-group.c
> >> +index 4e879a5..aa23d4b 100644
> >> +--- a/avahi-daemon/dbus-entry-group.c
> >> ++++ b/avahi-daemon/dbus-entry-group.c
> >> +@@ -340,7 +340,7 @@ DBusHandlerResult
> avahi_dbus_msg_entry_group_impl(DBusConnection *c, DBusMessage
> >> +         if (!(r = avahi_record_new_full (name, clazz, type, ttl)))
> >> +             return avahi_dbus_respond_error(c, m,
> AVAHI_ERR_NO_MEMORY, NULL);
> >> +
> >> +-        if (avahi_rdata_parse (r, rdata, size) < 0) {
> >> ++        if (!rdata || avahi_rdata_parse (r, rdata, size) < 0) {
> >> +             avahi_record_unref (r);
> >> +             return avahi_dbus_respond_error(c, m,
> AVAHI_ERR_INVALID_RDATA, NULL);
> >> +         }
> >> +--
> >> +2.25.1
> >> +
> >> diff --git a/meta/recipes-connectivity/avahi/files/CVE-2023-38473.patch
> b/meta/recipes-connectivity/avahi/files/CVE-2023-38473.patch
> >> new file mode 100644
> >> index 0000000000..7b33d564f8
> >> --- /dev/null
> >> +++ b/meta/recipes-connectivity/avahi/files/CVE-2023-38473.patch
> >> @@ -0,0 +1,108 @@
> >> +From b448c9f771bada14ae8de175695a9729f8646797 Mon Sep 17 00:00:00 2001
> >> +From: Michal Sekletar <msekl...@redhat.com>
> >> +Date: Wed, 11 Oct 2023 17:45:44 +0200
> >> +Subject: [PATCH] common: derive alternative host name from its
> unescaped
> >> + version
> >> +
> >> +Normalization of input makes sure we don't have to deal with special
> >> +cases like unescaped dot at the end of label.
> >> +
> >> +Fixes #451 #487
> >> +CVE-2023-38473
> >> +
> >> +Upstream-Status: Backport [
> https://github.com/lathiat/avahi/commit/b448c9f771bada14ae8de175695a9729f8646797
> <https://urldefense.com/v3/__https://github.com/lathiat/avahi/commit/b448c9f771bada14ae8de175695a9729f8646797__;!!AjveYdw8EvQ!YPO7NIVZeFhisahLwBZhGe79g5KJTQ1xZy2oR8nOiu1HFt04VXa4FsGlVur74kFZ8fbQ-9H_LG6OXVHPLLeXBTg$>
> ]
> >> +CVE: CVE-2023-38473
> >> +Signed-off-by: Vijay Anusuri <vanus...@mvista.com>
> >> +---
> >> + avahi-common/alternative-test.c |  3 +++
> >> + avahi-common/alternative.c      | 27 +++++++++++++++++++--------
> >> + 2 files changed, 22 insertions(+), 8 deletions(-)
> >> +
> >> +diff --git a/avahi-common/alternative-test.c
> b/avahi-common/alternative-test.c
> >> +index 9255435ec..681fc15b8 100644
> >> +--- a/avahi-common/alternative-test.c
> >> ++++ b/avahi-common/alternative-test.c
> >> +@@ -31,6 +31,9 @@ int main(AVAHI_GCC_UNUSED int argc, AVAHI_GCC_UNUSED
> char *argv[]) {
> >> +     const char* const test_strings[] = {
> >> +
>  "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
> >> +         "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXüüüüüüü",
> >> ++        ").",
> >> ++        "\\.",
> >> ++
> "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\\\\",
> >> +         "gurke",
> >> +         "-",
> >> +         " #",
> >> +diff --git a/avahi-common/alternative.c b/avahi-common/alternative.c
> >> +index b3d39f0ed..a094e6d76 100644
> >> +--- a/avahi-common/alternative.c
> >> ++++ b/avahi-common/alternative.c
> >> +@@ -49,15 +49,20 @@ static void drop_incomplete_utf8(char *c) {
> >> + }
> >> +
> >> + char *avahi_alternative_host_name(const char *s) {
> >> ++    char label[AVAHI_LABEL_MAX], alternative[AVAHI_LABEL_MAX*4+1];
> >> ++    char *alt, *r, *ret;
> >> +     const char *e;
> >> +-    char *r;
> >> ++    size_t len;
> >> +
> >> +     assert(s);
> >> +
> >> +     if (!avahi_is_valid_host_name(s))
> >> +         return NULL;
> >> +
> >> +-    if ((e = strrchr(s, '-'))) {
> >> ++    if (!avahi_unescape_label(&s, label, sizeof(label)))
> >> ++        return NULL;
> >> ++
> >> ++    if ((e = strrchr(label, '-'))) {
> >> +         const char *p;
> >> +
> >> +         e++;
> >> +@@ -74,19 +79,18 @@ char *avahi_alternative_host_name(const char *s) {
> >> +
> >> +     if (e) {
> >> +         char *c, *m;
> >> +-        size_t l;
> >> +         int n;
> >> +
> >> +         n = atoi(e)+1;
> >> +         if (!(m = avahi_strdup_printf("%i", n)))
> >> +             return NULL;
> >> +
> >> +-        l = e-s-1;
> >> ++        len = e-label-1;
> >> +
> >> +-        if (l >= AVAHI_LABEL_MAX-1-strlen(m)-1)
> >> +-            l = AVAHI_LABEL_MAX-1-strlen(m)-1;
> >> ++        if (len >= AVAHI_LABEL_MAX-1-strlen(m)-1)
> >> ++            len = AVAHI_LABEL_MAX-1-strlen(m)-1;
> >> +
> >> +-        if (!(c = avahi_strndup(s, l))) {
> >> ++        if (!(c = avahi_strndup(label, len))) {
> >> +             avahi_free(m);
> >> +             return NULL;
> >> +         }
> >> +@@ -100,7 +104,7 @@ char *avahi_alternative_host_name(const char *s) {
> >> +     } else {
> >> +         char *c;
> >> +
> >> +-        if (!(c = avahi_strndup(s, AVAHI_LABEL_MAX-1-2)))
> >> ++        if (!(c = avahi_strndup(label, AVAHI_LABEL_MAX-1-2)))
> >> +             return NULL;
> >> +
> >> +         drop_incomplete_utf8(c);
> >> +@@ -109,6 +113,13 @@ char *avahi_alternative_host_name(const char *s) {
> >> +         avahi_free(c);
> >> +     }
> >> +
> >> ++    alt = alternative;
> >> ++    len = sizeof(alternative);
> >> ++    ret = avahi_escape_label(r, strlen(r), &alt, &len);
> >> ++
> >> ++    avahi_free(r);
> >> ++    r = avahi_strdup(ret);
> >> ++
> >> +     assert(avahi_is_valid_host_name(r));
> >> +
> >> +     return r;
> >> --
> >> 2.25.1
> >>
> >>
> >>
> >>
> >
> >
> >
>
> --
> Jeremy Puhlman
> jpuhl...@mvista.com
>
>
>
>
>
> 
>
>
>
> --
> # Randy MacLeod
> # Wind River Linux
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#190887): 
https://lists.openembedded.org/g/openembedded-core/message/190887
Mute This Topic: https://lists.openembedded.org/mt/102621335/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to