Bug 13187 - chromium-browser-stable new security issues fixed in 34.0.1847.116
Summary: chromium-browser-stable new security issues fixed in 34.0.1847.116
Status: RESOLVED FIXED
Alias: None
Product: Mageia
Classification: Unclassified
Component: Security (show other bugs)
Version: 4
Hardware: i586 Linux
Priority: Normal critical
Target Milestone: ---
Assignee: QA Team
QA Contact: Sec team
URL: http://lwn.net/Vulnerabilities/595032/
Whiteboard: MGA3TOO has_procedure advisory mga3-3...
Keywords: validated_update
Depends on:
Blocks:
 
Reported: 2014-04-10 19:49 CEST by David Walser
Modified: 2014-04-20 14:02 CEST (History)
5 users (show)

See Also:
Source RPM: chromium-browser-stable-33.0.1750.152-1.mga4.src.rpm
CVE:
Status comment:


Attachments

Description David Walser 2014-04-10 19:49:39 CEST
Upstream has released version 34.0.1847.116 on April 8:
http://googlechromereleases.blogspot.com/2014/03/stable-channel-update_14.html

This fixes a handful of new security issues.

This is the current version in the stable channel:
http://googlechromereleases.blogspot.com/search/label/Stable%20updates

Reproducible: 

Steps to Reproduce:
Comment 1 David Walser 2014-04-10 19:51:31 CEST
A user has claimed in Bug 13118 that Flash will no longer work as of this Chromium version, and that we will need a non-free package to download and install Chrome's Pepper Flash like we have now for Adobe Flash.  I haven't been able to verify this.  If true, it will certainly complicate this update.

CC'ing Pascal and Anssi who may have some insight and/or interest in this.

CC: (none) => anssi.hannula, pterjan
Whiteboard: (none) => MGA4TOO, MGA3TOO

Comment 2 Anssi Hannula 2014-04-10 21:54:36 CEST
If true, I'd say the best way forward probably is to:

1. Provide "flash-player-plugin-pepper" or similar in the same way as "flash-player-plugin", and

2. Have it installed somehow:
   (a) Have it as a suggests in "flash-player-plugin":
       Pros: Users using flash-player-plugin will continue to get flash.
       Cons: Non-chromium users will get it for no reason. (apparently it also
             requires explicit changes in Chromium package to get it to use
             our separately packaged flash.

   (b) Have it as a suggests on "chromium":
       Pros: Only chromium users will get it.
       Cons: Flash-less users that have non-free media enabled will have
             Flash installed.

   (c) Something way better I'm not seeing?

I'm probably leaning towards (a), any other opinions?

In the meantime I'll verify that this is really the case, and then post on dev@ just to get a wider audience, while creating a flash-player-plugin-pepper package.
Anssi Hannula 2014-04-10 22:03:36 CEST

Depends on: (none) => 13118

Comment 3 David Walser 2014-04-10 22:09:07 CEST
Thanks Anssi.  I would say that option (b) sounds like it makes more sense to me.  Pepper is only relevant to chromium users, they probably want it, so the Suggests is good, and if they really don't want it, they should be able to just uninstall it and it shouldn't come back.
Comment 4 Anssi Hannula 2014-04-10 22:14:47 CEST
David: Sure, but is that how Suggests work? I was under the impression that they would come back on every update... though maybe that has changed in the recent years without me noticing?


Anyway, looks like the NPAPI removal schedule was changed and it was only removed on Chromium 34+: http://blog.chromium.org/2014/04/chrome-35-beta-more-developer-control.html

So this is not needed for this update yet, but in a month or so.

Depends on: 13118 => (none)

Comment 5 Anssi Hannula 2014-04-10 22:19:38 CEST
(In reply to Anssi Hannula from comment #4)
> David: Sure, but is that how Suggests work? I was under the impression that
> they would come back on every update... though maybe that has changed in the
> recent years without me noticing?

Reading the code it indeed has changed, good. So I'll probably be in favor of that options as well. One another thing is that maybe we will see support for pepper in other browsers if/when Adobe drops support for NPAPI completely (or earlier)... but we can just switch the suggest at that point then I guess.
Comment 6 David Walser 2014-04-10 22:24:29 CEST
Anssi, thanks for the research.

And yes, as far as the Suggests thing, it did used to work in a way that it would come back with every update, and I mentioned this on the -dev list at some point and tv said he'd fixed that.
Comment 7 David Walser 2014-04-10 23:45:17 CEST
Another issue is during the build, a bundled tool called tools/gn/bin/linux/gn is called, and until recently this binary was included in the source tarball, but a few releases ago, it got dropped even though it's still needed.  ROSA bundled it up (probably from the last chromium tarball that had it) into a separate tarball and included that in their SRPM, and I do the same.  In their build of 34 from today, they included a patch linked from this upstream bug:
https://codereview.chromium.org/142853004/

which if I'm reading it correctly, applying this patch would make it not call that gn binary during the build (although ROSA didn't drop including it in their SRPM), but upstream's reaction to the patch is you shouldn't be using make to build it, you should be using ninja (which I guess is some other tool we don't have packaged) and then it will use gn, which hopefully is either included with ninja, or building with ninja knows how to produce this binary during the build somehow, since it still isn't included in the source tarball.

The other things I noticed from their commit:
https://abf.rosalinux.ru/import/chromium-browser-stable/commit/099bf7ae8651f2da3dd796211c0b3cbaeccbdf78

is that chrome.pak is apparently no longer built (not sure the implications of that) and icudtl.dat needs to be installed (the path used by the install command was fixed in a later commit), which makes sense since it's building a bundled icu rather than using the system one.
Comment 8 Pascal Terjan 2014-04-11 00:08:45 CEST
I have imported ninja into Cauldron, not tried to use it yet.
Comment 9 David Walser 2014-04-11 00:11:11 CEST
(In reply to Pascal Terjan from comment #8)
> I have imported ninja into Cauldron, not tried to use it yet.

Thanks.  I wouldn't know how to, so hopefully you'll be able to figure out the necessary SPEC file machinations to make use of it :o)
Comment 10 Pascal Terjan 2014-04-11 10:14:44 CEST
Building with ninja by itself was easy but build/gyp_chromium was failing to find depot_tools, whether I use make or ninja.

depot_tools is the git repository containing binary version of ninja, gn and other stuff for linux-32, linux-64, mac, windows so I had to patch it to not search for it.

Then I reached the missing chrome.pak and went to sleep. I committed current state this morning.
Comment 11 Pascal Terjan 2014-04-11 10:24:25 CEST
Oh and for gn, its sources are in the chrome sources so the solution is probably to build it.

I tried:

python tools/gn/bootstrap/bootstrap.py

which successfully built it, but then it failed to rebuilt itself:

[224/224] LINK gn
Building gn using itself to out/Release...
ERROR at //device/usb/BUILD.gn:6:17: File is not inside output directory.
generated_ids = "$target_gen_dir/usb_ids_gen.cc"

Will look more into it later.
Comment 12 Pascal Terjan 2014-04-11 17:34:29 CEST
Cauldron version building with a gn built from source, I still haven't updated the list of files to install.
Comment 13 Pascal Terjan 2014-04-12 00:38:51 CEST
Untested build uploaded to Cauldron, I won't be able to test it before at least Sunday evening.
Comment 14 Pascal Terjan 2014-04-14 23:49:12 CEST
My testing on cauldron leads quite quickly to a segfault :(

#0  __cxxabiv1::__dynamic_cast (src_ptr=0x7fffac1a8550, src_type=0x7ffff47bcff0 <typeinfo for google::protobuf::MessageLite>, 
    dst_type=0x7ffff47bec40 <typeinfo for google::protobuf::Message>, src2dst=0) at ../../../../libstdc++-v3/libsupc++/dyncast.cc:60
#1  0x00007ffff45674ce in google::protobuf::Message::CheckTypeAndMergeFrom(google::protobuf::MessageLite const&) () from /lib64/libprotobuf.so.8
#2  0x0000555558d4adbd in gcm::MCSMessage::CloneProtobuf() const ()
#3  0x0000555558d613df in gcm::MCSClient::SendMessage(gcm::MCSMessage const&) ()
#4  0x0000555558d65998 in gcm::MCSClient::HandleMCSDataMesssage(scoped_ptr<google::protobuf::MessageLite, base::DefaultDeleter<google::protobuf::MessageLite> >) ()
#5  0x0000555558d65bc8 in gcm::MCSClient::HandlePacketFromWire(scoped_ptr<google::protobuf::MessageLite, base::DefaultDeleter<google::protobuf::MessageLite> >) ()
#6  0x0000555558d5c52c in base::internal::Invoker<1, base::internal::BindState<base::internal::RunnableAdapter<void (gcm::MCSClient::*)(scoped_ptr<google::protobuf::MessageLite, base::DefaultDeleter<google::protobuf::MessageLite> >)>, void (gcm::MCSClient*, scoped_ptr<google::protobuf::MessageLite, base::DefaultDeleter<google::protobuf::MessageLite> >), void (base::WeakPtr<gcm::MCSClient>)>, void (gcm::MCSClient*, scoped_ptr<google::protobuf::MessageLite, base::DefaultDeleter<google::protobuf::MessageLite> >)>::Run(base::internal::BindStateBase*, scoped_ptr<google::protobuf::MessageLite, base::DefaultDeleter<google::protobuf::MessageLite> >) ()
#7  0x0000555558d4f8d0 in gcm::ConnectionHandlerImpl::OnGotMessageBytes() ()
#8  0x0000555558d501ae in gcm::ConnectionHandlerImpl::WaitForData(gcm::ConnectionHandlerImpl::ProcessingState) ()
#9  0x0000555558d70677 in gcm::SocketInputStream::RefreshCompletionCallback(base::Callback<void ()> const&, int) ()
#10 0x00005555563f0107 in base::internal::Invoker<1, base::internal::BindState<base::Callback<void (int)>, void (int), void (int)>, void (int)>::Run(base::internal::BindStateBase*) ()
#11 0x000055555668c01d in net::SSLClientSocketNSS::Core::PostOrRunCallback(tracked_objects::Location const&, base::Callback<void ()> const&) ()
#12 0x0000555556503587 in base::MessageLoop::RunTask(base::PendingTask const&) ()
#13 0x0000555556504491 in base::MessageLoop::DeferOrRunPendingTask(base::PendingTask const&) ()
#14 0x0000555556506cb5 in base::MessageLoop::DoWork() ()
#15 0x00005555564d0f88 in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) ()
#16 0x0000555556508e4b in base::MessageLoop::RunHandler() ()
#17 0x0000555556526648 in base::RunLoop::Run() ()
#18 0x0000555556502805 in base::MessageLoop::Run() ()
#19 0x0000555558699be5 in content::BrowserThreadImpl::IOThreadRun(base::MessageLoop*) ()
#20 0x0000555558699cfb in content::BrowserThreadImpl::Run(base::MessageLoop*) ()
#21 0x000055555653df33 in base::Thread::ThreadMain() ()
#22 0x00005555565391ac in base::(anonymous namespace)::ThreadFunc(void*) ()
#23 0x00007ffff47cafab in start_thread (arg=0x7fffc9568700) at pthread_create.c:309
#24 0x00007ffff132918d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
Comment 16 David Walser 2014-04-15 00:09:33 CEST
So we need to switch back to using the bundled protobuf (Mageia 3 still is).
Comment 17 Pascal Terjan 2014-04-15 01:46:34 CEST
Yes that seems the best solution :(
Comment 18 David Walser 2014-04-15 02:01:26 CEST
Nice as it is to be able to use system libraries, I don't think it's a big deal, especially for a not-heavily-used library like protobuf, considering how frequently updated chromium is.  Using the bundled one really doesn't cost anything.
Comment 19 Pascal Terjan 2014-04-15 23:24:14 CEST
It seems to be working fine in cauldron. How to proceed next?
Upload ninja to updates_testing for 3 and 4 and then chromium?
Comment 20 David Walser 2014-04-15 23:36:10 CEST
Yes indeed!  Thanks Pascal!  We have to submit the build in both core and tainted.
Comment 21 Pascal Terjan 2014-04-16 01:51:11 CEST
All done apart from 3/tainted which is still building
Comment 22 David Walser 2014-04-16 15:07:05 CEST
Updated packages uploaded for Mageia 3, Mageia 4, and Cauldron.

Note to QA: there are both core and tainted builds for this package.

There are more changes in this update than usual.  We've changed the way it's built from using make to using a build tool called ninja, which we had to backport for this update.  Ninja doesn't really need to be tested by QA, as we already know it works since it was successfully used to build chromium.  Also, the chrome.pak file is no longer part of the package.  Finally, on Mageia 4 it is using a bundled protobuf library again (as it has been on Mageia 3) instead of the system one.

Also, I just noticed that I pasted the wrong link in Comment 0, but it's correct in the references below.

Advisory:
========================

Updated chromium-browser-stable packages fix security vulnerabilities:

Multiple vulnerabilities in the V8 JavaScript library, including a UXSS issue
(CVE-2014-1716), OOB access (CVE-2014-1717), memory corruption
(CVE-2014-1721), and other vulnerabilities fixed in V8 version 3.24.35.22
(CVE-2014-1729).

Integer overflow in compositor (CVE-2014-1718).

Multiple use-after-free flaws; in web workers (CVE-2014-1719), DOM
(CVE-2014-1720), rendering (CVE-2014-1722), speech (CVE-2014-1724), and forms
(CVE-2014-1727).

Url confusion with RTL characters (CVE-2014-1723).

OOB read with window property (CVE-2014-1725).

Local cross-origin bypass (CVE-2014-1726).

Various fixes from internal audits, fuzzing and other initiatives
(CVE-2014-1728).

References:
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-1716
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-1717
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-1718
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-1719
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-1720
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-1721
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-1722
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-1723
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-1724
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-1725
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-1726
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-1727
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-1728
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-1729
http://googlechromereleases.blogspot.com/2014/04/stable-channel-update.html
========================

Updated packages in core/updates_testing:
========================
chromium-browser-stable-34.0.1847.116-2.mga3
chromium-browser-34.0.1847.116-2.mga3
ninja-1.4.0-1.mga3
chromium-browser-stable-34.0.1847.116-2.mga4
chromium-browser-34.0.1847.116-2.mga4
ninja-1.4.0-1.mga4

Updated packages in tainted/updates_testing:
========================
chromium-browser-stable-34.0.1847.116-2.mga3
chromium-browser-34.0.1847.116-2.mga3
chromium-browser-stable-34.0.1847.116-2.mga4
chromium-browser-34.0.1847.116-2.mga4

from SRPMS:
chromium-browser-stable-34.0.1847.116-2.mga3.src.rpm
ninja-1.4.0-1.mga3.src.rpm
chromium-browser-stable-34.0.1847.116-2.mga4.src.rpm
ninja-1.4.0-1.mga4.src.rpm

Version: Cauldron => 4
Whiteboard: MGA4TOO, MGA3TOO => MGA3TOO

Comment 23 David Walser 2014-04-17 00:14:52 CEST
Debian has issued an advisory for this on April 15:
https://www.debian.org/security/2014/dsa-2905

URL: (none) => http://lwn.net/Vulnerabilities/595032/

Comment 24 David Walser 2014-04-17 21:59:07 CEST
Oops, somehow this didn't get assigned to QA.

Please see all the notes and information in Comment 22.

Assignee: bugsquad => qa-bugs

Comment 25 claire robinson 2014-04-18 15:49:52 CEST
Testing complete mga4 64

https, java, flash, sign-in, apps, browsing, javascript with sunspider

Whiteboard: MGA3TOO => MGA3TOO has_procedure mga4-64-ok

Comment 26 claire robinson 2014-04-19 16:54:33 CEST
Testing complete mga3 64 and mga4 32

Needs testing mga3 32 to validate

Whiteboard: MGA3TOO has_procedure mga4-64-ok => MGA3TOO has_procedure mga3-64-ok mga4-32-ok mga4-64-ok

Comment 27 William Kenney 2014-04-19 18:45:45 CEST
In VirtualBox, M3, KDE, 32-bit

Package(s) under test:
chromium-browser-stable

default install of chromium-browser-stable

[root@localhost wilcal]# urpmi chromium-browser-stable
Package chromium-browser-stable-33.0.1750.152-1.mga3.tainted.i586 is already installed

Chromium displays cnn.com, google.com and YouTube.com (videos) just fine.

install chromium-browser-stable from updates_testing

[root@localhost wilcal]# urpmi chromium-browser-stable
Package chromium-browser-stable-34.0.1847.116-2.mga3.tainted.i586 is already installed

Chromium displays cnn.com, google.com and YouTube.com (videos) just fine.

Test platform:
Intel Core i7-2600K Sandy Bridge 3.4GHz
GIGABYTE GA-Z68X-UD3-B3 LGA 1155 MoBo
GIGABYTE GV-N440D3-1GI Nvidia GeForce GT 440 (Fermi) 1GB
RTL8111/8168B PCI Express 1Gbit Ethernet
DRAM 16GB (4 x 4GB)
Mageia 4 64-bit, Nvidia driver
VirtualBox 4.3.6-1.mga4.x86_64.rpm

CC: (none) => wilcal.int
Whiteboard: MGA3TOO has_procedure mga3-64-ok mga4-32-ok mga4-64-ok => MGA3TOO has_procedure mga3-32-ok mga3-64-ok mga4-32-ok mga4-64-ok

Comment 28 William Kenney 2014-04-19 18:46:19 CEST
For me this update works fine.
Testing complete for mga3 32-bit & 64-bit
Testing complete for mga4 32-bit & 64-bit
Validating the update.
Could someone from the sysadmin team push this to updates.
Thanks

Keywords: (none) => validated_update
CC: (none) => sysadmin-bugs

Comment 29 Damien Lallement 2014-04-20 12:54:45 CEST
Please do not ask for sysadmin to push an update when there is no advisory uploaded.
Waiting.

Keywords: validated_update => (none)
CC: sysadmin-bugs => mageia

Comment 30 claire robinson 2014-04-20 13:16:35 CEST
Until recently this was done by sysadmins Damien, as you know. You could be a bit flexible here, we are not here to provide secretarial services. SVN works as well for you as it does for us.

The update is validated, there is no reason to remove the keyword.

I will upload an advisory shortly if this simple task is causing a roadblock to pushing a security update.

Keywords: (none) => validated_update
CC: (none) => sysadmin-bugs

Comment 31 claire robinson 2014-04-20 13:27:59 CEST
Update tested, validated and advisory uploaded. 
Missing Tainted SRPM's added to advisory.

Whiteboard: MGA3TOO has_procedure mga3-32-ok mga3-64-ok mga4-32-ok mga4-64-ok => MGA3TOO has_procedure advisory mga3-32-ok mga3-64-ok mga4-32-ok mga4-64-ok

Comment 32 Damien Lallement 2014-04-20 13:45:20 CEST
As you said: "Until recently".
Moreover secretarial services are not a shame.
http://advisories.mageia.org/MGASA-2014-0183.html

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

Comment 33 claire robinson 2014-04-20 14:02:06 CEST
(In reply to Damien Lallement from comment #32)
> As you said: "Until recently".

Perhaps our flexibility is something we need to revisit if sysadmin are forming a stance of inflexibility. 

> Moreover secretarial services are not a shame.

Feel free to provide them then..

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