svn commit: r296465 - in releng/9.3: . crypto/openssl crypto/openssl/apps crypto/openssl/bugs crypto/openssl/crypto crypto/openssl/crypto/aes crypto/openssl/crypto/asn1 crypto/openssl/crypto/bf cry...

Antoine Brodin antoine at FreeBSD.org
Wed Mar 9 09:12:56 UTC 2016


On Wed, Mar 9, 2016 at 12:47 AM, Xin LI <delphij at gmail.com> wrote:
> This may be related to the BN changes (CVE-2016-0797 and/or
> CVE-2016-0702).  Will reverting just that portion of r296462 (stable/9
> patch would apply on 9.3 as well) help?  This would help to narrow
> down the root cause.
>
> I can't really do any debugging right now but will take a look as soon as I can.

fetch is also having Segmentation faults on some https sites after the
9.3-RELEASE-p37 update,  see for instance:
http://beefy2.nyi.freebsd.org/data/93amd64-default/410591/logs/errors/waifu2x-converter-cpp-1.0.0.410.log
http://beefy2.nyi.freebsd.org/data/93amd64-default/410591/logs/errors/narcissu2-1.1.log

Antoine

> On Tue, Mar 8, 2016 at 2:45 PM, Mathieu Arnold <mat at freebsd.org> wrote:
>>
>>
>> +--On 8 mars 2016 09:01:04 -0800 Bryan Drewery <bdrewery at FreeBSD.org> wrote:
>> | On 3/8/2016 8:52 AM, Mathieu Arnold wrote:
>> |> +--On 8 mars 2016 08:48:27 -0800 Bryan Drewery <bdrewery at FreeBSD.org>
>> |> wrote:
>> |> | On 3/8/2016 8:47 AM, Bryan Drewery wrote:
>> |> |> On 3/8/2016 8:35 AM, Mathieu Arnold wrote:
>> |> |>> +--On 8 mars 2016 08:29:41 -0800 Bryan Drewery <bdrewery at FreeBSD.org>
>> |> |>> wrote:
>> |> |>> | On 3/8/2016 8:28 AM, Mathieu Arnold wrote:
>> |> |>> |> +--On 8 mars 2016 08:25:44 -0800 Bryan Drewery
>> |> |>> |> <bdrewery at FreeBSD.org> wrote:
>> |> |>> |> | On 3/7/2016 4:29 PM, Mathieu Arnold wrote:
>> |> |>> |> |> +--On 7 mars 2016 16:22:12 +0000 Xin LI <delphij at FreeBSD.org>
>> |> |>> |> |> wrote:
>> |> |>> |> |> | Author: delphij
>> |> |>> |> |> | Date: Mon Mar  7 16:22:11 2016
>> |> |>> |> |> | New Revision: 296465
>> |> |>> |> |> | URL: https://svnweb.freebsd.org/changeset/base/296465
>> |> |>> |> |> |
>> |> |>> |> |> | Log:
>> |> |>> |> |> |   Fix multiple OpenSSL vulnerabilities.
>> |> |>> |> |> |
>> |> |>> |> |> |   Security:      FreeBSD-SA-16:12.openssl
>> |> |>> |> |> |   Approved by:   so
>> |> |>> |> |>
>> |> |>> |> |> After that, poudriere bulk fails with:
>> |> |>> |> |>
>> |> |>> |> |> [00:00:07] ====>> Creating pkgng repository
>> |> |>> |> |> Creating repository in /tmp/packages: 100%
>> |> |>> |> |> Packing files for repository:   0%Child process pid=50970
>> |> |>> |> |> terminated abnormally: Segmentation fault: 11
>> |> |>> |> |> [00:00:08] ====>> Cleaning up
>> |> |>> |> |> 9amd64-pkgng-default: removed
>> |> |>> |> |> 9amd64-pkgng-default-n: removed
>> |> |>> |> |>
>> |> |>> |> |> pkg-static is the one doing the segfault...
>> |> |>> |> |>
>> |> |>> |> |
>> |> |>> |> | Is QEMU involved here?
>> |> |>> |> |
>> |> |>> |> | Do you have PKG_REPO_FROM_HOST or PKG_REPO_SIGNING_KEY set? (Not
>> |> |>> |> | saying you should)
>> |> |>> |>
>> |> |>> |> No, it's a regular 9amd64 build on a 10.2 amd64 host.
>> |> |>> |>
>> |> |>> |
>> |> |>> | Can you please rebuild pkg with debug symbols and then run your 9.3
>> |> |>> | version against the repo in gdb?
>> |> |>>
>> |> |>> I could yes, but not today, tomorrow at the earliest.  How do I build
>> |> |>> the port with debug symbols ?
>> |> |>>
>> |> |>
>> |> |> WITH_DEBUG=yes make
>> |> |>
>> |> |
>> |> | You might need this too: DEBUG_FLAGS="-g -O0"
>> |>
>> |> Mmmm, ok, what commands do I need to run ?
>> |>
>> |
>> | (assuming devel/gdb installed)
>> | gdb710 --args /usr/local/sbin/pkg-static repo <path to repo>
>> |# run
>> | <crash>
>> |# bt full
>>
>> Ok, so, it's 9.3, so there's no gdb710, but:
>>
>>
>> the command ran is:
>>
>> root at pkg:/tmp/foo # pkg repo . ../repo.key
>> Creating repository in .: 100%
>> Packing files for repository:   0%Child process pid=16312 terminated
>> abnormally: Segmentation fault: 11
>> root at pkg:/tmp/foo # gdb /usr/local/sbin/pkg pkg.core
>> GNU gdb 6.1.1 [FreeBSD]
>> Copyright 2004 Free Software Foundation, Inc.
>> GDB is free software, covered by the GNU General Public License, and you are
>> welcome to change it and/or distribute copies of it under certain
>> conditions.
>> Type "show copying" to see the conditions.
>> There is absolutely no warranty for GDB.  Type "show warranty" for details.
>> This GDB was configured as "amd64-marcel-freebsd"...
>> Core was generated by `pkg'.
>> Program terminated with signal 11, Segmentation fault.
>> Reading symbols from /usr/local/lib/libpkg.so.3...done.
>> Loaded symbols for /usr/local/lib/libpkg.so.3
>> Reading symbols from /lib/libutil.so.9...done.
>> Loaded symbols for /lib/libutil.so.9
>> Reading symbols from /usr/lib/libssl.so.6...done.
>> Loaded symbols for /usr/lib/libssl.so.6
>> Reading symbols from /lib/libcrypto.so.6...done.
>> Loaded symbols for /lib/libcrypto.so.6
>> Reading symbols from /lib/libm.so.5...done.
>> Loaded symbols for /lib/libm.so.5
>> Reading symbols from /usr/lib/libelf.so.1...done.
>> Loaded symbols for /usr/lib/libelf.so.1
>> Reading symbols from /lib/libjail.so.1...done.
>> Loaded symbols for /lib/libjail.so.1
>> Reading symbols from /usr/lib/libarchive.so.5...done.
>> Loaded symbols for /usr/lib/libarchive.so.5
>> Reading symbols from /lib/libz.so.6...done.
>> Loaded symbols for /lib/libz.so.6
>> Reading symbols from /usr/lib/libbz2.so.4...done.
>> Loaded symbols for /usr/lib/libbz2.so.4
>> Reading symbols from /usr/lib/liblzma.so.5...done.
>> Loaded symbols for /usr/lib/liblzma.so.5
>> Reading symbols from /lib/libc.so.7...done.
>> Loaded symbols for /lib/libc.so.7
>> Reading symbols from /lib/libbsdxml.so.4...done.
>> Loaded symbols for /lib/libbsdxml.so.4
>> Reading symbols from /libexec/ld-elf.so.1...done.
>> Loaded symbols for /libexec/ld-elf.so.1
>> #0  0x0000000801219438 in BN_mod_exp_mont_consttime () from
>> /lib/libcrypto.so.6
>> (gdb) bt full
>> #0  0x0000000801219438 in BN_mod_exp_mont_consttime () from
>> /lib/libcrypto.so.6
>> No symbol table info available.
>> #1  0x00000008011f735f in RSA_PKCS1_SSLeay () from /lib/libcrypto.so.6
>> No symbol table info available.
>> #2  0x00000008011f82fd in RSA_PKCS1_SSLeay () from /lib/libcrypto.so.6
>> No symbol table info available.
>> #3  0x00000008011d28d9 in RSA_sign () from /lib/libcrypto.so.6
>> No symbol table info available.
>> #4  0x00000008008dc73b in rsa_sign (path=0x7fffffffe3c0 "./meta",
>> rsa=0x802c19260, sigret=0x7fffffffda78, siglen=0x7fffffffda8c) at rsa.c:287
>>         errbuf =
>> "./meta.txz\000\000\b\000\000\000\001\000\000\000\001\000\000\000\004\000\000\000\000\000\000\000
>> ��\177\000\000���\177\000\000���\177\000\000T\203\220\000\b\000\000\000\020\000\000\000\000\000\000\000WU\000\000\000\000-\v�\004�@�~=��U\000\000\000\000212\000\00
>> 0\000\000filesite_archiveeo002\b\000\000\000\200o002\b\000\000\000\020\000\000\000\b\000\000\000�G\220\000\b\000\000\000\000\000\000\000\b\000\000\000\003\000\000\000\000\000\000\000���\177\000\000\204��\177\000\0000��\177\000\000"...
>>         max_len = 512
>>         ret = 10591143
>>         sha256 = 0x802c2d1f0
>> "fd24852c468ef31bd675129fd02b676ce7cffae895089292fa513784873689a6"
>> #5  0x00000008008c2295 in pkg_repo_pack_db (name=0x800a20ec8 "meta",
>> archive=0x7fffffffe3c0 "./meta", path=0x7fffffffe3c0 "./meta",
>> rsa=0x802c19260, meta=0x802c68600, argv=0x7fffffffeb88, argc=1) at
>> pkg_repo_create.c:939
>>         pack = (struct packing *) 0x802c79be0
>>         sigret = (unsigned char *) 0x802ca4900 ""
>>         siglen = 0
>>         fname =
>> "\001\000\000\000\001\000\000\000\001\000\000\000\001\000\000\000@��\177\000\000\216\000\b\000\000\000��\000\000\000\000���\177\000\000\004\000\000\000\000\000\000\000WU\000\000\000\000-\v�\004�@�~=��U\000\000\000\000212N\206cert�\177\000\000\230��\177\000\000p�
>> �\177\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000E\030�\000\b\000\000\000\000\000\000\000�\177\000\000\020�\001\000\000\000\004\000\000\000\004\000\000\000\000\000\000\000\004\000\000\000\220��\177\000\000:\006\217\000\b\000\000\000�5002\b\000\000\00
>> 0"...
>>         sig = (struct sbuf *) 0x0
>>         pub = (struct sbuf *) 0x0
>> #6  0x00000008008c2797 in pkg_finish_repo (output_dir=0x7fffffffedd1 ".",
>> password_cb=0x415ba0 <password_cb>, argv=0x7fffffffeb88, argc=1,
>> filelist=false) at pkg_repo_create.c:1038
>>         repo_path =
>> "./meta\000gesite.yaml\000\002\b\000\000\000\213Yc\000\b\000\000\0008204\000\b",
>> '\0' <repeats 15 times>,
>> "�\177\000\000\000\000\b\000\000\000`��\177\000\000��d\000\b\000\000\000���\177\000\000���\177\000\000\000\000\000\000\000\000\000\000���\177\000\000g{c
>> \000\b\000\000\000�&@\000\000\000\000\000\177\030\232\004\000\000\000\000207\2013\000\000\000\0000�d\000\b\000\000\000\001\000\000\000\b\000\000\000\000\000\b\000\000\0008204\000\b\000\000\000���\177\000\000@��\177\000\000\000�d\000\b"...
>>         repo_archive =
>> "\225\003\000\000\000\000\000\000\230\003\000\000\000\000\000\000\225\003\000\000\001\000\000\000�\000\217\000\b\000\000\000\000��\177\000\000Z\000\217\000\001\000\000\000\200��\177\000\000@,002\b\000\000\000PKG_PLUGPKG_PLUGc\000\000\000\000\000PLUGPLUG\2
>> 00��\177\000\000p0002\b", '\0' <repeats 11 times>,
>> "\234}>\002\000\000\000\000\177\000\000\000:\000\000\000:\000\000\000:\237����\177\000\000�\005\217\000\b\000\000\000@,002\b\000\000\000\t\000\000\000\n\000\000\000ܱ�\000\b\000\000\000 at 0002\b\000\000\000p��\177\000\000...
>>         rsa = (struct rsa_key *) 0x802c19260
>>         meta = (struct pkg_repo_meta *) 0x802c68600
>>         st = {st_dev = 4294959664, st_ino = 32767, st_mode = 25938,
>> st_nlink = 14234, st_uid = 2842729777, st_gid = 274432, st_rdev = 0,
>> st_atim = {tv_sec = 1457476951, tv_nsec = 6}, st_mtim = {tv_sec =
>> 34370333240, tv_nsec = 0}, st_ctim = {tv_sec = -7355152794736877766,
>>     tv_nsec = 34370335206}, st_size = 34370335206, st_blocks = 1457476951,
>> st_blksize = 10, st_flags = 0, st_gen = 10596828, st_lspare = 8,
>> st_birthtim = {tv_sec = 34370335951, tv_nsec = 1457476951}}
>>         ret = 0
>>         nfile = 1
>>         files_to_pack = 4
>>         legacy = false
>> #7  0x0000000000415eea in exec_repo (argc=2, argv=0x7fffffffeb80) at
>> repo.c:155
>>         ret = 0
>>         ch = -1
>>         filelist = false
>>         output_dir = 0x7fffffffedd1 "."
>>         meta_file = 0x0
>>         legacy = false
>>         longopts = {{name = 0x429c1f "list-files", has_arg = 0, flag = 0x0,
>> val = 108}, {name = 0x429c2a "output-dir", has_arg = 1, flag = 0x0, val =
>> 111}, {name = 0x429c35 "quiet", has_arg = 0, flag = 0x0, val = 113}, {name
>> = 0x429c3b "meta-file", has_arg = 1, flag = 0x0,
>>     val = 109}, {name = 0x429c45 "legacy", has_arg = 0, flag = 0x0, val =
>> 76}, {name = 0x0, has_arg = 0, flag = 0x0, val = 0}}
>> #8  0x0000000000412b9e in main (argc=3, argv=0x7fffffffeb78) at main.c:852
>>         i = 21
>>         command = (struct commands *) 0x630f40
>>         ambiguous = 0
>>         chroot_path = 0x0
>>         rootdir = 0x0
>>         jid = 0
>>         jail_str = 0x0
>>         len = 4
>>         ch = -1 '�'
>>         debug = 0
>>         version = 0
>>         ret = 0
>>         plugins_enabled = true
>>         plugin_found = false
>>         show_commands = false
>>         activation_test = false
>>         init_flags = 0
>>         c = (struct plugcmd *) 0x246
>>         conffile = 0x0
>>         reposdir = 0x0
>>         save_argv = (char **) 0x7fffffffeb78
>>         j = 8
>>         longopts = {{name = 0x4276f7 "debug", has_arg = 0, flag = 0x0, val
>> = 100}, {name = 0x4276fd "jail", has_arg = 1, flag = 0x0, val = 106}, {name
>> = 0x427702 "chroot", has_arg = 1, flag = 0x0, val = 99}, {name = 0x426a33
>> "config", has_arg = 1, flag = 0x0, val = 67}, {
>>     name = 0x427709 "repo-conf-dir", has_arg = 1, flag = 0x0, val = 82},
>> {name = 0x427717 "rootdir", has_arg = 1, flag = 0x0, val = 114}, {name =
>> 0x42771f "list", has_arg = 0, flag = 0x0, val = 108}, {name = 0x426f45
>> "version", has_arg = 0, flag = 0x0, val = 118}, {
>>     name = 0x427724 "option", has_arg = 1, flag = 0x0, val = 111}, {name =
>> 0x42772b "only-ipv4", has_arg = 0, flag = 0x0, val = 52}, {name = 0x427735
>> "only-ipv6", has_arg = 0, flag = 0x0, val = 54}, {name = 0x0, has_arg = 0,
>> flag = 0x0, val = 0}}
>>         __func__ = "main"
>>
>>
>>
>>
>> --
>> Mathieu Arnold
>
>
>
> --
> Xin LI <delphij at delphij.net> https://www.delphij.net/
> FreeBSD - The Power to Serve! Live free or die
>


More information about the svn-src-all mailing list