commit:     4154a17fc074e4acf02f7e75aeb4e86b41ad7ea8
Author:     Aric Belsito <lluixhi <AT> gmail <DOT> com>
AuthorDate: Sat Aug 19 17:48:35 2017 +0000
Commit:     Aric Belsito <lluixhi <AT> gmail <DOT> com>
CommitDate: Sat Aug 19 17:48:35 2017 +0000
URL:        https://gitweb.gentoo.org/proj/musl.git/commit/?id=4154a17f

app-misc/pax-utils: version bump to 1.2.2-r1

 app-misc/pax-utils/Manifest                        |  2 +
 ...-scanelf-fix-out-of-bounds-access-in-ia64.patch | 72 ++++++++++++++++++++++
 app-misc/pax-utils/pax-utils-1.2.2-r1.ebuild       | 61 ++++++++++++++++++
 3 files changed, 135 insertions(+)

diff --git a/app-misc/pax-utils/Manifest b/app-misc/pax-utils/Manifest
index ae4a949..194c509 100644
--- a/app-misc/pax-utils/Manifest
+++ b/app-misc/pax-utils/Manifest
@@ -1,6 +1,8 @@
 AUX pax-utils-1.1.7-musl.patch 1801 SHA256 
c85ea6e7b0459453e9aa969f8694a6add87096b45e10c4b0d96c1297b5f4e1a4 SHA512 
2257c4ce6605696b68733fcb137818051de7ed252a41fb44af23d6856e019d299cb31201ca63136ce8999178e51044bf41f7e3a5311810c1a2a9c65366d412ed
 WHIRLPOOL 
c688ae73debc9f10caec5879a0be464d7d6fd7759fd04b1a0d6454618e6241b2b56efdb24015ee99bd9499903973d2b2d6d45e6ff3d27a579324f766ccd2cea0
+AUX pax-utils-1.2.2-scanelf-fix-out-of-bounds-access-in-ia64.patch 2032 SHA256 
aeda213844489fc4c08f114f057a3eda7825f3498cdc90b77f72bd4dfd7f1bbb SHA512 
b0e0679c726acc56686b23b6d4720cd5b7e4dff3f007e0443e3ec37a434ffb2def2c351c81ef960bf8e1008769662851017ef9aaedc9b52890578db4d313a54e
 WHIRLPOOL 
51b66b55530dbbf9320e352dd3a6b1731f785ce57d9c12237006bbf18e7da19b2dbd52f22744676c2ae1d66ba83197e4d9787f05827b6099a425707ebe8409a3
 DIST pax-utils-1.1.7.tar.xz 648376 SHA256 
bb9bdbf0888de9444b53b78f7b8069af9832bac7cef0588030b8ce49e8ebad10 SHA512 
cec176cf5863b15acc058cbd99639f5f456346136d0551ce5875cb66c28dd0f6e7f5077b0c06751a3a68984b5c4386c232d3db8b76aa4f4b326b0b692835fdeb
 WHIRLPOOL 
07972470889ff3f4a85f1528bc6c49ae11c3161dfe0df4ab0c3ea83affdc36d0fce36f4db5a0811290958d51e477da99476a12bf35108c4a3b147004a0584541
 DIST pax-utils-1.2.2.tar.xz 655964 SHA256 
7f4a7f8db6b4743adde7582fa48992ad01776796fcde030683732f56221337d9 SHA512 
6bafe93f3b84d4595b6adfa09b46a3dd249f309fe836d90115e9aa5fcc7da37b03f743e80719dfe6bcdb739ce6ec3843170a5513e196c348721f850e19d3e38c
 WHIRLPOOL 
c95ce5dc26d7e913d9e0963d47b5cedbc71cb1faf52ca7bb04898b2bcaa9f6c521f2236e2475d41954c93061267f0fcca5053d4dae3cf12bb59fdc986612dfdb
 EBUILD pax-utils-1.1.7.ebuild 1541 SHA256 
9a747512bda7b754bbde094de77f2907b01e1c1a886192ea6a9a40bb443937cb SHA512 
b2c9fa5616e6494f8e3f2faa79f03ec69d5dadb23154a33d8f2630c855a542ade2bedd9286d4ed7cee789a4665c429736777f313bd6cfd0dc32b9c57ac9fe860
 WHIRLPOOL 
5bea6b86d8fb35a5061b0d07ffb53b214447428f95547cbad2942d2813447b28bc2440d24f6fafa829a1579fa92b606c3f655d8c7f0751ac722e644590adf4a0
+EBUILD pax-utils-1.2.2-r1.ebuild 1613 SHA256 
9ab28cc1afd3830a9cbc709140a881679b5268feb06e40a1c0b5ffb46ebedcd3 SHA512 
d3b524a2cb700650f13bc253a261c5e69e9fa028cbc7e73bada65a401d73aacd63d1ceb5777268822815abba493accab4ed19cf47526287dc7de1467343c7625
 WHIRLPOOL 
4f00bfa4d6b22be62a8baa1bdc973ec6d64f6f5824b0a4b157106696e8b7cc2eb0a7e3bd75e79011403cd8e009147a915ec477badf2b2f584f66c6b0b4a7f93a
 EBUILD pax-utils-1.2.2.ebuild 1561 SHA256 
89e6ba252da96bc386c9713f458a9fc6e88da61deafac27dc432b0ca99de6397 SHA512 
fc44b141e59b2e9e282a3662467fe43febb4a2e95872ccb15936372c9fb5c16fe83b2be4077889ba5556c22cf48abddcdb0bfde6d3de524de88d28f293d7e12d
 WHIRLPOOL 
8368b440ec2b122462700c3e4accee703436b55f932dc16ee9ae5f660d2d9541676a8dc7136403d212a4122ad6466d1d9b13d77d958ab634163a1a4ef5722f0d
 MISC metadata.xml 584 SHA256 
5aa079a277468814cecc8dd01365e017de646a3786b561c001a7398e7747f047 SHA512 
d8458090413d52aaa38b6867edf0a9f996e08b36f9750bfa2469c2aa7d6b0718157feace3dbbb3c63c2795e977ddd6a9c637223192dff90e8ca87facb730bdf4
 WHIRLPOOL 
d745c0db8e85f85c968fea5408a05c6585d54774bc3f953b1debb0ec17b7ce5d942cd1e048026f1a790bc56aa20f3301f973c5e02dd5da24f47d725f6652f5be

diff --git 
a/app-misc/pax-utils/files/pax-utils-1.2.2-scanelf-fix-out-of-bounds-access-in-ia64.patch
 
b/app-misc/pax-utils/files/pax-utils-1.2.2-scanelf-fix-out-of-bounds-access-in-ia64.patch
new file mode 100644
index 0000000..1fa5c31
--- /dev/null
+++ 
b/app-misc/pax-utils/files/pax-utils-1.2.2-scanelf-fix-out-of-bounds-access-in-ia64.patch
@@ -0,0 +1,72 @@
+From e95103c40d0541fbcdb4b84b000832d9b1b83b8d Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <[email protected]>
+Date: Sat, 19 Aug 2017 10:34:41 +0100
+Subject: [PATCH] scanelf: fix out-of-bounds access in ia64
+
+commit 2eb852129394f97dae89c0ff1f9f48637edcb0e9
+slightly changed decoder and added unchecked
+read from elf header:
+
+```
+       switch (EGET(dpltrel->d_un.d_val)) { \
+       case DT_REL: \
+               rel = REL##B(elf->vdata + EGET(drel->d_un.d_val)); \
+```
+
+On ia64 'EGET(drel->d_un.d_val)' returns absolute address:
+
+```
+    $ dumpelf bug/luatex
+    ...
+    /* Dynamic tag #31 'DT_RELA' 0x97E310 */
+    {
+        .d_tag     = 0x7        ,
+        .d_un      = {
+                .d_val = 0x4000000000031C30 ,
+                .d_ptr = 0x4000000000031C30 ,
+        },
+    },
+```
+
+That causes 'scanelf' crash on binaries like 'luatex'.
+
+This change restores check and loudly skips such sections:
+    scanelf: bug/luatex: DT_RELA is out of file range
+
+Bug: https://bugs.gentoo.org/624356
+Signed-off-by: Sergei Trofimovich <[email protected]>
+---
+ scanelf.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/scanelf.c b/scanelf.c
+index 1ead891..a054408 100644
+--- a/scanelf.c
++++ b/scanelf.c
+@@ -607,11 +607,23 @@ static char *scanelf_file_textrels(elfobj *elf, char 
*found_textrels, char *foun
+       } \
+       switch (EGET(dpltrel->d_un.d_val)) { \
+       case DT_REL: \
++              if (EGET(drel->d_un.d_val) >= (uint64_t)elf->len - sizeof 
(drel->d_un.d_val)) { \
++                      rel = NULL; \
++                      rela = NULL; \
++                      warn("%s: DT_REL is out of file range", elf->filename); 
\
++                      break; \
++              } \
+               rel = REL##B(elf->vdata + EGET(drel->d_un.d_val)); \
+               rela = NULL; \
+               pltrel = DT_REL; \
+               break; \
+       case DT_RELA: \
++              if (EGET(drel->d_un.d_val) >= (uint64_t)elf->len - sizeof 
(drel->d_un.d_val)) { \
++                      rel = NULL; \
++                      rela = NULL; \
++                      warn("%s: DT_RELA is out of file range", 
elf->filename); \
++                      break; \
++              } \
+               rel = NULL; \
+               rela = RELA##B(elf->vdata + EGET(drel->d_un.d_val)); \
+               pltrel = DT_RELA; \
+-- 
+2.14.1
+

diff --git a/app-misc/pax-utils/pax-utils-1.2.2-r1.ebuild 
b/app-misc/pax-utils/pax-utils-1.2.2-r1.ebuild
new file mode 100644
index 0000000..42bba27
--- /dev/null
+++ b/app-misc/pax-utils/pax-utils-1.2.2-r1.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils toolchain-funcs unpacker
+
+DESCRIPTION="ELF utils that can check files for security relevant properties"
+HOMEPAGE="https://wiki.gentoo.org/index.php?title=Project:Hardened/PaX_Utilities";
+SRC_URI="mirror://gentoo/${P}.tar.xz
+       https://dev.gentoo.org/~vapier/dist/${P}.tar.xz";
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 
~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux 
~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris 
~x86-solaris"
+IUSE="caps debug python seccomp"
+
+RDEPEND="caps? ( >=sys-libs/libcap-2.24 )
+       python? ( dev-python/pyelftools )
+       seccomp? ( sys-libs/libseccomp )"
+DEPEND="${RDEPEND}
+       caps? ( virtual/pkgconfig )
+       seccomp? ( virtual/pkgconfig )
+       app-arch/xz-utils"
+
+PATCHES=(
+       "${FILESDIR}"/${P}-scanelf-fix-out-of-bounds-access-in-ia64.patch
+       "${FILESDIR}/${PN}-1.1.7-musl.patch"
+)
+
+_emake() {
+       emake \
+               USE_CAP=$(usex caps) \
+               USE_DEBUG=$(usex debug) \
+               USE_PYTHON=$(usex python) \
+               USE_SECCOMP=$(usex seccomp) \
+               "$@"
+}
+
+src_configure() {
+       # Avoid slow configure+gnulib+make if on an up-to-date Linux system
+       if use prefix || ! use kernel_linux || \
+          has_version '<sys-libs/glibc-2.10'
+       then
+               econf $(use_with caps) $(use_with debug) $(use_with python) 
$(use_with seccomp)
+       else
+               tc-export CC PKG_CONFIG
+       fi
+}
+
+src_compile() {
+       _emake
+}
+
+src_test() {
+       _emake check
+}
+
+src_install() {
+       _emake DESTDIR="${D}" PKGDOCDIR='$(DOCDIR)'/${PF} install
+}

Reply via email to