José Valim

#1617of 56,330
146.9Total CVSS
Vulnerabilities · 22
Low
3
Medium
9
High
9
Critical
1
PT-2026-84260
6.3
2026-09-01
Unknown · Erlang/Otp · CVE-2026-70405
**Name of the Vulnerable Software and Affected Versions** Erlang/OTP versions 17.0 through 27.3.4.16 Erlang/OTP versions 28.0 through 28.5.0.5 Erlang/OTP versions 29.0 through 29.0.5 snmp versions 4.25.1 through 5.18.2.0 snmp versions 5.19 through 5.20.2.1 snmp versions 5.20.3 through 5.20.4 **Description** Improper validation of the specified quantity in input within the snmp module allows a remote attacker to degrade availability. An attacker can send an SNMP message containing a BER INTEGER with an arbitrarily large length field. The function `snmp pdus:dec integer notag/1` defaults its size limit to infinity, and `do dec integer notag/2` accumulates the value across every declared byte using a recursive shift and bitwise or. This causes the workload to grow superlinearly as each operation acts on a progressively larger bignum. While a size-limited variant `dec integer notag/2` exists, it is only used by `dec snmp version/1`. Other fields, including the request identifier, error status, index, generic and specific trap fields, engine boots, time, and varbind values decoded by `dec value/1`, use the unbounded form. The decoding occurs before the PDU is processed, meaning no valid request is required to trigger the issue. **Recommendations** Update Erlang/OTP to version 27.3.4.17 or later. Update Erlang/OTP to version 28.5.0.6 or later. Update Erlang/OTP to version 29.0.6 or later. Update snmp to version 5.18.2.1 or later. Update snmp to version 5.20.2.2 or later. Update snmp to version 5.20.5 or later.
PT-2026-83142
5.9
2026-08-28
Elixir · Elixir · CVE-2026-75758
**Name of the Vulnerable Software and Affected Versions** Elixir versions 1.15.0-rc.0 through 1.18.4 Elixir versions 1.19.0-rc.0 through 1.19.5 Elixir versions 1.20.0-rc.0 through 1.20.3 **Description** An uncontrolled recursion issue in the standard library allows an attacker who controls a list passed to the `inspect/1`, `List.to string/1`, or `List.to charlist/1` functions to exhaust the memory of a BEAM node. The problem occurs when a list's printable prefix exceeds the `:printable limit` (default 4096 elements) but contains a subsequent element that is not a valid code point, such as an atom or an out-of-range integer. This causes the list to be misclassified as a charlist, leading to an `ArgumentError`. In `List.to string/1` and `List.to charlist/1`, the rescue clause attempts to build an error message by calling `inspect(list)`, which re-triggers the same error path. Because this recursion is not in tail position, the process stack grows until the node runs out of memory or the process is killed by `max heap size`. **Recommendations** Update Elixir to version 1.18.5 or later. Update Elixir to version 1.19.6 or later. Update Elixir to version 1.20.4 or later. As a temporary workaround, install a global inspect function via the application start callback using `Inspect.Opts.default inspect fun/1` with `fn term, opts -> Inspect.inspect(term, %{opts | charlists: :as lists}) end` to prevent the charlist branch from being entered.
PT-2026-68317
8.8
2026-08-05
Livebook · Livebook · CVE-2026-66298
**Name of the Vulnerable Software and Affected Versions** livebook versions 0.5.0 through 0.18.6 livebook versions 0.19.0 through 0.19.8 **Description** An origin validation error allows untrusted notebook output JavaScript to trigger session-wide keyboard shortcuts. The JS-view feature renders JavaScript in a sandboxed, cross-origin iframe. However, the iframe shell in `iframe/priv/static/iframe/v5.html` forwards `keydown` events to the parent page without verifying `Event.isTrusted`. Consequently, events synthesized via `window.dispatchEvent` are treated as genuine keystrokes. The relay in `assets/js/hooks/js view.js` re-dispatches these events, which are then processed by the global shortcut handler in `assets/js/hooks/session.js` during the capture phase. This allows sandboxed scripts to execute shortcuts in `LivebookWeb.SessionLive`, such as forcing the evaluation of all cells in the notebook or restarting the runtime, which discards in-memory state. A third shortcut can delete the focused cell. The most critical impact is the forced full evaluation, which executes the notebook's Elixir code without user consent. This can occur when a user opens a notebook from a third party or published documentation, and the effect is mirrored to all connected collaborators. **Recommendations** Update livebook versions 0.5.0 through 0.18.6 to version 0.18.7. Update livebook versions 0.19.0 through 0.19.8 to version 0.19.9.
PT-2026-68318
8.1
2026-08-05
Livebook · Livebook · CVE-2026-66881
**Name of the Vulnerable Software and Affected Versions** livebook versions 0.11.0 through 0.18.6 livebook versions 0.19.0 through 0.19.8 **Description** A Relative Path Traversal issue allows an attacker to write a file with controlled content to an arbitrary path on the system. This occurs because the import path in `Livebook.LiveMarkdown.Import.file entry metadata to attrs/1` takes the name from the notebook source verbatim without validation. For URL-type file entries, the function `Livebook.Session.file entry cache file/2` resolves the name beneath the session temporary directory without verifying if the result remains within that directory. Additionally, `Livebook.FileSystem.Utils.resolve unix like path/2` collapses parent-directory segments but only clamps at the filesystem root. Consequently, when content is requested and no cache exists, the system writes the response body to the resolved path, creating parent directories as needed. This allows an attacker to control both the destination and content of the written file anywhere the process has write permissions. A similar lack of containment check exists in `Livebook.Session.to attachment file entry/2`. A victim triggers this by opening an attacker-supplied notebook and causing the entry to be fetched within their authenticated session. **Recommendations** Update livebook versions 0.11.0 through 0.18.6 to version 0.18.7. Update livebook versions 0.19.0 through 0.19.8 to version 0.19.9.
PT-2026-57161
2.1
2026-07-10
Unknown · Elixir Plug · CVE-2026-56813
**Name of the Vulnerable Software and Affected Versions** elixir-plug versions 0.1.0 through 1.16.5 elixir-plug versions 1.17.0 through 1.17.3 elixir-plug versions 1.18.0 through 1.18.4 elixir-plug versions 1.19.0 through 1.19.4 elixir-plug versions 1.20.0 through 1.20.2 **Description** Improper neutralization of parameter delimiters allows an attacker to inject or override HTTP cookie attributes. The `encode/2` function in `Plug.Conn.Cookies` constructs the Set-Cookie response header by interpolating the cookie value and its path, domain, `same site`, and extra attributes without neutralizing the ';' delimiter. If an application places attacker-controlled data into a cookie value or attribute, such as through the `put resp cookie/4` function, an attacker can inject a ';' to append or override attributes like Domain and Path scope, or remove the Secure and HttpOnly flags. This can lead to cookie tossing and session fixation. While carriage return, line feed, and null bytes are rejected, preventing HTTP response splitting, attribute injection via ';' remains possible. **Recommendations** Update to version 1.16.6 or later. Update to version 1.17.4 or later. Update to version 1.18.5 or later. Update to version 1.19.5 or later. Update to version 1.20.3 or later. As a temporary workaround, validate or reject the ';' delimiter in any untrusted data before passing it as a cookie value or attribute to the `put resp cookie/4` or `encode/2` functions.
PT-2026-56202
7.5
2026-07-07
Phoenix · Phoenix · CVE-2026-56812
**Name of the Vulnerable Software and Affected Versions** phoenix versions 1.2.0-rc.0 through 1.5.14 phoenix versions 1.6.0-rc.0 through 1.6.16 phoenix versions 1.7.0-rc.0 through 1.7.23 phoenix versions 1.8.0-rc.0 through 1.8.8 **Description** The Presence JavaScript client in phoenix contains an improper check for unusual conditions that allows an attacker with ordinary channel access to cause a persistent client-side denial of service for all viewers of a presence channel topic. The issue resides in the `assets/js/phoenix/presence.js` file within the `Presence.syncState()` and `Presence.syncDiff()` routines. The client uses a bare truthiness test (`state[key]`) instead of an own-property check to verify if a presence exists. Since presence keys are attacker-controlled, a user can provide a key that matches an `Object.prototype` member name (such as ` proto `, `constructor`, `toString`, or `hasOwnProperty`). This causes the lookup to return the built-in `Object.prototype` instead of `undefined`, leading the code to attempt to read `.metas.map(...)` from the prototype, which throws an uncaught `TypeError`. This exception prevents the local state from updating and stops `onSync()` from firing. Because the server continues to push the malicious key, the synchronization remains broken for all viewers of the topic until the attacker leaves. This is a read-time confusion of the prototype object and not prototype pollution. **Recommendations** Update phoenix to version 1.5.15 or later. Update phoenix to version 1.6.17 or later. Update phoenix to version 1.7.24 or later. Update phoenix to version 1.8.9 or later.
PT-2026-51499
8.7
2026-06-23
Plug · Plug · CVE-2026-54892
**Name of the Vulnerable Software and Affected Versions** plug versions 1.15.0 through 1.15.4 plug version 1.16.4 plug version 1.17.2 plug version 1.18.3 plug version 1.19.3 **Description** Inefficient algorithmic complexity in the nested-parameter decoder allows an unauthenticated remote attacker to cause a denial of service. The functions `Plug.Conn.Query.decode/4` and `Plug.Conn.Query.decode each/2` parse query strings and application/x-www-form-urlencoded request bodies. When a key contains numerous bracketed segments, the decoder performs a map operation for each nesting level using an ever-growing binary prefix of the key, resulting in a quadratic decode cost. With a default body limit of 1,000,000 bytes, a single request can contain approximately 333,000 nesting levels, saturating a BEAM scheduler for several minutes. A small number of concurrent requests can saturate all schedulers, rendering the server unresponsive. This issue involves the file lib/plug/conn/query.ex and the routines `Plug.Conn.Query.decode/4`, `Plug.Conn.Query.decode each/2`, `Plug.Conn.Query.split keys/6`, `Plug.Conn.Query.insert keys/3`, and `Plug.Conn.Query.finalize pointer/2`. **Recommendations** Update plug versions 1.15.0 through 1.15.4 to version 1.15.5. Update plug version 1.16.4 to a non-vulnerable version. Update plug version 1.17.2 to a non-vulnerable version. Update plug version 1.18.3 to a non-vulnerable version. Update plug version 1.19.3 to a non-vulnerable version.