Bug 26294 - Update request: gcc-8.4.0-1.mga7
Summary: Update request: gcc-8.4.0-1.mga7
Status: RESOLVED FIXED
Alias: None
Product: Mageia
Classification: Unclassified
Component: Security (show other bugs)
Version: 7
Hardware: All Linux
Priority: Normal normal
Target Milestone: ---
Assignee: QA Team
QA Contact: Sec team
URL:
Whiteboard: MGA7-64-OK MGA7-32-OK
Keywords: advisory, validated_update
Depends on:
Blocks: 26298 26299 26300 26301 26302 26303
  Show dependency treegraph
 
Reported: 2020-03-04 15:43 CET by Thomas Backlund
Modified: 2020-03-08 23:39 CET (History)
6 users (show)

See Also:
Source RPM: gcc
CVE:
Status comment:


Attachments

Description Thomas Backlund 2020-03-04 15:43:09 CET
Update to 8.4.0 stable, contains atleast one security related fix.

SRPM:
gcc-8.4.0-1.mga7.src.rpm


i586:
gcc-8.4.0-1.mga7.i586.rpm
gcc-c++-8.4.0-1.mga7.i586.rpm
gcc-cpp-8.4.0-1.mga7.i586.rpm
gcc-doc-8.4.0-1.mga7.noarch.rpm
gcc-gfortran-8.4.0-1.mga7.i586.rpm
gcc-gnat-8.4.0-1.mga7.i586.rpm
gcc-objc++-8.4.0-1.mga7.i586.rpm
gcc-objc-8.4.0-1.mga7.i586.rpm
gcc-plugins-8.4.0-1.mga7.i586.rpm
libasan5-8.4.0-1.mga7.i586.rpm
libasan-devel-8.4.0-1.mga7.i586.rpm
libatomic1-8.4.0-1.mga7.i586.rpm
libatomic-devel-8.4.0-1.mga7.i586.rpm
libgcc1-8.4.0-1.mga7.i586.rpm
libgfortran5-8.4.0-1.mga7.i586.rpm
libgnat8-8.4.0-1.mga7.i586.rpm
libgomp1-8.4.0-1.mga7.i586.rpm
libgomp-devel-8.4.0-1.mga7.i586.rpm
libitm1-8.4.0-1.mga7.i586.rpm
libitm-devel-8.4.0-1.mga7.i586.rpm
libmpx2-8.4.0-1.mga7.i586.rpm
libmpx-devel-8.4.0-1.mga7.i586.rpm
libobjc4-8.4.0-1.mga7.i586.rpm
libquadmath0-8.4.0-1.mga7.i586.rpm
libquadmath-devel-8.4.0-1.mga7.i586.rpm
libstdc++6-8.4.0-1.mga7.i586.rpm
libstdc++-devel-8.4.0-1.mga7.i586.rpm
libstdc++-docs-8.4.0-1.mga7.noarch.rpm
libstdc++-static-devel-8.4.0-1.mga7.i586.rpm
libubsan1-8.4.0-1.mga7.i586.rpm
libubsan-devel-8.4.0-1.mga7.i586.rpm


x86_64:
gcc-8.4.0-1.mga7.x86_64.rpm
gcc-c++-8.4.0-1.mga7.x86_64.rpm
gcc-cpp-8.4.0-1.mga7.x86_64.rpm
gcc-doc-8.4.0-1.mga7.noarch.rpm
gcc-gfortran-8.4.0-1.mga7.x86_64.rpm
gcc-gnat-8.4.0-1.mga7.x86_64.rpm
gcc-objc++-8.4.0-1.mga7.x86_64.rpm
gcc-objc-8.4.0-1.mga7.x86_64.rpm
gcc-plugins-8.4.0-1.mga7.x86_64.rpm
libasan5-8.4.0-1.mga7.x86_64.rpm
libasan-devel-8.4.0-1.mga7.x86_64.rpm
libatomic1-8.4.0-1.mga7.x86_64.rpm
libatomic-devel-8.4.0-1.mga7.x86_64.rpm
libgcc1-8.4.0-1.mga7.x86_64.rpm
libgfortran5-8.4.0-1.mga7.x86_64.rpm
libgnat8-8.4.0-1.mga7.x86_64.rpm
libgomp1-8.4.0-1.mga7.x86_64.rpm
libgomp-devel-8.4.0-1.mga7.x86_64.rpm
libitm1-8.4.0-1.mga7.x86_64.rpm
libitm-devel-8.4.0-1.mga7.x86_64.rpm
liblsan0-8.4.0-1.mga7.x86_64.rpm
liblsan-devel-8.4.0-1.mga7.x86_64.rpm
libmpx2-8.4.0-1.mga7.x86_64.rpm
libmpx-devel-8.4.0-1.mga7.x86_64.rpm
libobjc4-8.4.0-1.mga7.x86_64.rpm
libquadmath0-8.4.0-1.mga7.x86_64.rpm
libquadmath-devel-8.4.0-1.mga7.x86_64.rpm
libstdc++6-8.4.0-1.mga7.x86_64.rpm
libstdc++-devel-8.4.0-1.mga7.x86_64.rpm
libstdc++-docs-8.4.0-1.mga7.noarch.rpm
libstdc++-static-devel-8.4.0-1.mga7.x86_64.rpm
libtsan0-8.4.0-1.mga7.x86_64.rpm
libtsan-devel-8.4.0-1.mga7.x86_64.rpm
libubsan1-8.4.0-1.mga7.x86_64.rpm
libubsan-devel-8.4.0-1.mga7.x86_64.rpm
Comment 1 Thomas Backlund 2020-03-04 15:48:36 CET
@Chris: 
IIRC you have (or atleast had) some programs that depends on exact gcc version so they would need a rebuild for this update...

Can you check if this is still the case...

CC: (none) => eatdirt

Comment 2 Thomas Backlund 2020-03-04 16:27:05 CET
Remi, this one should now be a good fit for godot build testing :)

CC: (none) => rverschelde

Comment 3 Rémi Verschelde 2020-03-04 16:47:59 CET
I've been using the previous 8.4.0-0.RC1.1.mga7 over the past week with no issue. I just upgraded to 8.4.0-1.mga7 and rebuilt Godot from scratch without problem either.
Comment 4 Len Lawrence 2020-03-04 20:17:42 CET
Thanks for the test Rémi - beat me to it.
Adding the OK, assuming your test was on x86_64.  If not, we can repeat it.

CC: (none) => tarazed25
Whiteboard: (none) => MGA7-64-OK

Comment 5 Thomas Backlund 2020-03-04 23:13:36 CET
dropping the ok for now, as we want it to be in active use by several users for a while... it's not only  the compiling of stuff, it's also all the libs being used at runtime...

So just update the packages and keep using the system as usual...

Whiteboard: MGA7-64-OK => (none)

Comment 6 Len Lawrence 2020-03-05 01:07:51 CET
mga7, x86_64

Updated all 35 packages.  Shall try out gfortran and asan when there is time.
Comment 7 Len Lawrence 2020-03-05 01:21:48 CET
Simple asan test based on https://github.com/google/sanitizers/wiki/AddressSanitizer

$ cat use-after-free.c
#include <stdlib.h>
int main() {
  char *x = (char*)malloc(10 * sizeof(char*));
  free(x);
  return x[5];
}

Making a guess here that gcc can use the same flags here as clang.
$ gcc -o useafterfree -fsanitize=address -O1 -fno-omit-frame-pointer -g use-after-free.c

$ ./useafterfree
=================================================================
==4688==ERROR: AddressSanitizer: heap-use-after-free on address 0x607000000025 at pc 0x0000004011a0 bp 0x7ffee166cc20 sp 0x7ffee166cc18
READ of size 1 at 0x607000000025 thread T0
    #0 0x40119f in main /home/lcl/use-after-free.c:5
    #1 0x7f319e3e4b0a in __libc_start_main (/lib64/libc.so.6+0x26b0a)
    #2 0x4010a9 in _start (/home/lcl/useafterfree+0x4010a9)

0x607000000025 is located 5 bytes inside of 80-byte region [0x607000000020,0x607000000070)
freed by thread T0 here:
    #0 0x7f319e671270 in __interceptor_free (/lib64/libasan.so.5+0xe9270)
    #1 0x40116f in main /home/lcl/use-after-free.c:4
    #2 0x7f319e3e4b0a in __libc_start_main (/lib64/libc.so.6+0x26b0a)

previously allocated by thread T0 here:
    #0 0x7f319e6715f0 in __interceptor_malloc (/lib64/libasan.so.5+0xe95f0)
    #1 0x401164 in main /home/lcl/use-after-free.c:3
    #2 0x7f319e3e4b0a in __libc_start_main (/lib64/libc.so.6+0x26b0a)

SUMMARY: AddressSanitizer: heap-use-after-free /home/lcl/use-after-free.c:5 in main
Shadow bytes around the buggy address:
  0x0c0e7fff7fb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c0e7fff7fc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c0e7fff7fd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c0e7fff7fe0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c0e7fff7ff0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x0c0e7fff8000: fa fa fa fa[fd]fd fd fd fd fd fd fd fd fd fa fa
  0x0c0e7fff8010: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c0e7fff8020: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c0e7fff8030: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c0e7fff8040: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c0e7fff8050: fa fa fa fa fa fa fa 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
==4688==ABORTING

Looks OK.
Comment 8 Len Lawrence 2020-03-05 01:45:46 CET
Compiled a very simple fortran program to calculate the sum of cubes of n numbers  supplied at the commandline.  Used gfortran to compile.  Worked a treat.
Comment 9 Herman Viaene 2020-03-05 14:22:53 CET
MGA7-64 Plasma on Lenovo B50
This laptop is fully updated, but I get:
Sorry, the following package cannot be selected:
- gcc-8.4.0-1.mga7.x86_64 (due to unsatisfied binutils[>= 1:2.33.1-1])

CC: (none) => herman.viaene

Comment 10 Thomas Backlund 2020-03-05 14:57:31 CET
(In reply to Herman Viaene from comment #9)
> MGA7-64 Plasma on Lenovo B50
> This laptop is fully updated, but I get:
> Sorry, the following package cannot be selected:
> - gcc-8.4.0-1.mga7.x86_64 (due to unsatisfied binutils[>= 1:2.33.1-1])

yeah, that one is still in testing media (already validated)

I just havent had time/energy to add advisories and flush it out

you can install it from testing for now
Comment 11 Len Lawrence 2020-03-05 17:06:01 CET
@Herman, comment 9.  Yes, binutils was OK here after the update testing so gcc presented no problem.
Comment 12 Len Lawrence 2020-03-05 20:24:43 CET
Running urpmq --whatrequires-recursive on some of the libraries.

Turned up shotwell for libgomp1.
$ strace -o trace shotwell *
$ grep gomp trace
openat(AT_FDCWD, "/lib64/libgomp.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib64/libgomp.so.1.0.0", O_RDONLY) = 3

More than 32000 hits on libgcc1.

Tried some others but found nothing definitive.
Comment 13 Chris Denice 2020-03-05 21:12:24 CET
Yes, no pb, push the update, I'll open another bug for the fortran-devel packages needing a rebuild!
Comment 14 Chris Denice 2020-03-05 21:16:10 CET
To be more specific, they are:
openmpi
pgplot
aspic
sundials
pg2plplot
healpix
Comment 15 Thomas Backlund 2020-03-05 21:17:42 CET
(In reply to Chris Denice from comment #14)
> To be more specific, they are:
> openmpi
> pgplot
> aspic
> sundials
> pg2plplot
> healpix

So you can submit them to testing already, set the buildrequires to 8.4.0-1 and have them depend on this bug
Chris Denice 2020-03-05 22:10:45 CET

Blocks: (none) => 26298

Chris Denice 2020-03-05 22:14:50 CET

Blocks: (none) => 26299

Chris Denice 2020-03-05 22:18:24 CET

Blocks: (none) => 26300

Chris Denice 2020-03-05 22:23:49 CET

Blocks: (none) => 26301

Chris Denice 2020-03-05 22:27:31 CET

Blocks: (none) => 26302

Chris Denice 2020-03-05 22:30:40 CET

Blocks: (none) => 26303

Comment 16 Thomas Andrews 2020-03-06 17:26:56 CET
(In reply to Thomas Backlund from comment #5)
> dropping the ok for now, as we want it to be in active use by several users
> for a while... it's not only  the compiling of stuff, it's also all the libs
> being used at runtime...
> 
> So just update the packages and keep using the system as usual...

OK, then. My old Fortran skills atrophied years ago, so I'll leave checking out the development aspects to others. However, I used QARepo to download the entire update list, and Mageia Update only wanted these runtime libraries:

The following 5 packages are going to be installed:

- libgcc1-8.4.0-1.mga7.x86_64
- libgfortran5-8.4.0-1.mga7.x86_64
- libgomp1-8.4.0-1.mga7.x86_64
- libquadmath0-8.4.0-1.mga7.x86_64
- libstdc++6-8.4.0-1.mga7.x86_64

Those installed cleanly, and so far, so good. I will report back if anything untoward shows up.

CC: (none) => andrewsfarm

Comment 17 Thomas Backlund 2020-03-06 17:33:11 CET
Advisory, added to svn.

type: security
subject: Updated gcc packages fix security vulnerability
src:
  7:
   core:
     - gcc-8.4.0-1.mga7
description: |
  This update provides gcc 8.4.0 stable release, containing important
  fixes for regressions and serious bugs in GCC 8.3 with more than 209
  bugs fixed since the previous release.

  It also fixes atleast the following security issue:

  every time the collect2 process is interrupted via a signal it can
  delete random files from the hard drive, since the signal handler may
  be using the path name, and passes it to the unlink function before it
  is initialized.
references:
 - https://bugs.mageia.org/show_bug.cgi?id=26294
 - https://gcc.gnu.org/ml/gcc/2020-03/msg00042.html

Keywords: (none) => advisory

Thomas Backlund 2020-03-08 23:11:51 CET

CC: (none) => sysadmin-bugs
Keywords: (none) => validated_update
Whiteboard: (none) => MGA7-64-OK MGA7-32-OK

Comment 18 Mageia Robot 2020-03-08 23:39:00 CET
An update for this issue has been pushed to the Mageia Updates repository.

https://advisories.mageia.org/MGASA-2020-0132.html

Status: NEW => RESOLVED
Resolution: (none) => FIXED


Note You need to log in before you can comment on or make changes to this bug.