Peter Ullrich

#328of 55,125
498.1Total CVSS
Vulnerabilities · 72
Low
10
Medium
22
High
39
Critical
1
PT-2026-67224
6.9
2026-08-01
Unknown · Ueberauth Guardian · CVE-2026-55734
**Name of the Vulnerable Software and Affected Versions** ueberauth guardian versions 2.0.0 through 2.4.0 **Description** An allocation of resources without limits or throttling in the `Guardian.Permissions` module allows a denial of service via BEAM atom-table exhaustion. The `Guardian.Permissions` mixin installs a public `encode permissions!/1` function that calls `String.to atom(to string(k))` for each key of a supplied map before validation. In the `do encode permissions!/2` function, the integer-value clause bypasses validation against the configured permission set, allowing keys with integer values to be interned as new atoms. Since atoms are not garbage collected and the BEAM atom table has a fixed size, an attacker who can influence a permission map passed to `encode permissions!/1` or `encode permissions into claims!/2` can exhaust the table, crashing the BEAM node and all running services. This issue is associated with the file `lib/guardian/permissions.ex` and the functions `encode permissions!/1`, `encode permissions into claims!/2`, and `do encode permissions!/2`. **Recommendations** Update ueberauth guardian to version 2.4.1 or later. As a temporary workaround, filter the permission map to ensure only keys belonging to the configured permission set are passed to `encode permissions!/1` or `encode permissions into claims!/2`, and avoid passing attacker-influenced permission maps into these functions.
PT-2026-67221
6.9
2026-08-01
Unknown · Ueberauth Guardian · CVE-2026-54894
**Name of the Vulnerable Software and Affected Versions** ueberauth guardian versions 0.1.0 through 2.4.0 **Description** An allocation of resources without limits or throttling allows a denial of service via unbounded atom creation from attacker-influenced binary input. The `Guardian.Plug.Keys` module derives connection and session namespace keys by passing arbitrary binaries to the `String.to atom/1` function. Specifically, the `base key/1` function in `lib/guardian/plug/keys.ex` converts binaries into atoms, and the helpers `claims key/1`, `resource key/1`, and `token key/1` create additional atoms. Similarly, `key from other/1` converts regex-captured binaries through `String.to atom/1`. High-level entry points, such as `Guardian.Plug.current token(conn, key: key)`, pass caller-supplied keys directly into these functions. Because `String.to atom/1` creates a new atom for every unseen binary and atoms are not garbage collected, the BEAM atom table (which has a default limit of approximately 1,048,576 entries) can be exhausted. If an application routes untrusted data, such as a tenant identifier or request header, into a Guardian key via the `key` parameter, an attacker can send a stream of varied input to consume the atom table and crash the BEAM node, affecting all applications running on it. **Recommendations** Update ueberauth guardian to version 2.4.1 or later. As a temporary workaround, do not derive Guardian keys from untrusted input; instead, use a fixed, hardcoded set of namespace keys or validate values against a bounded allowlist before passing them as the `key` option.
PT-2026-66757
2.1
2026-07-31
Pypi · Ymlr · CVE-2026-65636
**Name of the Vulnerable Software and Affected Versions** ufirstgroup ymlr versions 0.0.1 through 5.1.5 **Description** Improper neutralization of CRLF (Carriage Return Line Feed) sequences in the `Elixir.Ymlr` module allows attackers to inject arbitrary content into generated YAML documents via document comments. The functions `document!/2`, `document/2`, `documents!/2`, and `documents/2` interpolate caller-supplied comment strings behind a # prefix without validating or escaping line breaks. Since YAML comments are terminated by line breaks, a carriage return or line feed ends the comment context, causing subsequent text to be treated as part of the document body. This enables attackers to forge top-level mapping keys, override application-set values, or use markers to split output into multiple documents, which are then parsed as legitimate data by downstream consumers like configuration loaders and CI pipelines. The issue is located in the `lib/ymlr.ex` file and specifically affects the `document!/2` and `documents!/2` routines. **Recommendations** Update to version 5.1.6. As a temporary workaround, split untrusted comment strings on line breaks and pass the resulting list as the comment element of the `{comment, data}` tuple. Reject comment strings containing carriage return or line feed characters. Avoid placing untrusted text in comments and instead place it in the encoded data where the encoder applies quoting.
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-53680
2.3
2026-06-29
Mdex · Mdex · CVE-2026-53427
**Name of the Vulnerable Software and Affected Versions** mdex versions 0.11.3 through 0.12.2 mdex native versions 0.1.0 through 0.2.2 **Description** Improper neutralization of input during web page generation allows stored or reflected cross-site scripting via attacker-controlled Markdown. When syntax highlighting and full info-string forwarding (`render: [full info string: true]`) are enabled, the Lumis adapter copies the value of a code fence's `highlight lines class` info-string attribute unescaped into the class attribute of every rendered line. The `comrak nif::lumis adapter::LumisAdapter::parse custom attributes()` function shlex-parses the info string and stores key-value pairs verbatim. Subsequently, `highlight lines config` pulls `highlight lines class` into the per-line class value, and `write highlighted()` interpolates that value directly into the class attribute of the per-line `<div>`. A single-quoted shell token can preserve an inner double quote, allowing an attacker to terminate the class attribute and inject arbitrary HTML and JavaScript. This can lead to session theft and account takeover without requiring authentication or special privileges. **Recommendations** Update mdex to version 0.12.3 or later. Update mdex native to version 0.2.3 or later. As a temporary workaround, do not enable full info-string forwarding (`render: [full info string: true]`) when rendering untrusted Markdown. Restrict `highlight lines class` values to a safe character set (e.g., `[A-Za-z0-9 -]`) before rendering.