{"id":"CVE-2026-54892","aliases":["EEF-CVE-2026-54892","EUVD-2026-38446","GHSA-j43x-5hjq-rgxf","MGASA-2026-0457"],"status":"published","title":"Plug: quadratic-time decoding of nested query/body parameters enables denial of service","description":"Inefficient algorithmic complexity in Plug's nested-parameter decoder allows an unauthenticated remote attacker to cause denial of service. 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 many bracketed segments such as a[a][a][a]=1, the decoder walks the brackets and, for each of the N levels, performs a map operation keyed on an ever-growing binary prefix of the key, hashing the full byte range at each step. The total decode cost is therefore quadratic in the number of nesting levels.\n\nWith the default Plug.Parsers.URLENCODED body limit of 1,000,000 bytes, a single request can carry roughly 333,000 nesting levels and saturate a BEAM scheduler for minutes. A small number of concurrent requests can saturate all schedulers and render a Plug-based server unresponsive. No authentication or knowledge of application routes is required.\n\nThis vulnerability is associated with program files lib/plug/conn/query.ex and program 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.\n\nThis issue affects plug from 1.15.0 before 1.15.5, 1.16.4, 1.17.2, 1.18.3, and 1.19.3.","severity":{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-09","score":0.00894,"percentile":0.5974,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-407"],"published":"2026-06-23T12:31:12Z","modified":"2026-11-05T21:32:25Z","fixes":[{"ecosystem":"Hex","package":"plug","fixed_in":["1.15.5","1.16.4","1.17.2","1.18.3","1.19.3"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"Hex","package":"plug","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.15.0"},{"fixed":"1.15.5"}]}]},{"source":"ghsa","ecosystem":"Hex","package":"plug","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.16.0"},{"fixed":"1.16.4"}]}]},{"source":"ghsa","ecosystem":"Hex","package":"plug","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.17.0"},{"fixed":"1.17.2"}]}]},{"source":"ghsa","ecosystem":"Hex","package":"plug","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.18.0"},{"fixed":"1.18.3"}]}]},{"source":"ghsa","ecosystem":"Hex","package":"plug","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.19.0"},{"fixed":"1.19.3"}]}]},{"source":"osv","ecosystem":"Hex","package":"plug","ranges":[{"type":"SEMVER","events":[{"introduced":"1.15.0"},{"fixed":"1.15.5"}]},{"type":"SEMVER","events":[{"introduced":"1.16.0"},{"fixed":"1.16.4"}]},{"type":"SEMVER","events":[{"introduced":"1.17.0"},{"fixed":"1.17.2"}]},{"type":"SEMVER","events":[{"introduced":"1.18.0"},{"fixed":"1.18.3"}]},{"type":"SEMVER","events":[{"introduced":"1.19.0"},{"fixed":"1.19.3"}]}],"versions":["1.15.0","1.15.1","1.15.2","1.15.3","1.15.4","1.16.0","1.16.1","1.16.2","1.16.3","1.17.0","1.17.1","1.18.0","1.18.1","1.18.2","1.19.0","1.19.1","1.19.2"]},{"source":"osv","ecosystem":"Hex","package":"plug","ranges":[{"type":"SEMVER","events":[{"introduced":"1.15.0"},{"fixed":"1.15.5"}]}],"versions":["1.15.0","1.15.1","1.15.2","1.15.3","1.15.4"]},{"source":"osv","ecosystem":"Hex","package":"plug","ranges":[{"type":"SEMVER","events":[{"introduced":"1.16.0"},{"fixed":"1.16.4"}]}],"versions":["1.16.0","1.16.1","1.16.2","1.16.3"]},{"source":"osv","ecosystem":"Hex","package":"plug","ranges":[{"type":"SEMVER","events":[{"introduced":"1.17.0"},{"fixed":"1.17.2"}]}],"versions":["1.17.0","1.17.1"]},{"source":"osv","ecosystem":"Hex","package":"plug","ranges":[{"type":"SEMVER","events":[{"introduced":"1.18.0"},{"fixed":"1.18.3"}]}],"versions":["1.18.0","1.18.1","1.18.2"]},{"source":"osv","ecosystem":"Hex","package":"plug","ranges":[{"type":"SEMVER","events":[{"introduced":"1.19.0"},{"fixed":"1.19.3"}]}],"versions":["1.19.0","1.19.1","1.19.2"]},{"source":"osv","ecosystem":"Mageia:10","package":"erlang","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"27.3.4.17-1.mga10"}]}],"bundled":6}],"products":[{"vendor":"elixir-plug","product":"plug"}],"references":[{"url":"https://github.com/elixir-plug/plug/security/advisories/GHSA-j43x-5hjq-rgxf","tags":["vendor-advisory","related","exploit","advisory","web"]},{"url":"https://cna.erlef.org/cves/CVE-2026-54892.html","tags":["related","web"]},{"url":"https://osv.dev/vulnerability/EEF-CVE-2026-54892","tags":["related","web"]},{"url":"https://github.com/elixir-plug/plug/commit/c317d08fdcf96e17931f7419275b2b8c4bf3e951","tags":["patch","fix","web"]},{"url":"https://github.com/elixir-plug/plug/commit/9c5d37c440eaae92869eed7c014c47266744fadb","tags":["patch","fix","web"]},{"url":"https://github.com/elixir-plug/plug/commit/d737eb236f17e31a36290e39f9ef3cd86a1343bd","tags":["patch","fix","web"]},{"url":"https://github.com/elixir-plug/plug/commit/d4e5568392a4b29e545b91e12e87d6098f976145","tags":["patch","fix","web"]},{"url":"https://github.com/elixir-plug/plug/commit/a61124aa625d819a218fb07f90afbac8aa85eb0e","tags":["patch","fix","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-54892","tags":["advisory"]},{"url":"https://github.com/elixir-plug/plug/blob/v1.19.3/CHANGELOG.md#v1193-2026-06-23","tags":["web"]},{"url":"https://github.com/advisories/GHSA-j43x-5hjq-rgxf"},{"url":"https://github.com","tags":["web"]},{"url":"https://repo.hex.pm","tags":["web"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/54xxx/CVE-2026-54892.json","tags":["advisory"]},{"url":"https://github.com/elixir-plug/plug","tags":["package"]},{"url":"https://hex.pm/packages/plug","tags":["package"]},{"url":"https://advisories.mageia.org/MGASA-2026-0457.html","tags":["advisory"]},{"url":"https://bugs.mageia.org/show_bug.cgi?id=35971","tags":["report"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/Z643GQLCV3X4YNAD2P52IFBKQQU7E7A5/","tags":["web"]},{"url":"https://github.com/erlang/otp/security/advisories/GHSA-7wp4-pc27-2vj9","tags":["advisory"]},{"url":"https://cna.erlef.org/cves/CVE-2026-54886.html","tags":["advisory"]},{"url":"https://osv.dev/vulnerability/EEF-CVE-2026-54886","tags":["advisory"]},{"url":"https://github.com/erlang/otp/security/advisories/GHSA-gf6r-99xw-6qg6","tags":["advisory"]},{"url":"https://cna.erlef.org/cves/CVE-2026-54891.html","tags":["advisory"]},{"url":"https://osv.dev/vulnerability/EEF-CVE-2026-54891","tags":["advisory"]},{"url":"https://osv.dev/vulnerability/EEF-CVE-2026-55952","tags":["advisory"]},{"url":"https://cna.erlef.org/cves/CVE-2026-55952.html","tags":["advisory"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/45JCTFOGPTE2S5BCCCJH6KKGFNKZIDVS/","tags":["web"]},{"url":"https://github.com/erlang/otp/security/advisories/GHSA-c6cw-pr89-w882","tags":["advisory"]},{"url":"https://cna.erlef.org/cves/CVE-2026-55953.html","tags":["advisory"]},{"url":"https://osv.dev/vulnerability/EEF-CVE-2026-55953","tags":["advisory"]},{"url":"https://github.com/erlang/otp/releases/tag/OTP-27.3.4.16","tags":["web"]},{"url":"https://github.com/erlang/otp/releases/tag/OTP-27.3.4.17","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2026-54892","title":"Plug: quadratic-time decoding of nested query/body parameters enables denial of service","description":"Inefficient algorithmic complexity in Plug's nested-parameter decoder allows an unauthenticated remote attacker to cause denial of service. 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 many bracketed segments such as a[a][a][a]=1, the decoder walks the brackets and, for each of the N levels, performs a map operation keyed on an ever-growing binary prefix of the key, hashing the full byte range at each step. The total decode cost is therefore quadratic in the number of nesting levels.\n\nWith the default Plug.Parsers.URLENCODED body limit of 1,000,000 bytes, a single request can carry roughly 333,000 nesting levels and saturate a BEAM scheduler for minutes. A small number of concurrent requests can saturate all schedulers and render a Plug-based server unresponsive. No authentication or knowledge of application routes is required.\n\nThis vulnerability is associated with program files lib/plug/conn/query.ex and program 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.\n\nThis issue affects plug from 1.15.0 before 1.15.5, 1.16.4, 1.17.2, 1.18.3, and 1.19.3.","status":"published","published":"2026-06-23T12:31:12.629Z","modified":"2026-06-23T18:21:14.232Z","cvss":[{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","level":"high","assessor":"cna"}],"cwes":["CWE-407"],"updated_at":"2026-11-02T13:38:09.774038Z"}],"euvd":[{"id":"EUVD-2026-38446","description":"Inefficient algorithmic complexity in Plug's nested-parameter decoder allows an unauthenticated remote attacker to cause denial of service. 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 many bracketed segments such as a[a][a][a]=1, the decoder walks the brackets and, for each of the N levels, performs a map operation keyed on an ever-growing binary prefix of the key, hashing the full byte range at each step. The total decode cost is therefore quadratic in the number of nesting levels.\n\nWith the default Plug.Parsers.URLENCODED body limit of 1,000,000 bytes, a single request can carry roughly 333,000 nesting levels and saturate a BEAM scheduler for minutes. A small number of concurrent requests can saturate all schedulers and render a Plug-based server unresponsive. No authentication or knowledge of application routes is required.\n\nThis vulnerability is associated with program files lib/plug/conn/query.ex and program 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.\n\nThis issue affects plug from 1.15.0 before 1.15.5, 1.16.4, 1.17.2, 1.18.3, and 1.19.3.","status":"published","published":"2026-06-23T12:31:12Z","modified":"2026-06-23T18:21:14Z","cvss":[{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","level":"high"}],"updated_at":"2026-11-02T18:20:31.51905Z"}],"ghsa":[{"id":"GHSA-j43x-5hjq-rgxf","title":" Plug: quadratic-time decoding of nested query/body parameters enables denial of service","description":"### Summary\n\nPlug's nested-parameter decoder (`Plug.Conn.Query`) parses URL-encoded keys in time quadratic in their bracket-nesting depth. Any unauthenticated remote attacker that can reach a Plug-based HTTP endpoint can pin a BEAM scheduler for minutes with a single small request.\n\n### Details\n\nFor a key like `a[a][a]...=1`, `Plug.Conn.Query.split_keys/6` (in `lib/plug/conn/query.ex`) builds an accumulator of `:binary.part` prefixes (`a`, `a[a]`, `a[a][a]`, …) that grow ~3 bytes per level. `Plug.Conn.Query.insert_keys/3` then does one `Map.put` per level keyed on that growing prefix, hashing the full byte range each time, and `Plug.Conn.Query.finalize_pointer/2` repeats the prefix-keyed walk to materialize the structure. Total cost is `O(N²)` in nesting depth.\n\nThe same code path handles query strings, `application/x-www-form-urlencoded` bodies, and multipart field names via `Plug.Conn.Query.decode/4` and `decode_each/2`. The default `Plug.Parsers.URLENCODED` cap is 1 MB (~333,000 nesting levels), but `Plug.Parsers` accepts urlencoded payloads up to its overall body limit (20 MB by default), so an attacker can scale the per-request work well beyond the urlencoded-specific cap. The decoder shows ~4× scaling per 2× input (16k levels ≈ 195 ms on a single scheduler).\n\n### PoC\n\n1. POST `a[a][a]...[a]=1` as `application/x-www-form-urlencoded` to any endpoint of a Plug-based app. Even at the 1 MB urlencoded-parser default the payload carries ~333,000 nesting levels; with the broader `Plug.Parsers` body limit (20 MB default) a single request can carry millions.\n2. Launch one such request per scheduler concurrently. Each pins a scheduler for minutes; legitimate traffic stalls once all schedulers are busy.\n\n### Impact\n\nA single low-bandwidth sender can render any internet-reachable Plug-based service (most Phoenix and standalone Elixir/Erlang web stacks) unresponsive. No credentials, specific endpoint, or prior knowledge of the application is required.\n\n### References\n\n* Introduction commit: https://github.com/elixir-plug/plug/commit/712b875d3442c765d8d37e546ffd5ad9f8afcc55\n* Patch commit: https://github.com/elixir-plug/plug/commit/b4aa8a0665ce2726a6d5af44467fb4f59595b107","status":"published","published":"2026-09-23T14:00:22Z","modified":"2026-09-23T14:00:23Z","cvss":[{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-407"],"updated_at":"2026-11-02T14:41:20.575159Z"}],"nvd":[{"id":"CVE-2026-54892","description":"Inefficient algorithmic complexity in Plug's nested-parameter decoder allows an unauthenticated remote attacker to cause denial of service. 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 many bracketed segments such as a[a][a][a]=1, the decoder walks the brackets and, for each of the N levels, performs a map operation keyed on an ever-growing binary prefix of the key, hashing the full byte range at each step. The total decode cost is therefore quadratic in the number of nesting levels.\n\nWith the default Plug.Parsers.URLENCODED body limit of 1,000,000 bytes, a single request can carry roughly 333,000 nesting levels and saturate a BEAM scheduler for minutes. A small number of concurrent requests can saturate all schedulers and render a Plug-based server unresponsive. No authentication or knowledge of application routes is required.\n\nThis vulnerability is associated with program files lib/plug/conn/query.ex and program 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.\n\nThis issue affects plug from 1.15.0 before 1.15.5, 1.16.4, 1.17.2, 1.18.3, and 1.19.3.","status":"published","published":"2026-06-23T13:16:43.167Z","modified":"2026-10-25T23:10:00.167Z","cvss":[{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"high","assessor":"secondary"}],"cwes":["CWE-407"],"updated_at":"2026-11-02T14:12:25.288279Z"}],"osv":[{"id":"CVE-2026-54892","title":"Plug: quadratic-time decoding of nested query/body parameters enables denial of service","description":"Inefficient algorithmic complexity in Plug's nested-parameter decoder allows an unauthenticated remote attacker to cause denial of service. 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 many bracketed segments such as a[a][a][a]=1, the decoder walks the brackets and, for each of the N levels, performs a map operation keyed on an ever-growing binary prefix of the key, hashing the full byte range at each step. The total decode cost is therefore quadratic in the number of nesting levels.\n\nWith the default Plug.Parsers.URLENCODED body limit of 1,000,000 bytes, a single request can carry roughly 333,000 nesting levels and saturate a BEAM scheduler for minutes. A small number of concurrent requests can saturate all schedulers and render a Plug-based server unresponsive. No authentication or knowledge of application routes is required.\n\nThis vulnerability is associated with program files lib/plug/conn/query.ex and program 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.\n\nThis issue affects plug from 1.15.0 before 1.15.5, 1.16.4, 1.17.2, 1.18.3, and 1.19.3.","status":"published","published":"2026-06-23T12:31:12.629Z","modified":"2026-11-05T21:32:25.375389253Z","cvss":[{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-407"],"updated_at":"2026-11-05T22:00:34.245765Z"},{"id":"EEF-CVE-2026-54892","title":"Plug: quadratic-time decoding of nested query/body parameters enables denial of service","description":"## Summary\n\nInefficient algorithmic complexity in Plug's nested-parameter decoder allows an unauthenticated remote attacker to cause denial of service. 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 many bracketed segments such as a\\[a\\]\\[a\\]\\[a\\]=1, the decoder walks the brackets and, for each of the N levels, performs a map operation keyed on an ever-growing binary prefix of the key, hashing the full byte range at each step. The total decode cost is therefore quadratic in the number of nesting levels.\n\nWith the default Plug.Parsers.URLENCODED body limit of 1,000,000 bytes, a single request can carry roughly 333,000 nesting levels and saturate a BEAM scheduler for minutes. A small number of concurrent requests can saturate all schedulers and render a Plug-based server unresponsive. No authentication or knowledge of application routes is required.\n\nThis vulnerability is associated with program files lib/plug/conn/query.ex and program 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.\n\nThis issue affects plug from 1.15.0 before 1.15.5, 1.16.4, 1.17.2, 1.18.3, and 1.19.3.","status":"published","published":"2026-06-23T12:31:12.629Z","modified":"2026-07-30T18:22:02.525222Z","cvss":[{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-407"],"updated_at":"2026-11-02T15:46:33.520522Z"},{"id":"GHSA-j43x-5hjq-rgxf","title":" Plug: quadratic-time decoding of nested query/body parameters enables denial of service","description":"### Summary\n\nPlug's nested-parameter decoder (`Plug.Conn.Query`) parses URL-encoded keys in time quadratic in their bracket-nesting depth. Any unauthenticated remote attacker that can reach a Plug-based HTTP endpoint can pin a BEAM scheduler for minutes with a single small request.\n\n### Details\n\nFor a key like `a[a][a]...=1`, `Plug.Conn.Query.split_keys/6` (in `lib/plug/conn/query.ex`) builds an accumulator of `:binary.part` prefixes (`a`, `a[a]`, `a[a][a]`, …) that grow ~3 bytes per level. `Plug.Conn.Query.insert_keys/3` then does one `Map.put` per level keyed on that growing prefix, hashing the full byte range each time, and `Plug.Conn.Query.finalize_pointer/2` repeats the prefix-keyed walk to materialize the structure. Total cost is `O(N²)` in nesting depth.\n\nThe same code path handles query strings, `application/x-www-form-urlencoded` bodies, and multipart field names via `Plug.Conn.Query.decode/4` and `decode_each/2`. The default `Plug.Parsers.URLENCODED` cap is 1 MB (~333,000 nesting levels), but `Plug.Parsers` accepts urlencoded payloads up to its overall body limit (20 MB by default), so an attacker can scale the per-request work well beyond the urlencoded-specific cap. The decoder shows ~4× scaling per 2× input (16k levels ≈ 195 ms on a single scheduler).\n\n### PoC\n\n1. POST `a[a][a]...[a]=1` as `application/x-www-form-urlencoded` to any endpoint of a Plug-based app. Even at the 1 MB urlencoded-parser default the payload carries ~333,000 nesting levels; with the broader `Plug.Parsers` body limit (20 MB default) a single request can carry millions.\n2. Launch one such request per scheduler concurrently. Each pins a scheduler for minutes; legitimate traffic stalls once all schedulers are busy.\n\n### Impact\n\nA single low-bandwidth sender can render any internet-reachable Plug-based service (most Phoenix and standalone Elixir/Erlang web stacks) unresponsive. No credentials, specific endpoint, or prior knowledge of the application is required.\n\n### References\n\n* Introduction commit: https://github.com/elixir-plug/plug/commit/712b875d3442c765d8d37e546ffd5ad9f8afcc55\n* Patch commit: https://github.com/elixir-plug/plug/commit/b4aa8a0665ce2726a6d5af44467fb4f59595b107","status":"published","published":"2026-09-23T14:00:22Z","modified":"2026-09-23T14:15:04.788541968Z","cvss":[{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-407"],"updated_at":"2026-11-02T15:46:49.977351Z"},{"id":"MGASA-2026-0457","title":"Updated erlang package fixes security vulnerabilities","description":"SSH SFTP server denial of service via extended channel data infinite\nloop. (CVE-2026-54886)\nPlaintext APPLICATION_DATA injected during TLS handshake delivered to\nclient application post-handshake in ssl. (CVE-2026-54891)\nPlug: quadratic-time decoding of nested query/body parameters enables\ndenial of service. (CVE-2026-54892)\nEmail-derived URL path injection in the Swoosh Microsoft Graph adapter.\n(CVE-2026-54893)\n","status":"published","published":"2026-09-27T03:12:30Z","modified":"2026-09-27T03:15:03.949705835Z","updated_at":"2026-11-02T15:49:43.795591Z"}]}}
