asterisk: security bump to version 14.6.2
authorPeter Korsgaard <peter@korsgaard.com>
Sun, 7 Jan 2018 21:46:29 +0000 (22:46 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sun, 7 Jan 2018 22:47:44 +0000 (23:47 +0100)
Fixes the following security issues:

14.6.1:

* AST-2017-005 (applied to all released versions): The "strictrtp" option in
  rtp.conf enables a feature of the RTP stack that learns the source address
  of media for a session and drops any packets that do not originate from
  the expected address.  This option is enabled by default in Asterisk 11
  and above.  The "nat" and "rtp_symmetric" options for chan_sip and
  chan_pjsip respectively enable symmetric RTP support in the RTP stack.
  This uses the source address of incoming media as the target address of
  any sent media.  This option is not enabled by default but is commonly
  enabled to handle devices behind NAT.

  A change was made to the strict RTP support in the RTP stack to better
  tolerate late media when a reinvite occurs.  When combined with the
  symmetric RTP support this introduced an avenue where media could be
  hijacked.  Instead of only learning a new address when expected the new
  code allowed a new source address to be learned at all times.

  If a flood of RTP traffic was received the strict RTPsupport would allow
  the new address to provide media and with symmetric RTP enabled outgoing
  traffic would be sent to this new address, allowing the media to be
  hijacked.  Provided the attacker continued to send traffic they would
  continue to receive traffic as well.

* AST-2017-006 (applied to all released versions): The app_minivm module has
  an “externnotify” program configuration option that is executed by the
  MinivmNotify dialplan application.  The application uses the caller-id
  name and number as part of a built string passed to the OS shell for
  interpretation and execution.  Since the caller-id name and number can
  come from an untrusted source, a crafted caller-id name or number allows
  an arbitrary shell command injection.

* AST-2017-007 (applied only to 13.17.1 and 14.6.1): A carefully crafted URI
  in a From, To or Contact header could cause Asterisk to crash

For more details, see the announcement:
https://www.asterisk.org/downloads/asterisk-news/asterisk-11252-13171-1461-116-cert17-1313-cert5-now-available-security

14.6.2:

* AST-2017-008: Insufficient RTCP packet validation could allow reading
  stale buffer contents and when combined with the “nat” and “symmetric_rtp”
  options allow redirecting where Asterisk sends the next RTCP report.

  The RTP stream qualification to learn the source address of media always
  accepted the first RTP packet as the new source and allowed what
  AST-2017-005 was mitigating.  The intent was to qualify a series of
  packets before accepting the new source address.

For more details, see the announcement:
https://www.asterisk.org/downloads/asterisk-news/asterisk-11253-13172-1462-116-cert18-1313-cert6-now-available-security

Drop 0004-configure-in-cross-complation-assimne-eventfd-are-av.patch as this
is now handled differently upstream (by disabling eventfd for cross
compilation, see commit 2e927990b3d2 (eventfd: Disable during cross
compilation)).  If eventfd support is needed then this should be submitted
upstream.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/asterisk/0004-build-ensure-target-directory-for-modules-exists.patch [new file with mode: 0644]
package/asterisk/0004-configure-in-cross-complation-assimne-eventfd-are-av.patch [deleted file]
package/asterisk/0005-build-ensure-target-directory-for-modules-exists.patch [deleted file]
package/asterisk/0005-install-samples-need-the-data-files.patch [new file with mode: 0644]
package/asterisk/0006-install-samples-need-the-data-files.patch [deleted file]
package/asterisk/asterisk.hash
package/asterisk/asterisk.mk

diff --git a/package/asterisk/0004-build-ensure-target-directory-for-modules-exists.patch b/package/asterisk/0004-build-ensure-target-directory-for-modules-exists.patch
new file mode 100644 (file)
index 0000000..20cfc93
--- /dev/null
@@ -0,0 +1,32 @@
+From 933b2554a40f932571bdbdbb5217cda3e35fd61f Mon Sep 17 00:00:00 2001
+From: "Yann E. MORIN" <yann.morin.1998@free.fr>
+Date: Mon, 27 Nov 2017 12:52:52 +0100
+Subject: [PATCH] build: ensure target directory for modules exists
+
+Currently, in highly-parallel builds, it is possible that installing
+modules fails because the target directory does not exist yet.
+
+We fix that by instructing $(INSTALL) to create the destination directory
+first.
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+---
+ Makefile.moddir_rules | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.moddir_rules b/Makefile.moddir_rules
+index 59190bece9..b73153a9a5 100644
+--- a/Makefile.moddir_rules
++++ b/Makefile.moddir_rules
+@@ -110,7 +110,7 @@ clean::
+ install:: all
+       @echo "Installing modules from `basename $(CURDIR)`..."
+-      @for x in $(LOADABLE_MODS:%=%.so); do $(INSTALL) -m 755 $$x "$(DESTDIR)$(ASTMODDIR)" ; done
++      @for x in $(LOADABLE_MODS:%=%.so); do $(INSTALL) -D -m 755 $$x "$(DESTDIR)$(ASTMODDIR)" ; done
+ ifneq ($(findstring :,$(XMLSTARLET)$(BASH)),:)
+       @if [ -f .moduleinfo ] ; then \
+               declare -A DISABLED_MODS ;\
+-- 
+2.11.0
+
diff --git a/package/asterisk/0004-configure-in-cross-complation-assimne-eventfd-are-av.patch b/package/asterisk/0004-configure-in-cross-complation-assimne-eventfd-are-av.patch
deleted file mode 100644 (file)
index dae36d1..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-From e7de812c979d219765fbf1292f0e150bfa087716 Mon Sep 17 00:00:00 2001
-From: "Yann E. MORIN" <yann.morin.1998@free.fr>
-Date: Sun, 18 Jun 2017 21:54:16 +0200
-Subject: [PATCH] configure: in cross-complation, assume eventfd are available
-
-eventfd have been in the kernel since 2.6.22, and in glibc since 2.8,
-repectively released in July 2007 and April 2008, almost a decade ago
-now.
-
-Assume that no one building from now on for cross-compilation will be
-unlucky enough to get versions older than that...
-
-As such, in cross-compilation, assume eventfd are available.
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
----
- configure.ac | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 1c20517864..474d17ae55 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1107,7 +1107,9 @@ AC_RUN_IFELSE(
-       [return eventfd(0, EFD_NONBLOCK | EFD_SEMAPHORE) == -1;])],
-   AC_MSG_RESULT(yes)
-   AC_DEFINE([HAVE_EVENTFD], 1, [Define to 1 if your system supports eventfd and the EFD_NONBLOCK and EFD_SEMAPHORE flags.]),
--  AC_MSG_RESULT(no)
-+  AC_MSG_RESULT(no),
-+  AC_MSG_RESULT([cross-compile; assume yes])
-+  AC_DEFINE([HAVE_EVENTFD], 1, [Define to 1 if your system supports eventfd and the EFD_NONBLOCK and EFD_SEMAPHORE flags.])
- )
- AST_GCC_ATTRIBUTE(pure)
--- 
-2.11.0
-
diff --git a/package/asterisk/0005-build-ensure-target-directory-for-modules-exists.patch b/package/asterisk/0005-build-ensure-target-directory-for-modules-exists.patch
deleted file mode 100644 (file)
index 20cfc93..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-From 933b2554a40f932571bdbdbb5217cda3e35fd61f Mon Sep 17 00:00:00 2001
-From: "Yann E. MORIN" <yann.morin.1998@free.fr>
-Date: Mon, 27 Nov 2017 12:52:52 +0100
-Subject: [PATCH] build: ensure target directory for modules exists
-
-Currently, in highly-parallel builds, it is possible that installing
-modules fails because the target directory does not exist yet.
-
-We fix that by instructing $(INSTALL) to create the destination directory
-first.
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
----
- Makefile.moddir_rules | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.moddir_rules b/Makefile.moddir_rules
-index 59190bece9..b73153a9a5 100644
---- a/Makefile.moddir_rules
-+++ b/Makefile.moddir_rules
-@@ -110,7 +110,7 @@ clean::
- install:: all
-       @echo "Installing modules from `basename $(CURDIR)`..."
--      @for x in $(LOADABLE_MODS:%=%.so); do $(INSTALL) -m 755 $$x "$(DESTDIR)$(ASTMODDIR)" ; done
-+      @for x in $(LOADABLE_MODS:%=%.so); do $(INSTALL) -D -m 755 $$x "$(DESTDIR)$(ASTMODDIR)" ; done
- ifneq ($(findstring :,$(XMLSTARLET)$(BASH)),:)
-       @if [ -f .moduleinfo ] ; then \
-               declare -A DISABLED_MODS ;\
--- 
-2.11.0
-
diff --git a/package/asterisk/0005-install-samples-need-the-data-files.patch b/package/asterisk/0005-install-samples-need-the-data-files.patch
new file mode 100644 (file)
index 0000000..a9560e8
--- /dev/null
@@ -0,0 +1,35 @@
+From 05680ea9899c2246c23d11860c2c8e10aa8f80c7 Mon Sep 17 00:00:00 2001
+From: "Yann E. MORIN" <yann.morin.1998@free.fr>
+Date: Fri, 1 Dec 2017 11:08:16 +0100
+Subject: [PATCH] install: samples need the data files
+
+When installing samples, "sample voicemail" is generated from the
+already-installed sound files.
+
+However, when doing the install and the samples at the same time in a
+parallel install, it is possible that the sound files are not already
+installed at the time we try to generate the voicemail data.
+
+Ensure the needed dependency.
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index f29c07f680..b58f707b61 100644
+--- a/Makefile
++++ b/Makefile
+@@ -779,7 +779,7 @@ adsi:
+               $(INSTALL) -m 644 "$$x" "$(DESTDIR)$(ASTETCDIR)/`$(BASENAME) $$x`" ; \
+       done
+-samples: adsi
++samples: adsi datafiles
+       @echo Installing other config files...
+       $(call INSTALL_CONFIGS,samples,.sample)
+       $(INSTALL) -d "$(DESTDIR)$(ASTSPOOLDIR)/voicemail/default/1234/INBOX"
+-- 
+2.11.0
+
diff --git a/package/asterisk/0006-install-samples-need-the-data-files.patch b/package/asterisk/0006-install-samples-need-the-data-files.patch
deleted file mode 100644 (file)
index a9560e8..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-From 05680ea9899c2246c23d11860c2c8e10aa8f80c7 Mon Sep 17 00:00:00 2001
-From: "Yann E. MORIN" <yann.morin.1998@free.fr>
-Date: Fri, 1 Dec 2017 11:08:16 +0100
-Subject: [PATCH] install: samples need the data files
-
-When installing samples, "sample voicemail" is generated from the
-already-installed sound files.
-
-However, when doing the install and the samples at the same time in a
-parallel install, it is possible that the sound files are not already
-installed at the time we try to generate the voicemail data.
-
-Ensure the needed dependency.
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
----
- Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index f29c07f680..b58f707b61 100644
---- a/Makefile
-+++ b/Makefile
-@@ -779,7 +779,7 @@ adsi:
-               $(INSTALL) -m 644 "$$x" "$(DESTDIR)$(ASTETCDIR)/`$(BASENAME) $$x`" ; \
-       done
--samples: adsi
-+samples: adsi datafiles
-       @echo Installing other config files...
-       $(call INSTALL_CONFIGS,samples,.sample)
-       $(INSTALL) -d "$(DESTDIR)$(ASTSPOOLDIR)/voicemail/default/1234/INBOX"
--- 
-2.11.0
-
index 7ae35bc4b15956251a839788e3a3f1cc2d6d887a..d1667acaae182f2499b7377003c84c6fc058ed87 100644 (file)
@@ -1,5 +1,5 @@
 # Locally computed
-sha256  c122fbe88e089737fa2c80356762ceed38498aa26da1dfdd4da5506f9b135696  asterisk-14.5.0.tar.gz
+sha256  f85f6df802de485d9b8cb1bfa5493e22f6401dce8246646af9506489a264d7b1  asterisk-14.6.2.tar.gz
 
 # sha1 from: http://downloads.asterisk.org/pub/telephony/sounds/releases
 # sha256 locally computed
index 50512c0b3a6b1d9c3ee01579cef85f665da7dbda..da78b2540535227f6e873fa4b69bdce497708de0 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-ASTERISK_VERSION = 14.5.0
+ASTERISK_VERSION = 14.6.2
 # Use the github mirror: it's an official mirror maintained by Digium, and
 # provides tarballs, which the main Asterisk git tree (behind Gerrit) does not.
 ASTERISK_SITE = $(call github,asterisk,asterisk,$(ASTERISK_VERSION))