Bug 26465 - golang new security issue CVE-2020-7919
Summary: golang new security issue CVE-2020-7919
Status: RESOLVED FIXED
Alias: None
Product: Mageia
Classification: Unclassified
Component: Security (show other bugs)
Version: 7
Hardware: All Linux
Priority: Normal critical
Target Milestone: ---
Assignee: QA Team
QA Contact: Sec team
URL:
Whiteboard: MGA7-64-OK MGA7-32-OK
Keywords: advisory, validated_update
Depends on:
Blocks:
 
Reported: 2020-04-09 23:00 CEST by David Walser
Modified: 2020-04-15 12:13 CEST (History)
5 users (show)

See Also:
Source RPM: golang-1.12.11-1.mga7.src.rpm
CVE:
Status comment:


Attachments

Description David Walser 2020-04-09 23:00:30 CEST
Fedora has issued an advisory today (April 9):
https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/thread/S43VLYRURELDWX4D5RFOYBNFGO6CGBBC/

The issue is fixed upstream in 1.12.16:
https://github.com/golang/go/issues/36839

1.12.17 is the newest 1.12.x upstream:
https://github.com/golang/go/releases
David Walser 2020-04-09 23:19:26 CEST

Status comment: (none) => Fixed upstream in 1.12.16

Comment 1 Bruno Cornec 2020-04-10 18:18:05 CEST
1.12.17 pushed in core/updates_testing

Status: NEW => ASSIGNED
Assignee: bruno => qa-bugs

Comment 2 David Walser 2020-04-10 18:43:13 CEST
Advisory:
========================

Updated golang packages fix security vulnerability:

An integer overflow vulnerability was found in the Go crypto/x509 and
golang.org/x/crypto/cryptobyte libraries on 32-bit architectures. A remote
attacker could exploit this by supplying a crafted x.509 certificate, or other
ASN.1 structure, as either a client or server to crash vulnerable Go
applications (CVE-2020-7919).

References:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-7919
https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/thread/S43VLYRURELDWX4D5RFOYBNFGO6CGBBC/
========================

Updated packages in core/updates_testing:
========================
golang-1.12.17-1.mga7
golang-docs-1.12.17-1.mga7
golang-misc-1.12.17-1.mga7
golang-tests-1.12.17-1.mga7
golang-src-1.12.17-1.mga7
golang-bin-1.12.17-1.mga7
golang-shared-1.12.17-1.mga7

from golang-1.12.17-1.mga7.src.rpm

Status comment: Fixed upstream in 1.12.16 => (none)
CC: (none) => bruno

Comment 3 Len Lawrence 2020-04-10 20:54:58 CEST
mga7, x86_64

The vulnerability is reported for 32-bit architectures but there are no real 32-bit hardware systems here or any VMs.  No PoC available either.

Going ahead with 64-bits.
Updated the seven packages.
Decided to forego the HelloWorld compilation and perform a local build of docker which has always been recommended in the past.

$ rm -rf docker
$ mgarepo co -d 7 docker
$ cd docker
$ bm -ls
$ ls
BUILD/  BUILDROOT/  RPMS/  SOURCES/  SPECS/  SRPMS/
$ sudo urpmi --buildrequires SPECS/docker.spec
warning: Macro expanded in comment on line 40: %{shortcommit}

In order to satisfy the 'go-md2man' dependency, one of the following packages is needed:
 1- go-md2man-1.0.8-1.mga7.x86_64: Transform md into man pages (to install)
 2- golang-github-cpuguy83-go-md2man-1.0.8-1.mga7.x86_64: Process markdown into manpages (to install)
What is your choice? (1-2) 1
[...]
$ bm -l
[...]
+ exit 0
succeeded!

That should be enough for updates.  Hopefully somebody can do the same for 32-bits.  Using a VM should be OK as long as it has sufficient resources.
$ du -hs docker
520M	docker

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

Comment 4 Thomas Andrews 2020-04-11 23:57:25 CEST
Well, I tried. I fired up the steam boiler for Foolishness, my Dell Inspiron 5100 with the 32-bit P4, running a more or less stock Xfce, and gave it a shot.

I installed the seven packages and dependencies, and updated the seven. That much went fine. 

Then I had to install mgarepo and 61 dependencies, and try to use that. It seems I was absent the day we covered that material in class. I should have known there would be a test on it one day. It failed, of course, because I have no idea of how to configure it to work properly. Something about denied permissions(public key), and something else about SSH. All a mystery to me. I looked at the wiki, and just became more confused.

But, at least I got as far as a clean install of the packages in question on 32-bits. If that's enough, let me know. If not, please give me some guidance on how to proceed. I know we don't have much pure 32-bit hardware in QA, so I'll do what I can.

CC: (none) => andrewsfarm

Comment 5 Len Lawrence 2020-04-12 00:49:59 CEST
Ah, sorry TJ, I forgot about the access business - thought that anybody with a Mageia id could do that.  I remember vaguely now that I had to copy the public key into one of the fields in the id page but there was something else as well involving a sysadmin - something about being given permission to do that.  That was at least two years ago so it is prehistory to me, beyond the event horizon.

:-((
Comment 6 David Walser 2020-04-12 01:16:14 CEST
You can switch it to anonymous SVN access in the mgarepo configuration file.
Comment 7 Len Lawrence 2020-04-12 09:56:54 CEST
Thanks for the reminder David.  Had just discovered that when trying mgarepo on another workstation.
@TJ: That is /etc/mgarepo.conf, about seven lines down.
Comment 8 Thomas Andrews 2020-04-12 15:20:46 CEST
Thank you, Gentlemen. 

It's morning here right now, but I will look into it later today, once my brother and I have finished with our solitary family holiday festivities.
Comment 9 Thomas Andrews 2020-04-12 20:28:53 CEST
Progress, I suppose. I was able to get the source files, and cd to docker, but now I'm being told that the command "bm" is not being found. Doesn't matter if I'm using it as root or as a user. 

I must be missing yet another development package, or ten.

BTW, I performed the other commands as root, because I haven't activated "sudo" on this, or any, of my systems. Now that I think of it, most likely when I got to the command that uses it I could have just skipped it and I would have been asked for the password. Oh, well.
Comment 10 Thomas Andrews 2020-04-12 20:49:18 CEST
I should have known. The package I need to get the "bm" command is, of course, "bm."

Sigh.
Comment 11 Thomas Andrews 2020-04-12 22:23:12 CEST
So, after what seemed like an exceptionally long time, and lots of verbiage, I saw this:

Succeeded!

If that was good enough for a 64-bit OK, then it's good enough for 32-bits.

Validating. Advisory in Comment 2.

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

Comment 12 Len Lawrence 2020-04-13 08:53:39 CEST
Well done TJ.  Thanks for taking the trouble to follow this up.  I run this all as a user, not root, apart from installing the buildrequires stuff.  And I can imagine it might take a while on your equipment but it is good to see that steam-power can still cut it.  ;-)

$ du -hs *
356M	BUILD
4.0K	BUILDROOT
127M	RPMS
18M	SOURCES
2.9M	SPECS
18M	SRPMS
Comment 13 Thomas Andrews 2020-04-13 14:43:15 CEST
Hey, Foolishness and I were just doing our jobs.

Rest assured, I wouldn't have attempted this, especially as root, on one of my production systems, because for me it is uncharted territory. But the reason I rescued Foolishness from a church rummage sale was to act as a test machine, with there always being the risk of messing up the whole system. 

So, I am mentally prepared to do a complete re-install if needed, and I never, ever put something on its hard drive that I can't afford to lose. And as far as I can tell, Foolishness is OK with that. I think it appreciates the new lease on life.
Thomas Backlund 2020-04-15 10:35:45 CEST

Keywords: (none) => advisory
CC: (none) => tmb

Comment 14 Mageia Robot 2020-04-15 12:13:59 CEST
An update for this issue has been pushed to the Mageia Updates repository.

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

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


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