mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-25 05:48:07 -05:00
gnu: libgrss: Fix CVE-2016-20011.
* gnu/packages/gnome.scm (libgrss): Add patch. * gnu/packages/patches/libgrss-CVE-2016-2001.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it.
This commit is contained in:
parent
3499d23692
commit
243d74579d
3 changed files with 105 additions and 1 deletions
|
@ -1347,6 +1347,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/libgit2-mtime-0.patch \
|
||||
%D%/packages/patches/libgnome-encoding.patch \
|
||||
%D%/packages/patches/libgnomeui-utf8.patch \
|
||||
%D%/packages/patches/libgrss-CVE-2016-2001.patch \
|
||||
%D%/packages/patches/libjxr-fix-function-signature.patch \
|
||||
%D%/packages/patches/libjxr-fix-typos.patch \
|
||||
%D%/packages/patches/libofa-ftbfs-1.diff \
|
||||
|
|
|
@ -392,7 +392,9 @@ (define-public libgrss
|
|||
(version-major+minor version) "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "1nalslgyglvhpva3px06fj6lv5zgfg0qmj0sbxyyl5d963vc02b7"))))
|
||||
(base32 "1nalslgyglvhpva3px06fj6lv5zgfg0qmj0sbxyyl5d963vc02b7"))
|
||||
(patches
|
||||
(search-patches "libgrss-CVE-2016-2001.patch"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(outputs '("out" "doc"))
|
||||
(arguments
|
||||
|
|
101
gnu/packages/patches/libgrss-CVE-2016-2001.patch
Normal file
101
gnu/packages/patches/libgrss-CVE-2016-2001.patch
Normal file
|
@ -0,0 +1,101 @@
|
|||
From 2c6ea642663e2a44efc8583fae7c54b7b98f72b3 Mon Sep 17 00:00:00 2001
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Mon, 7 Jun 2021 18:51:07 -0600
|
||||
Subject: [PATCH] Ensure the ssl-use-system-ca-file property is set to true on
|
||||
all SoupSessions.
|
||||
|
||||
The default SoupSessionSync and SoupSessionAsync behaviour does not perform any
|
||||
TLS certificate validation, unless the ssl-use-system-ca-file property is set
|
||||
to true.
|
||||
|
||||
This mitigates CVE-2016-20011.
|
||||
---
|
||||
src/feed-channel.c | 2 ++
|
||||
src/feed-enclosure.c | 4 ++++
|
||||
src/feeds-pool.c | 1 +
|
||||
src/feeds-publisher.c | 4 +++-
|
||||
src/feeds-subscriber.c | 4 +++-
|
||||
5 files changed, 13 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/feed-channel.c b/src/feed-channel.c
|
||||
index 19ca7b2..d2d51b9 100644
|
||||
--- a/src/feed-channel.c
|
||||
+++ b/src/feed-channel.c
|
||||
@@ -973,6 +973,8 @@ quick_and_dirty_parse (GrssFeedChannel *channel, SoupMessage *msg, GList **save_
|
||||
static void
|
||||
init_soup_session (SoupSession *session, GrssFeedChannel *channel)
|
||||
{
|
||||
+ g_object_set (G_OBJECT (session), "ssl-use-system-ca-file", TRUE, NULL);
|
||||
+
|
||||
if (channel->priv->jar != NULL)
|
||||
soup_session_add_feature (session, SOUP_SESSION_FEATURE (channel->priv->jar));
|
||||
if (channel->priv->gzip == TRUE)
|
||||
diff --git a/src/feed-enclosure.c b/src/feed-enclosure.c
|
||||
index 68ebbfe..2cd8f9e 100644
|
||||
--- a/src/feed-enclosure.c
|
||||
+++ b/src/feed-enclosure.c
|
||||
@@ -220,6 +220,8 @@ grss_feed_enclosure_fetch (GrssFeedEnclosure *enclosure, GError **error)
|
||||
url = grss_feed_enclosure_get_url (enclosure);
|
||||
|
||||
session = soup_session_sync_new ();
|
||||
+ g_object_set (G_OBJECT (session), "ssl-use-system-ca-file", TRUE, NULL);
|
||||
+
|
||||
msg = soup_message_new ("GET", url);
|
||||
status = soup_session_send_message (session, msg);
|
||||
|
||||
@@ -282,6 +284,8 @@ grss_feed_enclosure_fetch_async (GrssFeedEnclosure *enclosure, GAsyncReadyCallba
|
||||
|
||||
task = g_task_new (enclosure, NULL, callback, user_data);
|
||||
session = soup_session_async_new ();
|
||||
+ g_object_set (G_OBJECT (session), "ssl-use-system-ca-file", TRUE, NULL);
|
||||
+
|
||||
msg = soup_message_new ("GET", grss_feed_enclosure_get_url (enclosure));
|
||||
soup_session_queue_message (session, msg, enclosure_downloaded, task);
|
||||
}
|
||||
diff --git a/src/feeds-pool.c b/src/feeds-pool.c
|
||||
index f18f3cd..7b33956 100644
|
||||
--- a/src/feeds-pool.c
|
||||
+++ b/src/feeds-pool.c
|
||||
@@ -178,6 +178,7 @@ grss_feeds_pool_init (GrssFeedsPool *node)
|
||||
memset (node->priv, 0, sizeof (GrssFeedsPoolPrivate));
|
||||
node->priv->parser = grss_feed_parser_new ();
|
||||
node->priv->soupsession = soup_session_async_new ();
|
||||
+ g_object_set (G_OBJECT (node->priv->soupsession), "ssl-use-system-ca-file", TRUE, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
diff --git a/src/feeds-publisher.c b/src/feeds-publisher.c
|
||||
index 427a54f..500cd96 100644
|
||||
--- a/src/feeds-publisher.c
|
||||
+++ b/src/feeds-publisher.c
|
||||
@@ -888,8 +888,10 @@ create_and_run_server (GrssFeedsPublisher *pub)
|
||||
{
|
||||
SoupAddress *soup_addr;
|
||||
|
||||
- if (pub->priv->soupsession == NULL)
|
||||
+ if (pub->priv->soupsession == NULL) {
|
||||
pub->priv->soupsession = soup_session_async_new ();
|
||||
+ g_object_set (G_OBJECT (pub->priv->soupsession), "ssl-use-system-ca-file", TRUE, NULL);
|
||||
+ }
|
||||
|
||||
soup_addr = soup_address_new_any (SOUP_ADDRESS_FAMILY_IPV4, pub->priv->port);
|
||||
pub->priv->server = soup_server_new ("port", pub->priv->port, "interface", soup_addr, NULL);
|
||||
diff --git a/src/feeds-subscriber.c b/src/feeds-subscriber.c
|
||||
index 259f891..0f63f83 100644
|
||||
--- a/src/feeds-subscriber.c
|
||||
+++ b/src/feeds-subscriber.c
|
||||
@@ -513,8 +513,10 @@ init_run_server (GrssFeedsSubscriber *sub)
|
||||
{
|
||||
GInetAddress *addr;
|
||||
|
||||
- if (sub->priv->soupsession == NULL)
|
||||
+ if (sub->priv->soupsession == NULL) {
|
||||
sub->priv->soupsession = soup_session_async_new ();
|
||||
+ g_object_set (G_OBJECT (sub->priv->soupsession), "ssl-use-system-ca-file", TRUE, NULL);
|
||||
+ }
|
||||
|
||||
/*
|
||||
Flow:
|
||||
--
|
||||
GitLab
|
||||
|
Loading…
Reference in a new issue