aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLeonardo Arena <rnalrd@alpinelinux.org>2018-04-30 15:41:19 +0000
committerLeonardo Arena <rnalrd@alpinelinux.org>2018-04-30 15:41:19 +0000
commit08fa87dac229e919eba54885a02dca0ae57c5f41 (patch)
treeffcc03f6aff4920caad230413954cb93f3a4e184
parent73f6ed4311545e458f14db858c74d8d332f9c100 (diff)
main/jq: security fix (CVE-2016-4074). Fixes #8808
-rw-r--r--main/jq/APKBUILD11
-rw-r--r--main/jq/CVE-2016-4074.patch37
2 files changed, 45 insertions, 3 deletions
diff --git a/main/jq/APKBUILD b/main/jq/APKBUILD
index 2c6b01915c1..f7d19c54d64 100644
--- a/main/jq/APKBUILD
+++ b/main/jq/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Johannes Matheis <jomat+alpinebuild@jmt.gr>
pkgname=jq
pkgver=1.5
-pkgrel=4
+pkgrel=5
pkgdesc="A lightweight and flexible command-line JSON processor"
url="http://stedolan.github.io/jq/"
arch="all"
@@ -15,10 +15,14 @@ subpackages="$pkgname-doc $pkgname-dev"
source="https://github.com/stedolan/jq/releases/download/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.gz
0001-mktemp-needs-6-or-more-X-s-fix-1000.patch
CVE-2015-8863.patch
+ CVE-2016-4074.patch
"
-
builddir="${srcdir}/${pkgname}-${pkgver}"
+# secfixes:
+# 1.5-r5:
+# - CVE-2016-4074
+
build() {
cd "$builddir"
./configure --prefix=/usr --disable-docs
@@ -37,4 +41,5 @@ package() {
sha512sums="4a0bb069ae875f47731d7d84ae6b82240703dc7a694cfb0aee4c7e9639defe7ba9af575d17dc32bda4426b80c186cc8dcd4505f3a6bcbe16b39e9b13097da238 jq-1.5.tar.gz
c3508ad1692ebd7ad3486e376869f0f89230ad5869e00353c682cf86ff43cc15360ee2f45803ec113d7fd822d863856a9b93ff22b83b69d319786fe5bdce1edb 0001-mktemp-needs-6-or-more-X-s-fix-1000.patch
-e7e7fdf346ccd6df725dd28029654a6bebaa45ed6f14119f51d7f898b555416595d004bfc8a51f612039c11e9573d0f6ea28c3c2ca6aca1d23f1ee0543bfe1e9 CVE-2015-8863.patch"
+e7e7fdf346ccd6df725dd28029654a6bebaa45ed6f14119f51d7f898b555416595d004bfc8a51f612039c11e9573d0f6ea28c3c2ca6aca1d23f1ee0543bfe1e9 CVE-2015-8863.patch
+d523ed92b5a5ca806007c6ff5efe0e11eb7c1e020de29f4b4003080cd9da92fa69a268a011c35e8cf07791bacf8a0e7c9df40698673027ac961725f7163f2150 CVE-2016-4074.patch"
diff --git a/main/jq/CVE-2016-4074.patch b/main/jq/CVE-2016-4074.patch
new file mode 100644
index 00000000000..fb61ac9dad4
--- /dev/null
+++ b/main/jq/CVE-2016-4074.patch
@@ -0,0 +1,37 @@
+From 904ee3bf26f863b7b31c4085f511e54c0307e537 Mon Sep 17 00:00:00 2001
+From: W-Mark Kubacki <wmark@hurrikane.de>
+Date: Fri, 19 Aug 2016 19:50:39 +0200
+Subject: [PATCH] Skip printing what's below a MAX_PRINT_DEPTH
+
+This addresses #1136, and mitigates a stack exhaustion when printing
+a very deeply nested term.
+---
+ jv_print.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/src/jv_print.c b/src/jv_print.c
+index 5f4f234b..ce4a59af 100644
+--- a/jv_print.c
++++ b/jv_print.c
+@@ -13,6 +13,10 @@
+ #include "jv_dtoa.h"
+ #include "jv_unicode.h"
+
++#ifndef MAX_PRINT_DEPTH
++#define MAX_PRINT_DEPTH (256)
++#endif
++
+ #define ESC "\033"
+ #define COL(c) (ESC "[" c "m")
+ #define COLRESET (ESC "[0m")
+@@ -150,7 +154,9 @@ static void jv_dump_term(struct dtoa_context* C, jv x, int flags, int indent, FI
+ }
+ }
+ }
+- switch (jv_get_kind(x)) {
++ if (indent > MAX_PRINT_DEPTH) {
++ put_str("<skipped: too deep>", F, S, flags & JV_PRINT_ISATTY);
++ } else switch (jv_get_kind(x)) {
+ default:
+ case JV_KIND_INVALID:
+ if (flags & JV_PRINT_INVALID) {