d3-x3d@2.0.7
Vulnerabilities |
42 via 46 paths |
---|---|
Dependencies |
406 |
Source |
npm |
Find, fix and prevent vulnerabilities in your code.
high severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Heap Overflow. A Heap buffer overflow exists in the media component of Google Chrome, which also affects chromium.
Remediation
Upgrade electron
to version 6.1.10, 7.2.2, 8.2.1 or higher.
References
high severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Heap-based Buffer Overflow in Freetype.
Remediation
Upgrade electron
to version 8.5.3, 9.3.3, 10.1.5 or higher.
References
high severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Heap-based Buffer Overflow. A heap buffer overflow flaw was found in the UI component of the Chromium browser.
Remediation
Upgrade electron
to version 9.4.0, 10.2.0 or higher.
References
high severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Improper Access Control. An insufficient policy enforcement flaw was found in the networking component of chromium.
Remediation
Upgrade electron
to version 9.4.0, 10.1.7 or higher.
References
high severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Improper Access Control. It has an inappropriate implementation in V8.
Remediation
Upgrade electron
to version 6.1.10, 7.2.2, 8.2.1 or higher.
References
high severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Improper Input Validation. An insufficient data validation flaw was found in the WASM component of the Chromium browser.
Remediation
Upgrade electron
to version 9.4.0, 10.1.7 or higher.
References
high severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Improper Validation. The value of a node was accessed without prior HasValue
check. With WebAssembly this node is not guaranteed to be a value.
Remediation
Upgrade electron
to version 10.1.6 or higher.
References
high severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Insufficient Validation in V8.
Remediation
Upgrade electron
to version 9.4.0, 10.2.0 or higher.
References
high severity
new
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Insufficient Validation via an unknown issue in chromium
.
Remediation
Upgrade electron
to version 9.4.2, 10.3.1, 11.2.2 or higher.
References
high severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Out-of-bounds Read. An unknown vunerability exists in Chrome which affects electron
.
Remediation
Upgrade electron
to version 9.4.1, 10.3.2 or higher.
References
high severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Out-of-bounds Read. The input to sctp_load_addresses_from_init
is verified by calling sctp_arethere_unrecognized_parameters
, however there is a difference in how these functions handle parameter bounds. The function sctp_arethere_unrecognized_parameters
does not process a parameter that is partially outside of the limit of the chunk, meanwhile, sctp_load_addresses_from_init
will continue processing until a parameter that is entirely outside of the chunk occurs.
This means that the last parameter of a chunk is not always verified, which can lead to parameters with very short plen
values being processed by sctp_load_addresses_from_init
. This can lead to out-of-bounds reads whenever the plen
is subtracted from the header len
.
Remediation
Upgrade electron
to version 6.1.10, 7.2.2, 8.2.0 or higher.
References
high severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Privilege Escalation. This is a context isolation bypass, meaning that code running in the main world context in the renderer can reach into the isolated Electron context and perform privileged actions.
##Note:
Only apps using contextIsolation
are affected.
Remediation
Upgrade electron
to version 7.2.4, 8.2.4 or higher.
References
high severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Privilege Escalation. This is a context isolation bypass, meaning that code running in the main world context in the renderer can reach into the isolated Electron context and perform privileged actions.
##Note:
Only apps using both contextIsolation
and contextBridge
are affected.
Remediation
Upgrade electron
to version 7.2.4, 8.2.4 or higher.
References
high severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Privilege Escalation. This is a context isolation bypass, meaning that code running in the main world context in the renderer can reach into the isolated Electron context and perform privileged actions.
##Note:
Only apps using contextIsolation
are affected.
Remediation
Upgrade electron
to version 6.1.11, 7.2.4, 8.2.4 or higher.
References
high severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Site Isolation Bypass. parent_execution_origin_
is provided from parent's RenderFrameHostImpl::last_committed_origin_
that is set during navigation commit. Worker creation IPC from the renderer to browser could race with navigation commit, and could see the wrong last committed origin.
Remediation
Upgrade electron
to version 7.2.2, 8.2.1 or higher.
References
high severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Type Confusion in V8.
Remediation
Upgrade electron
to version 7.3.1 or higher.
References
high severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Use After Free via the site isolation.
Remediation
Upgrade electron
to version 8.5.4, 9.3.5, 10.1.6 or higher.
References
high severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Use After Free. A use after free flaw was found in the PPAPI component of the Chromium browser.
Remediation
Upgrade electron
to version 9.4.0, 10.2.0 or higher.
References
high severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Use After Free. Since JavaScript may detach the underlying buffers, they need to be checked to ensure they're still valid before using them for decoding.
Remediation
Upgrade electron
to version 10.2.0 or higher.
References
high severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Use After Free. An unknown vunerability exists in Chrome.
Remediation
Upgrade electron
to version 9.4.1, 10.3.2 or higher.
References
high severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Use After Free in Media.
Remediation
Upgrade electron
to version 11.2.1 or higher.
References
high severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Use After Free. It hands sub-queries with both a correlated WHERE
clause and a HAVING 0
clause where the parent query is itself an aggregate.
Remediation
Upgrade electron
to version 11.2.1 or higher.
References
high severity
new
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Use After Free via handling of cookies.
Remediation
Upgrade electron
to version 9.4.2, 10.3.1, 11.2.2 or higher.
References
high severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Use After Free. Multiple user after free vulnerabilities exists in the WebAudio component of chromium.
Remediation
Upgrade electron
to version 6.1.10, 7.2.2, 8.2.1 or higher.
References
high severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Use After Free. It allowed a remote attacker to potentially exploit heap corruption via a crafted HTML page.
Remediation
Upgrade electron
to version 6.1.10, 7.2.2, 8.2.1 or higher.
References
high severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Use After Free via the audio component. It allowed a remote attacker to potentially exploit heap corruption via a crafted HTML page.
Remediation
Upgrade electron
to version 6.1.10, 7.2.2, 8.2.1 or higher.
References
high severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Use After Free via the audio component.
Remediation
Upgrade electron
to version 8.2.1, 7.2.2 or higher.
References
high severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Use After Free. FileChooserImpl
can outlive ListenerProxy
leading to a crash.
Remediation
Upgrade electron
to version 6.1.10, 7.2.2, 8.2.0 or higher.
References
high severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Use After Free. Initialize()
could potentially run twice in MojoVideoEncodeAcceleratorService
.
Remediation
Upgrade electron
to version 6.1.10, 7.2.2, 8.2.1 or higher.
References
high severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Use After Free. It allows a remote attacker to potentially exploit heap corruption via a crafted HTML page.
Remediation
Upgrade electron
to version 6.1.10, 7.2.2, 8.2.0 or higher.
References
high severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Use After Free. An AudioContext
is considered to have activity if it's not closed. Previously, suspended contexts were considered has having no activity, but that's not quite true since the context can be resumed at any time after. This would allow contexts to be collected prematurely even though the context was resumed. This causes the audio thread to access objects that are possibly deleted.
Remediation
Upgrade electron
to version 6.1.10, 7.2.2, 8.0.0-beta.6 or higher.
References
high severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Use After Free in WebRTC.
Remediation
Upgrade electron
to version 8.3.1 or higher.
References
medium severity
- Vulnerable module: concat-stream
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › xhr-write-stream@0.1.2 › concat-stream@0.1.1
Overview
concat-stream
is writable stream that concatenates strings or binary data and calls a callback with the result.
Affected versions of the package are vulnerable to Uninitialized Memory Exposure.
A possible memory disclosure vulnerability exists when a value of type number
is provided to the stringConcat()
method and results in concatenation of uninitialized memory to the stream collection.
This is a result of unobstructed use of the Buffer
constructor, whose insecure default constructor increases the odds of memory leakage.
Details
Constructing a Buffer
class with integer N
creates a Buffer
of length N
with raw (not "zero-ed") memory.
In the following example, the first call would allocate 100 bytes of memory, while the second example will allocate the memory needed for the string "100":
// uninitialized Buffer of length 100
x = new Buffer(100);
// initialized Buffer with value of '100'
x = new Buffer('100');
concat-stream
's stringConcat
function uses the default Buffer
constructor as-is, making it easy to append uninitialized memory to an existing list. If the value of the buffer list is exposed to users, it may expose raw server side memory, potentially holding secrets, private data and code. This is a similar vulnerability to the infamous Heartbleed
flaw in OpenSSL.
You can read more about the insecure Buffer
behavior on our blog.
Similar vulnerabilities were discovered in request, mongoose, ws and sequelize.
Remediation
Upgrade concat-stream
to version 1.5.2 or higher.
Note This is vulnerable only for Node <=4
References
medium severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Arbitrary File Read. It allows arbitrary local file read by defining unsafe window options on a child window opened via window.open
.
Remediation
Upgrade electron
to version 7.2.4, 8.2.4 or higher.
References
medium severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Buffer Underflow. Since there may be multiple instance of DWriteFontProxyImpl
instantiated for multiple RenderProcessHosts
, and DWriteFontProxyImpl::GetUniqueNameLookupTable
may access DWriteFontLookupTableBuilder::QueueShareMemoryRegionWhenReady
from separate threads, there may be race conditions around the pending_callbacks_
member of DWriteFontLookupTableBuilder
.
Remediation
Upgrade electron
to version 6.1.10, 7.2.2, 8.2.0 or higher.
References
medium severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Improper Input Validation via the File System API.
Remediation
Upgrade electron
to version 11.2.1 or higher.
References
medium severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Information Exposure. When a BigInt
is right-shifted the backing store is not properly cleared, allowing uninitialized memory to be read.
Remediation
Upgrade electron
to version 9.4.1, 10.3.2 or higher.
References
medium severity
new
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Information Exposure. IPC messages sent from the main process to a subframe in the renderer process, through webContents.sendToFrame
, event.reply
or when using the remote
module, can in some cases be delivered to the wrong frame.
Remediation
Upgrade electron
to version 9.4.0, 10.2.0, 11.1.0, 12.0.0-beta.9 or higher.
References
medium severity
new
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Use After Free via the Blink component in chromium
.
Remediation
Upgrade electron
to version 9.4.2, 10.3.1, 11.2.2 or higher.
References
medium severity
- Vulnerable module: electron
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › electron-stream@7.1.0 › electron@5.0.13
Overview
electron is a framework which lets you write cross-platform desktop applications using JavaScript, HTML and CSS.
Affected versions of this package are vulnerable to Use After Free. The rendering_orphan_handlers_
and deletable_orphan_handlers_
handlers can hold references to the context after BaseAudioContext
is destroyed.
Remediation
Upgrade electron
to version 6.1.10, 7.2.2, 8.2.1 or higher.
References
medium severity
- Vulnerable module: minimist
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › browser-launcher@1.0.2 › minimist@0.0.5
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › optimist@0.6.1 › minimist@0.0.10
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › optimist@0.6.1 › minimist@0.0.10
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › html-inject-script@1.1.0 › trumpet@1.7.2 › html-select@2.3.24 › minimist@0.0.10
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › tape-run@6.0.1 › browser-run@6.0.0 › html-inject-script@1.1.0 › trumpet@1.7.2 › html-tokenize@1.2.5 › minimist@0.0.10
Overview
minimist is a parse argument options module.
Affected versions of this package are vulnerable to Prototype Pollution. The library could be tricked into adding or modifying properties of Object.prototype
using a constructor
or __proto__
payload.
PoC by Snyk
require('minimist')('--__proto__.injected0 value0'.split(' '));
console.log(({}).injected0 === 'value0'); // true
require('minimist')('--constructor.prototype.injected1 value1'.split(' '));
console.log(({}).injected1 === 'value1'); // true
Details
Prototype Pollution is a vulnerability affecting JavaScript. Prototype Pollution refers to the ability to inject properties into existing JavaScript language construct prototypes, such as objects. JavaScript allows all Object attributes to be altered, including their magical attributes such as _proto_
, constructor
and prototype
. An attacker manipulates these attributes to overwrite, or pollute, a JavaScript application object prototype of the base object by injecting other values. Properties on the Object.prototype
are then inherited by all the JavaScript objects through the prototype chain. When that happens, this leads to either denial of service by triggering JavaScript exceptions, or it tampers with the application source code to force the code path that the attacker injects, thereby leading to remote code execution.
There are two main ways in which the pollution of prototypes occurs:
- Unsafe
Object
recursive merge - Property definition by path
Unsafe Object recursive merge
The logic of a vulnerable recursive merge function follows the following high-level model:
merge (target, source)
foreach property of source
if property exists and is an object on both the target and the source
merge(target[property], source[property])
else
target[property] = source[property]
When the source object contains a property named _proto_
defined with Object.defineProperty()
, the condition that checks if the property exists and is an object on both the target and the source passes and the merge recurses with the target, being the prototype of Object
and the source of Object
as defined by the attacker. Properties are then copied on the Object
prototype.
Clone operations are a special sub-class of unsafe recursive merges, which occur when a recursive merge is conducted on an empty object: merge({},source)
.
lodash
and Hoek
are examples of libraries susceptible to recursive merge attacks.
Property definition by path
There are a few JavaScript libraries that use an API to define property values on an object based on a given path. The function that is generally affected contains this signature: theFunction(object, path, value)
If the attacker can control the value of “path”, they can set this value to _proto_.myValue
. myValue
is then assigned to the prototype of the class of the object.
Types of attacks
There are a few methods by which Prototype Pollution can be manipulated:
Type | Origin | Short description |
---|---|---|
Denial of service (DoS) | Client | This is the most likely attack. DoS occurs when Object holds generic functions that are implicitly called for various operations (for example, toString and valueOf ). The attacker pollutes Object.prototype.someattr and alters its state to an unexpected value such as Int or Object . In this case, the code fails and is likely to cause a denial of service. For example: if an attacker pollutes Object.prototype.toString by defining it as an integer, if the codebase at any point was reliant on someobject.toString() it would fail. |
Remote Code Execution | Client | Remote code execution is generally only possible in cases where the codebase evaluates a specific attribute of an object, and then executes that evaluation. For example: eval(someobject.someattr) . In this case, if the attacker pollutes Object.prototype.someattr they are likely to be able to leverage this in order to execute code. |
Property Injection | Client | The attacker pollutes properties that the codebase relies on for their informative value, including security properties such as cookies or tokens. For example: if a codebase checks privileges for someuser.isAdmin , then when the attacker pollutes Object.prototype.isAdmin and sets it to equal true , they can then achieve admin privileges. |
Affected environments
The following environments are susceptible to a Prototype Pollution attack:
- Application server
- Web server
How to prevent
- Freeze the prototype— use
Object.freeze (Object.prototype)
. - Require schema validation of JSON input.
- Avoid using unsafe recursive merge functions.
- Consider using objects without prototypes (for example,
Object.create(null)
), breaking the prototype chain and preventing pollution. - As a best practice use
Map
instead ofObject
.
For more information on this vulnerability type:
Arteau, Oliver. “JavaScript prototype pollution attack in NodeJS application.” GitHub, 26 May 2018
Remediation
Upgrade minimist
to version 0.2.1, 1.2.3 or higher.
References
low severity
new
- Vulnerable module: jsdom
- Introduced through: d3-interpolate-curve@1.0.2
Detailed paths
-
Introduced through: d3-x3d@2.0.7 › d3-interpolate-curve@1.0.2 › jsdom@15.2.1
Overview
jsdom is an A JavaScript implementation of many web standards
Affected versions of this package are vulnerable to Improper Access Control. JSDom
improperly allows the loading of local resources, which allows for local files to be manipulated by a malicious web page when script execution is enabled.
Remediation
There is no fixed version for jsdom
.