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 +}
