From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS22989 209.51.188.0/24 X-Spam-Status: No, score=-3.6 required=3.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id B8C2A1F466 for ; Fri, 17 Jan 2020 15:51:08 +0000 (UTC) Received: from localhost ([::1]:59344 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1isTtr-0000dp-Hw for normalperson@yhbt.net; Fri, 17 Jan 2020 10:51:07 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:39889) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1isTtc-0000Xz-05 for bug-gnulib@gnu.org; Fri, 17 Jan 2020 10:50:56 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1isTtX-00028N-Ep for bug-gnulib@gnu.org; Fri, 17 Jan 2020 10:50:51 -0500 Received: from mout.gmx.net ([212.227.17.20]:52347) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1isTtX-00027V-2W for bug-gnulib@gnu.org; Fri, 17 Jan 2020 10:50:47 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1579276245; bh=5ogEVH3ARntpada1bkaEo6Fx6g1P/RDlOhOZc4mfI/k=; h=X-UI-Sender-Class:To:From:Subject:Date; b=LV1ltLfzDRyyL3SARFc5kf11t78CzsFjNGC/gCKTqZEtKTe0jsS8P4eMaT32qSIsK nTXiqVIfbfNLz3xAzxOTFCXILi3of/6OG/56zfheAipD5q1r2nP3MrFH3Ue5L6602T 37yip+cghQBhk8Z7zLN8bkNUM+WFRo5Vyc+WJyik= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.111.218] ([31.17.216.109]) by mail.gmx.com (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MZCfJ-1j5Luu1Ojp-00V7H6 for ; Fri, 17 Jan 2020 16:50:45 +0100 To: bug-gnulib@gnu.org From: =?UTF-8?Q?Tim_R=c3=bchsen?= Subject: heap-use-after-free in rpl_glob Autocrypt: addr=tim.ruehsen@gmx.de; prefer-encrypt=mutual; keydata= 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 Message-ID: Date: Fri, 17 Jan 2020 16:50:44 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="t31W8BrwWbHhCZtl3kyTZCyWaJ5lHC1Si" X-Provags-ID: V03:K1:VACAeWcfM1jhAM6k36Mxa3YJmsnS+nESIuaCs2l17fOihDXM6b9 uu/W5XKF4FAoeYJRc9K2ge4R0xl+tpR0FPBpVMSIaOTLhhwxSH3X1SQ5IMSmtnyLp47r7Nc RXuTV6rh+wr+B2Wf2Igx/jrSbuqYgiaWxAFdL8fk76cQsNzGus4ZJCIV3uRU3aqUT8gIuZx QjXDdVx2vYwHX6WDFngeA== X-UI-Out-Filterresults: notjunk:1;V03:K0:qM8UYi8Qsk4=:myIzFNG62+YqKhplS6O0TI 4Uxkng2/QC/v3lgOuVH1jzoTky1fJXlAdz+0YzBsg4skA5HiBmvsYCiY2Jmqx3uxmhQJ2ZVOM j2H+CG4pcQorREIXDrTKkijnw0cZf+Vl+tnsjBfLzTLUEI91zr9olmV6/ayUNnuIvjLPZd4hp M7ce6WuJ1a/390Y9PoTZS44Npl2CM0f6AXRf1Nu44T3chIYn/GnqS4G0x0lvM/3/GC6EgKjEd ySr363rMMU+7HZ3z5noPA1g78jtQlwFP7ZGrwjBKmaggCLdXYPam3d2qAWV5Ss6AoxMmHPIAR B4hUMihAMW4EVmgBYvMJgfxRjv5eFY5pxdmdyybYL7t9Uom/oCPVaORNTq1PW5bBu1Uz7/8Gq sNBYjsdnWj5fD7OTdJ/cLjwgdFxyN760J+pZYRNG54b9bgBZBgGvvXWcdMfKpkRZVssAohUyW fd6KC4/sOHhJn3JSZNOf+sdM0xooQcouyqGkfZKbZIs7A6cMNAPknByFwMoiTZYMo8l12GK+s sym0ltwEqnEukJboth8c5uK+/UQHHFjSQB87KflfSr/O1tDdUYw9xsftBQ+0p3PMIH86sL3b+ RnXIIoAGqdh2JoKn/qKBwZBFT7O5zv2sQ7xthqhaja+wfCwSftiu0319sCgeF9KybtIVdLfi0 8VqObtg0nbJ1AR/xRlj2DjGnnB4XyniKali3wibtFRUIcySzPTqF8kniJwAtU2Fi9ajG3wH86 aCm865sfJjpnyyKqL+WuX4iWLUGLfCraHzyBfYSULLPEYKRO+dc8gZ+iOsUedOWDyggDdGWx4 9aHT3u2f8FCNKMIFE8J4TssNK2KNjNtGETPKxhkKF3cEKbMFaAn3OQMxpIZt8vUl9G3Xuiczh KMICmi+c+/hB5WZLr6npIKND3kyF1ozP8nK9OR5v/kMFSERjuiveY4ihMyG+IW7f4igWUXE97 FR2+IDI/4+vezMyJ+EKpy0k6sutOt+XT0PeyEdEovshXh7lhi9gzNoaeyishrS3gJTKytcSlo AcN0FffIefF17/TcgCH0i1ovJfl0mXPGC1O11AzMAILCQoAcQeYhnhEujarFlkYz2b8/pox/R uUa8d9G8/eBNYYCZ4Us+1MJRl8nd6nDeDKTPie8LPboK9DmesuzFk5Zq5h978XJv09wfi42I2 JrUfkckrJB9Iwf+sbWVXpnGVcXzy/soHIH3ldRLEgXiyhSDOX/sFnfDj13sWtV1ZWGlO2+gO6 CezHK8hSJlSYaVqb4QnerHGAQ5zW2OeSACYFodQ== X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 212.227.17.20 X-BeenThere: bug-gnulib@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Gnulib discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnulib-bounces+normalperson=yhbt.net@gnu.org Sender: "bug-gnulib" This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --t31W8BrwWbHhCZtl3kyTZCyWaJ5lHC1Si Content-Type: multipart/mixed; boundary="27wvqH0wv38XDlJ6K0JolKLnYex4zOR3R"; protected-headers="v1" From: =?UTF-8?Q?Tim_R=c3=bchsen?= To: bug-gnulib@gnu.org Message-ID: Subject: heap-use-after-free in rpl_glob --27wvqH0wv38XDlJ6K0JolKLnYex4zOR3R Content-Type: multipart/mixed; boundary="------------338A7BA26FEFFD69C53BCD4B" Content-Language: en-US This is a multi-part message in MIME format. --------------338A7BA26FEFFD69C53BCD4B Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi, I recently updated wget2 to gnulib commit a7903da07d3d18c23314aa0815adbb4058fd7cec. The continuous fuzzer at OSS-Fuzz today reported an issue in rpl_glob. To reproduce with attached C code (on Debian unstable here, same result on Ubuntu 16.04.6 docker container with clang 10): export CC=3Dgcc export CFLAGS=3D"-O1 -g -fno-omit-frame-pointer -fsanitize=3Daddress -fsanitize-address-use-after-scope" # ... build gnulib ... $CC $CFLAGS -I. -Ilib glob_crash2.c -o glob_crash2 lib/.libs/libgnu.a =2E/glob_crash2 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D1671628=3D=3DERROR: AddressSanitizer: heap-use-after-free on addres= s 0x604000000013 at pc 0x55fa90a36ecd bp 0x7ffe68412980 sp 0x7ffe68412978 READ of size 44 at 0x604000000013 thread T0 #0 0x55fa90a36ecc in rpl_glob /home/tim/src/wget2/lib/glob.c:868 #1 0x55fa90a334eb in main /home/tim/src/wget2/glob_crash2.c:35 #2 0x7fdafafabbba in __libc_start_main ../csu/libc-start.c:308 #3 0x55fa90a332f9 in _start (/home/tim/src/wget2/glob_crash2+0x22f9) 0x604000000013 is located 3 bytes inside of 48-byte region [0x604000000010,0x604000000040) freed by thread T0 here: #0 0x7fdafb24c277 in __interceptor_free (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x107277) #1 0x55fa90a36e31 in rpl_glob /home/tim/src/wget2/lib/glob.c:849 #2 0x55fa90a334eb in main /home/tim/src/wget2/glob_crash2.c:35 #3 0x7fdafafabbba in __libc_start_main ../csu/libc-start.c:308 previously allocated by thread T0 here: #0 0x7fdafb24c628 in malloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x107628) #1 0x55fa90a35311 in rpl_glob /home/tim/src/wget2/lib/glob.c:565 #2 0x55fa90a334eb in main /home/tim/src/wget2/glob_crash2.c:35 #3 0x7fdafafabbba in __libc_start_main ../csu/libc-start.c:308 SUMMARY: AddressSanitizer: heap-use-after-free /home/tim/src/wget2/lib/glob.c:868 in rpl_glob Shadow bytes around the buggy address: 0x0c087fff7fb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0c087fff7fc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0c087fff7fd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0c087fff7fe0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0c087fff7ff0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 =3D>0x0c087fff8000: fa fa[fd]fd fd fd fd fd fa fa 00 00 00 00 00 01 0x0c087fff8010: fa fa 00 00 00 00 00 01 fa fa 00 00 00 00 06 fa 0x0c087fff8020: fa fa 00 00 00 00 06 fa fa fa 00 00 00 00 02 fa 0x0c087fff8030: fa fa 00 00 00 00 02 fa fa fa 00 00 00 00 00 fa 0x0c087fff8040: fa fa 00 00 00 00 00 fa fa fa 00 00 00 00 00 fa 0x0c087fff8050: fa fa 00 00 00 00 00 fa fa fa fa fa fa fa fa fa Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 Container overflow: fc Array cookie: ac Intra object redzone: bb ASan internal: fe Left alloca redzone: ca Right alloca redzone: cb Shadow gap: cc =3D=3D1671628=3D=3DABORTING Maybe someone who knows glob better than me could have a look. It seems to be a regression. Regards, Tim --------------338A7BA26FEFFD69C53BCD4B Content-Type: text/x-csrc; charset=UTF-8; name="glob_crash2.c" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="glob_crash2.c" /* * Created 17.01.2019 by Tim R=C3=BChsen * * Call glob() using data from fuzzer crash file * * Build and execute with instrumented gnulib (amend -I paths as needed):= * * clang build (spills out WRITE heap buffer overflow) * export CC=3Dclang-6.0 * export CFLAGS=3D"-O1 -g -fno-omit-frame-pointer -fsanitize=3Daddress -= fsanitize-address-use-after-scope" * $CC $CFLAGS -I. -Ilib glob_crash2.c -o glob_crash2 lib/.libs/libgnu.a * ./glob_crash2 * * gcc build (spills out READ heap buffer overflow): * export CC=3Dgcc * export CFLAGS=3D"-O1 -g -fno-omit-frame-pointer -fsanitize=3Daddress -= fsanitize-address-use-after-scope" * $CC $CFLAGS -I. -Ilib glob_crash2.c -o glob_crash2 lib/.libs/libgnu.a * ./glob_crash2 */ #include #include int main(int argc, char **argv) { static const unsigned char data[] =3D { 0x7e,0x6c,0x70,0x2f,0x83,0x6d,0x65,0x1d,0x75,0xef,0xcc,0xf0,0x74,0x1b,0= x03,0x02,0x43, 0x94,0x05,0x33,0x83,0x1a,0xd4,0x4c,0x9f,0xbb,0x62,0xe6,0xb5,0x99,0x75,0= x9f,0x26,0x69, 0xc0,0x49,0xb0,0x4b,0x38,0xe8,0x74,0x0c,0xc2,0xd1,0x81,0x46,0x77,0x2f,0= x89,0xf1,0xc8, 0x73,0xb3,0x8f,0xf7,0x60,0x63,0xba,0xa5,0x59,0xaa,0xd1,0xa8,0xfc,0xf8,0= x20,0xd8,0x12, 0x58,0x61,0x12,0xc6,0x21,0x5b,0xf5,0x93,0x5a,0x7c,0x79,0x34,0xa5,0x01, = 0x00 }; glob_t pglob =3D { .gl_pathc =3D 0 }; if (glob((const char *) data, GLOB_MARK | GLOB_TILDE, NULL, &pglob) =3D=3D= 0) globfree(&pglob); return 0; } --------------338A7BA26FEFFD69C53BCD4B-- --27wvqH0wv38XDlJ6K0JolKLnYex4zOR3R-- --t31W8BrwWbHhCZtl3kyTZCyWaJ5lHC1Si Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEHLJ9vJhhSy1YQWRtCDAttqJnBCgFAl4h19QACgkQCDAttqJn BCgnFw/+IUlxP89mIlIrniU0VBEIbcm3b3Y0o8Y6qEpeJjxGTqCTKzr+jvwEzZnt Hz/nzXQ2/0ZFevI+pxeYXy2+sXcP+s0znGhe6D5SzeOKngL0j1XbNMyAYZthMGZd fL3z2d6kxFi4Y1MHMxcoiNUqw7rPMIWBlCWB94IcITyWYI6BDXFTgdA9ulvGH2L3 zONK1Wnqp9IGuQda4MsnOHS0ByHfyF4HzzvcACAWIOIFUkh63ay1WqPESeInFJSI 8hmXKahNm0N7KjGPvdEGsq7Trtk+DAv/70x75Y05MiD4yC8ymvtJmXKJMrdVi3Pm mltE473ijJbhW9x9CRoWHv3KLPgxtJMDly2vpjWy99cxKEaY9N26woB4O5AF+0C2 hd0nMgsH4lVFFQCGncBBVLrfvgbYI91mdCeshY7du/SVsVQj73KciEdn4ndmYN5X UiWQEblO5Du01EsYckamglP/yhaONj+h81DC1ArL8pPBeEbEOGtSLJ1fPjK5x5ZS vRoXSDXnaR4SLxUQcdnNCkN0MjA/lCoQSiSWrepry6J85/6uzOlB1OhQLU8wi9yz lpbgk0HM2xMvr+os3nPAlKEffkYQOIgL6h7031t8xkMY7Q4fqzuJImg6s4jEz7Zo jVZcoGo7ltSJsg7hRwWKHGtMl9yUPwkSkqBh4Cyv53BAWsZOL6k= =XpzQ -----END PGP SIGNATURE----- --t31W8BrwWbHhCZtl3kyTZCyWaJ5lHC1Si--