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...

Xin LI delphij at gmail.com
Wed Mar 9 00:47:36 UTC 2016


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.

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