New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[18.03] thunderbird: 52.9.0 -> 60, thunderbird-bin: 52.9.0 -> 60 #47761
Conversation
(cherry picked from commit d4de3b2)
This is a port of the current state of thunderbird from the master branch. We did miss a bunch of security fixes when thunderbird 60 was released. This is an attempt to take a shortcut by simply copying over the expression from the master branch. Security related fixes in this release are: - CVE-2018-12359: Buffer overflow using computed size of canvas element A buffer overflow can occur when rendering canvas content while adjusting the height and width of the <canvas> element dynamically, causing data to be written outside of the currently computed boundaries. This results in a potentially exploitable crash. - CVE-2018-12360: Use-after-free when using focus() A use-after-free vulnerability can occur when deleting an input element during a mutation event handler triggered by focusing that element. This results in a potentially exploitable crash. - CVE-2018-12361: Integer overflow in SwizzleData An integer overflow can occur in the SwizzleData code while calculating buffer sizes. The overflowed value is used for subsequent graphics computations when their inputs are not sanitized which results in a potentially exploitable crash. - CVE-2018-12362: Integer overflow in SSSE3 scaler An integer overflow can occur during graphics operations done by the Supplemental Streaming SIMD Extensions 3 (SSSE3) scaler, resulting in a potentially exploitable crash. - CVE-2018-5156: Media recorder segmentation fault when track type is changed during capture A vulnerability can occur when capturing a media stream when the media source type is changed as the capture is occuring. This can result in stream data being cast to the wrong type causing a potentially exploitable crash. - CVE-2018-12363: Use-after-free when appending DOM nodes A use-after-free vulnerability can occur when script uses mutation events to move DOM nodes between documents, resulting in the old document that held the node being freed but the node still having a pointer referencing it. This results in a potentially exploitable crash. - CVE-2018-12364: CSRF attacks through 307 redirects and NPAPI plugins NPAPI plugins, such as Adobe Flash, can send non-simple cross-origin requests, bypassing CORS by making a same-origin POST that does a 307 redirect to the target site. This allows for a malicious site to engage in cross-site request forgery (CSRF) attacks. - CVE-2018-12365: Compromised IPC child process can list local filenames A compromised IPC child process can escape the content sandbox and list the names of arbitrary files on the file system without user consent or interaction. This could result in exposure of private local files. - CVE-2018-12371: Integer overflow in Skia library during edge builder allocation An integer overflow vulnerability in the Skia library when allocating memory for edge builders on some systems with at least 16 GB of RAM. This results in the use of uninitialized memory, resulting in a potentially exploitable crash. - CVE-2018-12366: Invalid data handling during QCMS transformations An invalid grid size during QCMS (color profile) transformations can result in the out-of-bounds read interpreted as a float value. This could leak private data into the output. - CVE-2018-12367: Timing attack mitigation of PerformanceNavigationTiming In the previous mitigations for Spectre, the resolution or precision of various methods was reduced to counteract the ability to measure precise time intervals. In that work, PerformanceNavigationTiming was not adjusted but it was found that it could be used as a precision timer. - CVE-2018-5187: Memory safety bugs fixed in Firefox 61, Firefox ESR 60.1, and Thunderbird 60 Mozilla developers and community members Christian Holler, Sebastian Hengst, Nils Ohlmeier, Jon Coppeard, Randell Jesup, Ted Campbell, Gary Kwong, and Jean-Yves Avenard reported memory safety bugs present in Firefox 60 and Firefox ESR 60. Some of these bugs showed evidence of memory corruption and we presume that with enough effort that some of these could be exploited to run arbitrary code. - CVE-2018-5188: Memory safety bugs fixed in Firefox 61, Firefox ESR 60.1, Firefox ESR 52.9, and Thunderbird 60 Mozilla developers and community members Alex Gaynor, Christoph Diehl, Christian Holler, Jason Kratzer, David Major, Jon Coppeard, Nicolas B. Pierron, Jason Kratzer, Marcia Knous, and Ronald Crane reported memory safety bugs present in Firefox 60, Firefox ESR 60, and Firefox ESR 52.8. Some of these bugs showed evidence of memory corruption and we presume that with enough effort that some of these could be exploited to run arbitrary code.
No attempt on x86_64-darwin (full log) The following builds were skipped because they don't evaluate on x86_64-darwin: thunderbird, thunderbird-bin Partial log (click to expand)
|
Success on aarch64-linux (full log) Attempted: thunderbird The following builds were skipped because they don't evaluate on aarch64-linux: thunderbird-bin Partial log (click to expand)
|
Timed out, unknown build status on x86_64-linux (full log) Attempted: thunderbird The following builds were skipped because they don't evaluate on x86_64-linux: thunderbird-bin Partial log (click to expand)
|
Motivation for this change
This is a port of the current state of thunderbird from the master
branch. We did miss a bunch of security fixes when thunderbird 60 was
released. This is an attempt to take a shortcut by simply copying over
the expression from the master branch.
Security related fixes in this release are:
CVE-2018-12359: Buffer overflow using computed size of canvas element
A buffer overflow can occur when rendering canvas content while
adjusting the height and width of the element dynamically,
causing data to be written outside of the currently computed
boundaries. This results in a potentially exploitable crash.
CVE-2018-12360: Use-after-free when using focus()
A use-after-free vulnerability can occur when deleting an input
element during a mutation event handler triggered by focusing that
element. This results in a potentially exploitable crash.
CVE-2018-12361: Integer overflow in SwizzleData
An integer overflow can occur in the SwizzleData code while
calculating buffer sizes. The overflowed value is used for subsequent
graphics computations when their inputs are not sanitized which
results in a potentially exploitable crash.
CVE-2018-12362: Integer overflow in SSSE3 scaler
An integer overflow can occur during graphics operations done by the
Supplemental Streaming SIMD Extensions 3 (SSSE3) scaler, resulting in
a potentially exploitable crash.
CVE-2018-5156: Media recorder segmentation fault when track type is changed during capture
A vulnerability can occur when capturing a media stream when the media
source type is changed as the capture is occuring. This can result in
stream data being cast to the wrong type causing a potentially
exploitable crash.
CVE-2018-12363: Use-after-free when appending DOM nodes
A use-after-free vulnerability can occur when script uses mutation
events to move DOM nodes between documents, resulting in the old
document that held the node being freed but the node still having a
pointer referencing it. This results in a potentially exploitable
crash.
CVE-2018-12364: CSRF attacks through 307 redirects and NPAPI plugins
NPAPI plugins, such as Adobe Flash, can send non-simple cross-origin
requests, bypassing CORS by making a same-origin POST that does a 307
redirect to the target site. This allows for a malicious site to
engage in cross-site request forgery (CSRF) attacks.
CVE-2018-12365: Compromised IPC child process can list local filenames
A compromised IPC child process can escape the content sandbox and
list the names of arbitrary files on the file system without user
consent or interaction. This could result in exposure of private local
files.
CVE-2018-12371: Integer overflow in Skia library during edge builder allocation
An integer overflow vulnerability in the Skia library when allocating
memory for edge builders on some systems with at least 16 GB of RAM.
This results in the use of uninitialized memory, resulting in a
potentially exploitable crash.
CVE-2018-12366: Invalid data handling during QCMS transformations
An invalid grid size during QCMS (color profile) transformations can
result in the out-of-bounds read interpreted as a float value. This
could leak private data into the output.
CVE-2018-12367: Timing attack mitigation of PerformanceNavigationTiming
In the previous mitigations for Spectre, the resolution or precision
of various methods was reduced to counteract the ability to measure
precise time intervals. In that work, PerformanceNavigationTiming was
not adjusted but it was found that it could be used as a precision
timer.
CVE-2018-5187: Memory safety bugs fixed in Firefox 61, Firefox ESR 60.1, and Thunderbird 60
Mozilla developers and community members Christian Holler, Sebastian
Hengst, Nils Ohlmeier, Jon Coppeard, Randell Jesup, Ted Campbell, Gary
Kwong, and Jean-Yves Avenard reported memory safety bugs present in
Firefox 60 and Firefox ESR 60. Some of these bugs showed evidence of
memory corruption and we presume that with enough effort that some of
these could be exploited to run arbitrary code.
CVE-2018-5188: Memory safety bugs fixed in Firefox 61, Firefox ESR 60.1, Firefox ESR 52.9, and Thunderbird 60
Mozilla developers and community members Alex Gaynor, Christoph Diehl,
Christian Holler, Jason Kratzer, David Major, Jon Coppeard, Nicolas B.
Pierron, Jason Kratzer, Marcia Knous, and Ronald Crane reported memory
safety bugs present in Firefox 60, Firefox ESR 60, and Firefox ESR
52.8. Some of these bugs showed evidence of memory corruption and we
presume that with enough effort that some of these could be exploited
to run arbitrary code.
/cc @taku0
Things done
sandbox
innix.conf
on non-NixOS)nix-shell -p nox --run "nox-review wip"
./result/bin/
)nix path-info -S
before and after)