GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

CVE-2026-64941 (GCVE-0-2026-64941)

Vulnerability from cvelistv5 – Published: 2026-08-10 11:05 – Updated: 2026-08-10 13:00
VLAI
Title
Open redirect in Phoenix.LiveView.validate_local_url!/2 via ASCII tab, LF and CR
Summary
URL Redirection to Untrusted Site ('Open Redirect') vulnerability in phoenixframework phoenix_live_view allows an attacker to send a victim's browser to an origin of the attacker's choosing via a :to value containing ASCII tab, LF or CR. redirect/2 validates :to through the private validate_local_url!/2 in lib/phoenix_live_view.ex, which is intended to guarantee the target is a path within the application. It rejects a leading // and any backslash, but not ASCII tab, LF or CR. Browsers strip those three characters before parsing a URL, so a value such as /<TAB>/example.com passes validation as a path and is then resolved as the scheme-relative URL //example.com. The live navigation functions share the guard but are not affected, because the client expands their target against the current origin. push_patch/2 is also affected before 0.7.0, which is when that expansion was added. This issue affects phoenix_live_view: from 0.5.0 before 1.0.19, from 1.1.0-rc.0 before 1.1.33, and from 1.2.0-rc.0 before 1.2.9.
SSVC
Exploitation: poc Automatable: no Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-08-10 13:00 UTC
CWE
  • CWE-601 - URL Redirection to Untrusted Site ('Open Redirect')
Assigner
Impacted products
Vendor Product Version CPE status
phoenixframework phoenix_live_view Affected: 0.5.0 , < 1.0.19 (semver)
Affected: 1.1.0-rc.0 , < 1.1.33 (semver)
Affected: 1.2.0-rc.0 , < 1.2.9 (semver)
    cpe:2.3:a:phoenixframework:phoenix_live_view:*:*:*:*:*:*:*:*
Create a notification for this product.
phoenixframework phoenix_live_view Affected: b20dba3f65a380b2e4868dae03397f13d2daa070 , < * (git)
    cpe:2.3:a:phoenixframework:phoenix_live_view:*:*:*:*:*:*:*:*
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-64941",
                "options": [
                  {
                    "Exploitation": "poc"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-08-10T13:00:10.932600Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-08-10T13:00:33.543Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "references": [
          {
            "tags": [
              "exploit"
            ],
            "url": "https://github.com/phoenixframework/phoenix_live_view/security/advisories/GHSA-36m4-rm57-3prf"
          }
        ],
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "collectionURL": "https://repo.hex.pm",
          "cpes": [
            "cpe:2.3:a:phoenixframework:phoenix_live_view:*:*:*:*:*:*:*:*"
          ],
          "defaultStatus": "unaffected",
          "modules": [
            "\u0027Elixir.Phoenix.LiveView\u0027"
          ],
          "packageName": "phoenix_live_view",
          "packageURL": "pkg:hex/phoenix_live_view",
          "product": "phoenix_live_view",
          "programFiles": [
            "lib/phoenix_live_view.ex"
          ],
          "programRoutines": [
            {
              "name": "\u0027Elixir.Phoenix.LiveView\u0027:redirect/2"
            },
            {
              "name": "\u0027Elixir.Phoenix.LiveView\u0027:push_patch/2"
            }
          ],
          "repo": "https://github.com/phoenixframework/phoenix_live_view",
          "vendor": "phoenixframework",
          "versions": [
            {
              "lessThan": "1.0.19",
              "status": "affected",
              "version": "0.5.0",
              "versionType": "semver"
            },
            {
              "lessThan": "1.1.33",
              "status": "affected",
              "version": "1.1.0-rc.0",
              "versionType": "semver"
            },
            {
              "lessThan": "1.2.9",
              "status": "affected",
              "version": "1.2.0-rc.0",
              "versionType": "semver"
            }
          ]
        },
        {
          "collectionURL": "https://github.com",
          "cpes": [
            "cpe:2.3:a:phoenixframework:phoenix_live_view:*:*:*:*:*:*:*:*"
          ],
          "defaultStatus": "unaffected",
          "modules": [
            "\u0027Elixir.Phoenix.LiveView\u0027"
          ],
          "packageName": "phoenixframework/phoenix_live_view",
          "packageURL": "pkg:github/phoenixframework/phoenix_live_view",
          "product": "phoenix_live_view",
          "programFiles": [
            "lib/phoenix_live_view.ex"
          ],
          "programRoutines": [
            {
              "name": "\u0027Elixir.Phoenix.LiveView\u0027:redirect/2"
            },
            {
              "name": "\u0027Elixir.Phoenix.LiveView\u0027:push_patch/2"
            }
          ],
          "repo": "https://github.com/phoenixframework/phoenix_live_view",
          "vendor": "phoenixframework",
          "versions": [
            {
              "changes": [
                {
                  "at": "0b8c733133466912f81adecaea72b6712370242e",
                  "status": "unaffected"
                },
                {
                  "at": "1c164f83df0bb922dfff9c60d125da5b0cfd6619",
                  "status": "unaffected"
                },
                {
                  "at": "2068b304d71907064b159b6bc60c5ad85a876ecf",
                  "status": "unaffected"
                }
              ],
              "lessThan": "*",
              "status": "affected",
              "version": "b20dba3f65a380b2e4868dae03397f13d2daa070",
              "versionType": "git"
            }
          ]
        }
      ],
      "configurations": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eThe application must pass an externally influenced value as \u003ccode\u003e:to\u003c/code\u003e to \u003ccode\u003eredirect/2\u003c/code\u003e, or to \u003ccode\u003epush_patch/2\u003c/code\u003e before 0.7.0, for example a \u003ccode\u003ereturn_to\u003c/code\u003e parameter carried through sign-in or a navigation target taken from a \u003ccode\u003ehandle_event/3\u003c/code\u003e payload.\u003c/p\u003e"
            },
            {
              "base64": false,
              "type": "text/markdown",
              "value": "The application must pass an externally influenced value as `:to` to `redirect/2`, or to `push_patch/2` before 0.7.0, for example a `return_to` parameter carried through sign-in or a navigation target taken from a `handle_event/3` payload."
            }
          ],
          "value": "The application must pass an externally influenced value as :to to redirect/2, or to push_patch/2 before 0.7.0, for example a return_to parameter carried through sign-in or a navigation target taken from a handle_event/3 payload."
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:a:phoenixframework:phoenix_live_view:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "1.0.19",
                  "versionStartIncluding": "0.5.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:a:phoenixframework:phoenix_live_view:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "1.1.33",
                  "versionStartIncluding": "1.1.0-rc.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:a:phoenixframework:phoenix_live_view:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "1.2.9",
                  "versionStartIncluding": "1.2.0-rc.0",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ],
          "operator": "AND"
        }
      ],
      "credits": [
        {
          "lang": "en",
          "type": "finder",
          "value": "Eurico Nicacio"
        },
        {
          "lang": "en",
          "type": "remediation developer",
          "value": "Steffen Deusch"
        },
        {
          "lang": "en",
          "type": "remediation reviewer",
          "value": "Jos\u00e9 Valim"
        },
        {
          "lang": "en",
          "type": "analyst",
          "value": "Jonatan M\u00e4nnchen / EEF"
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eURL Redirection to Untrusted Site (\u0027Open Redirect\u0027) vulnerability in phoenixframework phoenix_live_view allows an attacker to send a victim\u0027s browser to an origin of the attacker\u0027s choosing via a \u003ccode\u003e:to\u003c/code\u003e value containing ASCII tab, LF or CR.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eredirect/2\u003c/code\u003e validates \u003ccode\u003e:to\u003c/code\u003e through the private \u003ccode\u003evalidate_local_url!/2\u003c/code\u003e in \u003ccode\u003elib/phoenix_live_view.ex\u003c/code\u003e, which is intended to guarantee the target is a path within the application. It rejects a leading \u003ccode\u003e//\u003c/code\u003e and any backslash, but not ASCII tab, LF or CR. Browsers strip those three characters before parsing a URL, so a value such as \u003ccode\u003e/\u0026lt;TAB\u0026gt;/example.com\u003c/code\u003e passes validation as a path and is then resolved as the scheme-relative URL \u003ccode\u003e//example.com\u003c/code\u003e. The live navigation functions share the guard but are not affected, because the client expands their target against the current origin. \u003ccode\u003epush_patch/2\u003c/code\u003e is also affected before 0.7.0, which is when that expansion was added.\u003c/p\u003e\n\u003cp\u003eThis issue affects phoenix_live_view: from 0.5.0 before 1.0.19, from 1.1.0-rc.0 before 1.1.33, and from 1.2.0-rc.0 before 1.2.9.\u003c/p\u003e"
            },
            {
              "base64": false,
              "type": "text/markdown",
              "value": "URL Redirection to Untrusted Site (\u0027Open Redirect\u0027) vulnerability in phoenixframework phoenix_live_view allows an attacker to send a victim\u0027s browser to an origin of the attacker\u0027s choosing via a `:to` value containing ASCII tab, LF or CR.\n\n`redirect/2` validates `:to` through the private `validate_local_url!/2` in `lib/phoenix_live_view.ex`, which is intended to guarantee the target is a path within the application. It rejects a leading `//` and any backslash, but not ASCII tab, LF or CR. Browsers strip those three characters before parsing a URL, so a value such as `/\u003cTAB\u003e/example.com` passes validation as a path and is then resolved as the scheme-relative URL `//example.com`. The live navigation functions share the guard but are not affected, because the client expands their target against the current origin. `push_patch/2` is also affected before 0.7.0, which is when that expansion was added.\n\nThis issue affects phoenix_live_view: from 0.5.0 before 1.0.19, from 1.1.0-rc.0 before 1.1.33, and from 1.2.0-rc.0 before 1.2.9."
            }
          ],
          "value": "URL Redirection to Untrusted Site (\u0027Open Redirect\u0027) vulnerability in phoenixframework phoenix_live_view allows an attacker to send a victim\u0027s browser to an origin of the attacker\u0027s choosing via a :to value containing ASCII tab, LF or CR.\n\nredirect/2 validates :to through the private validate_local_url!/2 in lib/phoenix_live_view.ex, which is intended to guarantee the target is a path within the application. It rejects a leading // and any backslash, but not ASCII tab, LF or CR. Browsers strip those three characters before parsing a URL, so a value such as /\u003cTAB\u003e/example.com passes validation as a path and is then resolved as the scheme-relative URL //example.com. The live navigation functions share the guard but are not affected, because the client expands their target against the current origin. push_patch/2 is also affected before 0.7.0, which is when that expansion was added.\n\nThis issue affects phoenix_live_view: from 0.5.0 before 1.0.19, from 1.1.0-rc.0 before 1.1.33, and from 1.2.0-rc.0 before 1.2.9."
        }
      ],
      "impacts": [
        {
          "capecId": "CAPEC-3",
          "descriptions": [
            {
              "lang": "en",
              "value": "CAPEC-3 Using Leading \u0027Ghost\u0027 Character Sequences to Bypass Input Filters"
            }
          ]
        }
      ],
      "metrics": [
        {
          "cvssV4_0": {
            "Automatable": "NOT_DEFINED",
            "Recovery": "NOT_DEFINED",
            "Safety": "NOT_DEFINED",
            "attackComplexity": "LOW",
            "attackRequirements": "PRESENT",
            "attackVector": "NETWORK",
            "baseScore": 2.1,
            "baseSeverity": "LOW",
            "privilegesRequired": "NONE",
            "providerUrgency": "NOT_DEFINED",
            "subAvailabilityImpact": "NONE",
            "subConfidentialityImpact": "LOW",
            "subIntegrityImpact": "LOW",
            "userInteraction": "ACTIVE",
            "valueDensity": "NOT_DEFINED",
            "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N",
            "version": "4.0",
            "vulnAvailabilityImpact": "NONE",
            "vulnConfidentialityImpact": "NONE",
            "vulnIntegrityImpact": "NONE",
            "vulnerabilityResponseEffort": "NOT_DEFINED"
          },
          "format": "CVSS",
          "scenarios": [
            {
              "lang": "en",
              "value": "GENERAL"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-601",
              "description": "CWE-601 URL Redirection to Untrusted Site (\u0027Open Redirect\u0027)",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-10T11:05:14.571Z",
        "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "shortName": "EEF"
      },
      "references": [
        {
          "tags": [
            "vendor-advisory",
            "related"
          ],
          "url": "https://github.com/phoenixframework/phoenix_live_view/security/advisories/GHSA-36m4-rm57-3prf"
        },
        {
          "tags": [
            "related"
          ],
          "url": "https://cna.erlef.org/cves/CVE-2026-64941.html"
        },
        {
          "tags": [
            "related"
          ],
          "url": "https://osv.dev/vulnerability/EEF-CVE-2026-64941"
        },
        {
          "tags": [
            "patch"
          ],
          "url": "https://github.com/phoenixframework/phoenix_live_view/commit/0b8c733133466912f81adecaea72b6712370242e"
        },
        {
          "tags": [
            "patch"
          ],
          "url": "https://github.com/phoenixframework/phoenix_live_view/commit/1c164f83df0bb922dfff9c60d125da5b0cfd6619"
        },
        {
          "tags": [
            "patch"
          ],
          "url": "https://github.com/phoenixframework/phoenix_live_view/commit/2068b304d71907064b159b6bc60c5ad85a876ecf"
        }
      ],
      "source": {
        "discovery": "EXTERNAL"
      },
      "title": "Open redirect in Phoenix.LiveView.validate_local_url!/2 via ASCII tab, LF and CR",
      "workarounds": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eReject any untrusted value containing ASCII tab, LF or CR before passing it as \u003ccode\u003e:to\u003c/code\u003e to \u003ccode\u003eredirect/2\u003c/code\u003e, or to \u003ccode\u003epush_patch/2\u003c/code\u003e before 0.7.0. Alternatively, map client-supplied navigation targets to a fixed set of known-good paths rather than forwarding the value.\u003c/p\u003e"
            },
            {
              "base64": false,
              "type": "text/markdown",
              "value": "Reject any untrusted value containing ASCII tab, LF or CR before passing it as `:to` to `redirect/2`, or to `push_patch/2` before 0.7.0. Alternatively, map client-supplied navigation targets to a fixed set of known-good paths rather than forwarding the value."
            }
          ],
          "value": "Reject any untrusted value containing ASCII tab, LF or CR before passing it as :to to redirect/2, or to push_patch/2 before 0.7.0. Alternatively, map client-supplied navigation targets to a fixed set of known-good paths rather than forwarding the value."
        }
      ]
    }
  },
  "cveMetadata": {
    "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
    "assignerShortName": "EEF",
    "cveId": "CVE-2026-64941",
    "datePublished": "2026-08-10T11:05:14.571Z",
    "dateReserved": "2026-08-09T16:30:01.572Z",
    "dateUpdated": "2026-08-10T13:00:33.543Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-64941",
      "date": "2026-09-18",
      "epss": "0.00341",
      "percentile": "0.27633"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "collectionURL": "https://repo.hex.pm",
                "cpes": [
                  "cpe:2.3:a:phoenixframework:phoenix_live_view:*:*:*:*:*:*:*:*"
                ],
                "defaultStatus": "unaffected",
                "modules": [
                  "\u0027Elixir.Phoenix.LiveView\u0027"
                ],
                "packageName": "phoenix_live_view",
                "packageURL": "pkg:hex/phoenix_live_view",
                "product": "phoenix_live_view",
                "programFiles": [
                  "lib/phoenix_live_view.ex"
                ],
                "programRoutines": [
                  {
                    "name": "\u0027Elixir.Phoenix.LiveView\u0027:redirect/2"
                  },
                  {
                    "name": "\u0027Elixir.Phoenix.LiveView\u0027:push_patch/2"
                  }
                ],
                "repo": "https://github.com/phoenixframework/phoenix_live_view",
                "vendor": "phoenixframework",
                "versions": [
                  {
                    "lessThan": "1.0.19",
                    "status": "affected",
                    "version": "0.5.0",
                    "versionType": "semver"
                  },
                  {
                    "lessThan": "1.1.33",
                    "status": "affected",
                    "version": "1.1.0-rc.0",
                    "versionType": "semver"
                  },
                  {
                    "lessThan": "1.2.9",
                    "status": "affected",
                    "version": "1.2.0-rc.0",
                    "versionType": "semver"
                  }
                ]
              },
              {
                "collectionURL": "https://github.com",
                "cpes": [
                  "cpe:2.3:a:phoenixframework:phoenix_live_view:*:*:*:*:*:*:*:*"
                ],
                "defaultStatus": "unaffected",
                "modules": [
                  "\u0027Elixir.Phoenix.LiveView\u0027"
                ],
                "packageName": "phoenixframework/phoenix_live_view",
                "packageURL": "pkg:github/phoenixframework/phoenix_live_view",
                "product": "phoenix_live_view",
                "programFiles": [
                  "lib/phoenix_live_view.ex"
                ],
                "programRoutines": [
                  {
                    "name": "\u0027Elixir.Phoenix.LiveView\u0027:redirect/2"
                  },
                  {
                    "name": "\u0027Elixir.Phoenix.LiveView\u0027:push_patch/2"
                  }
                ],
                "repo": "https://github.com/phoenixframework/phoenix_live_view",
                "vendor": "phoenixframework",
                "versions": [
                  {
                    "changes": [
                      {
                        "at": "0b8c733133466912f81adecaea72b6712370242e",
                        "status": "unaffected"
                      },
                      {
                        "at": "1c164f83df0bb922dfff9c60d125da5b0cfd6619",
                        "status": "unaffected"
                      },
                      {
                        "at": "2068b304d71907064b159b6bc60c5ad85a876ecf",
                        "status": "unaffected"
                      }
                    ],
                    "lessThan": "*",
                    "status": "affected",
                    "version": "b20dba3f65a380b2e4868dae03397f13d2daa070",
                    "versionType": "git"
                  }
                ]
              }
            ],
            "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db"
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "URL Redirection to Untrusted Site (\u0027Open Redirect\u0027) vulnerability in phoenixframework phoenix_live_view allows an attacker to send a victim\u0027s browser to an origin of the attacker\u0027s choosing via a :to value containing ASCII tab, LF or CR.\n\nredirect/2 validates :to through the private validate_local_url!/2 in lib/phoenix_live_view.ex, which is intended to guarantee the target is a path within the application. It rejects a leading // and any backslash, but not ASCII tab, LF or CR. Browsers strip those three characters before parsing a URL, so a value such as /\u003cTAB\u003e/example.com passes validation as a path and is then resolved as the scheme-relative URL //example.com. The live navigation functions share the guard but are not affected, because the client expands their target against the current origin. push_patch/2 is also affected before 0.7.0, which is when that expansion was added.\n\nThis issue affects phoenix_live_view: from 0.5.0 before 1.0.19, from 1.1.0-rc.0 before 1.1.33, and from 1.2.0-rc.0 before 1.2.9."
          }
        ],
        "id": "CVE-2026-64941",
        "lastModified": "2026-08-12T20:52:13.783",
        "metrics": {
          "cvssMetricV40": [
            {
              "cvssData": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "availabilityRequirement": "NOT_DEFINED",
                "baseScore": 2.1,
                "baseSeverity": "LOW",
                "confidentialityRequirement": "NOT_DEFINED",
                "exploitMaturity": "NOT_DEFINED",
                "integrityRequirement": "NOT_DEFINED",
                "modifiedAttackComplexity": "NOT_DEFINED",
                "modifiedAttackRequirements": "NOT_DEFINED",
                "modifiedAttackVector": "NOT_DEFINED",
                "modifiedPrivilegesRequired": "NOT_DEFINED",
                "modifiedSubAvailabilityImpact": "NOT_DEFINED",
                "modifiedSubConfidentialityImpact": "NOT_DEFINED",
                "modifiedSubIntegrityImpact": "NOT_DEFINED",
                "modifiedUserInteraction": "NOT_DEFINED",
                "modifiedVulnAvailabilityImpact": "NOT_DEFINED",
                "modifiedVulnConfidentialityImpact": "NOT_DEFINED",
                "modifiedVulnIntegrityImpact": "NOT_DEFINED",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "LOW",
                "subIntegrityImpact": "LOW",
                "userInteraction": "ACTIVE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/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",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
              "type": "Secondary"
            }
          ],
          "ssvcV203": [
            {
              "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "ssvcData": {
                "id": "CVE-2026-64941",
                "options": [
                  {
                    "exploitation": "poc"
                  },
                  {
                    "automatable": "no"
                  },
                  {
                    "technicalImpact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-08-10T13:00:10.932600Z",
                "version": "2.0.3"
              }
            }
          ]
        },
        "published": "2026-08-10T12:17:19.873",
        "references": [
          {
            "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "url": "https://cna.erlef.org/cves/CVE-2026-64941.html"
          },
          {
            "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "url": "https://github.com/phoenixframework/phoenix_live_view/commit/0b8c733133466912f81adecaea72b6712370242e"
          },
          {
            "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "url": "https://github.com/phoenixframework/phoenix_live_view/commit/1c164f83df0bb922dfff9c60d125da5b0cfd6619"
          },
          {
            "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "url": "https://github.com/phoenixframework/phoenix_live_view/commit/2068b304d71907064b159b6bc60c5ad85a876ecf"
          },
          {
            "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "url": "https://github.com/phoenixframework/phoenix_live_view/security/advisories/GHSA-36m4-rm57-3prf"
          },
          {
            "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "url": "https://osv.dev/vulnerability/EEF-CVE-2026-64941"
          },
          {
            "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
            "url": "https://github.com/phoenixframework/phoenix_live_view/security/advisories/GHSA-36m4-rm57-3prf"
          }
        ],
        "sourceIdentifier": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "vulnStatus": "Awaiting Analysis",
        "weaknesses": [
          {
            "description": [
              {
                "lang": "en",
                "value": "CWE-601"
              }
            ],
            "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "type": "Secondary"
          }
        ]
      }
    },
    "vulnrichment": {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-64941",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-08-10T13:00:10.932600Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-08-10T13:00:29.061Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/phoenixframework/phoenix_live_view/security/advisories/GHSA-36m4-rm57-3prf"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:phoenixframework:phoenix_live_view:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Phoenix.LiveView\u0027"
              ],
              "packageName": "phoenix_live_view",
              "packageURL": "pkg:hex/phoenix_live_view",
              "product": "phoenix_live_view",
              "programFiles": [
                "lib/phoenix_live_view.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Phoenix.LiveView\u0027:redirect/2"
                },
                {
                  "name": "\u0027Elixir.Phoenix.LiveView\u0027:push_patch/2"
                }
              ],
              "repo": "https://github.com/phoenixframework/phoenix_live_view",
              "vendor": "phoenixframework",
              "versions": [
                {
                  "lessThan": "1.0.19",
                  "status": "affected",
                  "version": "0.5.0",
                  "versionType": "semver"
                },
                {
                  "lessThan": "1.1.33",
                  "status": "affected",
                  "version": "1.1.0-rc.0",
                  "versionType": "semver"
                },
                {
                  "lessThan": "1.2.9",
                  "status": "affected",
                  "version": "1.2.0-rc.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:phoenixframework:phoenix_live_view:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.Phoenix.LiveView\u0027"
              ],
              "packageName": "phoenixframework/phoenix_live_view",
              "packageURL": "pkg:github/phoenixframework/phoenix_live_view",
              "product": "phoenix_live_view",
              "programFiles": [
                "lib/phoenix_live_view.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Phoenix.LiveView\u0027:redirect/2"
                },
                {
                  "name": "\u0027Elixir.Phoenix.LiveView\u0027:push_patch/2"
                }
              ],
              "repo": "https://github.com/phoenixframework/phoenix_live_view",
              "vendor": "phoenixframework",
              "versions": [
                {
                  "changes": [
                    {
                      "at": "0b8c733133466912f81adecaea72b6712370242e",
                      "status": "unaffected"
                    },
                    {
                      "at": "1c164f83df0bb922dfff9c60d125da5b0cfd6619",
                      "status": "unaffected"
                    },
                    {
                      "at": "2068b304d71907064b159b6bc60c5ad85a876ecf",
                      "status": "unaffected"
                    }
                  ],
                  "lessThan": "*",
                  "status": "affected",
                  "version": "b20dba3f65a380b2e4868dae03397f13d2daa070",
                  "versionType": "git"
                }
              ]
            }
          ],
          "configurations": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eThe application must pass an externally influenced value as \u003ccode\u003e:to\u003c/code\u003e to \u003ccode\u003eredirect/2\u003c/code\u003e, or to \u003ccode\u003epush_patch/2\u003c/code\u003e before 0.7.0, for example a \u003ccode\u003ereturn_to\u003c/code\u003e parameter carried through sign-in or a navigation target taken from a \u003ccode\u003ehandle_event/3\u003c/code\u003e payload.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "The application must pass an externally influenced value as `:to` to `redirect/2`, or to `push_patch/2` before 0.7.0, for example a `return_to` parameter carried through sign-in or a navigation target taken from a `handle_event/3` payload."
                }
              ],
              "value": "The application must pass an externally influenced value as :to to redirect/2, or to push_patch/2 before 0.7.0, for example a return_to parameter carried through sign-in or a navigation target taken from a handle_event/3 payload."
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:phoenixframework:phoenix_live_view:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.0.19",
                      "versionStartIncluding": "0.5.0",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:a:phoenixframework:phoenix_live_view:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.1.33",
                      "versionStartIncluding": "1.1.0-rc.0",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:a:phoenixframework:phoenix_live_view:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "1.2.9",
                      "versionStartIncluding": "1.2.0-rc.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Eurico Nicacio"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Steffen Deusch"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Jos\u00e9 Valim"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Jonatan M\u00e4nnchen / EEF"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eURL Redirection to Untrusted Site (\u0027Open Redirect\u0027) vulnerability in phoenixframework phoenix_live_view allows an attacker to send a victim\u0027s browser to an origin of the attacker\u0027s choosing via a \u003ccode\u003e:to\u003c/code\u003e value containing ASCII tab, LF or CR.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eredirect/2\u003c/code\u003e validates \u003ccode\u003e:to\u003c/code\u003e through the private \u003ccode\u003evalidate_local_url!/2\u003c/code\u003e in \u003ccode\u003elib/phoenix_live_view.ex\u003c/code\u003e, which is intended to guarantee the target is a path within the application. It rejects a leading \u003ccode\u003e//\u003c/code\u003e and any backslash, but not ASCII tab, LF or CR. Browsers strip those three characters before parsing a URL, so a value such as \u003ccode\u003e/\u0026lt;TAB\u0026gt;/example.com\u003c/code\u003e passes validation as a path and is then resolved as the scheme-relative URL \u003ccode\u003e//example.com\u003c/code\u003e. The live navigation functions share the guard but are not affected, because the client expands their target against the current origin. \u003ccode\u003epush_patch/2\u003c/code\u003e is also affected before 0.7.0, which is when that expansion was added.\u003c/p\u003e\n\u003cp\u003eThis issue affects phoenix_live_view: from 0.5.0 before 1.0.19, from 1.1.0-rc.0 before 1.1.33, and from 1.2.0-rc.0 before 1.2.9.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "URL Redirection to Untrusted Site (\u0027Open Redirect\u0027) vulnerability in phoenixframework phoenix_live_view allows an attacker to send a victim\u0027s browser to an origin of the attacker\u0027s choosing via a `:to` value containing ASCII tab, LF or CR.\n\n`redirect/2` validates `:to` through the private `validate_local_url!/2` in `lib/phoenix_live_view.ex`, which is intended to guarantee the target is a path within the application. It rejects a leading `//` and any backslash, but not ASCII tab, LF or CR. Browsers strip those three characters before parsing a URL, so a value such as `/\u003cTAB\u003e/example.com` passes validation as a path and is then resolved as the scheme-relative URL `//example.com`. The live navigation functions share the guard but are not affected, because the client expands their target against the current origin. `push_patch/2` is also affected before 0.7.0, which is when that expansion was added.\n\nThis issue affects phoenix_live_view: from 0.5.0 before 1.0.19, from 1.1.0-rc.0 before 1.1.33, and from 1.2.0-rc.0 before 1.2.9."
                }
              ],
              "value": "URL Redirection to Untrusted Site (\u0027Open Redirect\u0027) vulnerability in phoenixframework phoenix_live_view allows an attacker to send a victim\u0027s browser to an origin of the attacker\u0027s choosing via a :to value containing ASCII tab, LF or CR.\n\nredirect/2 validates :to through the private validate_local_url!/2 in lib/phoenix_live_view.ex, which is intended to guarantee the target is a path within the application. It rejects a leading // and any backslash, but not ASCII tab, LF or CR. Browsers strip those three characters before parsing a URL, so a value such as /\u003cTAB\u003e/example.com passes validation as a path and is then resolved as the scheme-relative URL //example.com. The live navigation functions share the guard but are not affected, because the client expands their target against the current origin. push_patch/2 is also affected before 0.7.0, which is when that expansion was added.\n\nThis issue affects phoenix_live_view: from 0.5.0 before 1.0.19, from 1.1.0-rc.0 before 1.1.33, and from 1.2.0-rc.0 before 1.2.9."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-3",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-3 Using Leading \u0027Ghost\u0027 Character Sequences to Bypass Input Filters"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 2.1,
                "baseSeverity": "LOW",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "LOW",
                "subIntegrityImpact": "LOW",
                "userInteraction": "ACTIVE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-601",
                  "description": "CWE-601 URL Redirection to Untrusted Site (\u0027Open Redirect\u0027)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-08-10T11:05:14.571Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory",
                "related"
              ],
              "url": "https://github.com/phoenixframework/phoenix_live_view/security/advisories/GHSA-36m4-rm57-3prf"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-64941.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-64941"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/phoenixframework/phoenix_live_view/commit/0b8c733133466912f81adecaea72b6712370242e"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/phoenixframework/phoenix_live_view/commit/1c164f83df0bb922dfff9c60d125da5b0cfd6619"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/phoenixframework/phoenix_live_view/commit/2068b304d71907064b159b6bc60c5ad85a876ecf"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "Open redirect in Phoenix.LiveView.validate_local_url!/2 via ASCII tab, LF and CR",
          "workarounds": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eReject any untrusted value containing ASCII tab, LF or CR before passing it as \u003ccode\u003e:to\u003c/code\u003e to \u003ccode\u003eredirect/2\u003c/code\u003e, or to \u003ccode\u003epush_patch/2\u003c/code\u003e before 0.7.0. Alternatively, map client-supplied navigation targets to a fixed set of known-good paths rather than forwarding the value.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Reject any untrusted value containing ASCII tab, LF or CR before passing it as `:to` to `redirect/2`, or to `push_patch/2` before 0.7.0. Alternatively, map client-supplied navigation targets to a fixed set of known-good paths rather than forwarding the value."
                }
              ],
              "value": "Reject any untrusted value containing ASCII tab, LF or CR before passing it as :to to redirect/2, or to push_patch/2 before 0.7.0. Alternatively, map client-supplied navigation targets to a fixed set of known-good paths rather than forwarding the value."
            }
          ]
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-64941",
        "datePublished": "2026-08-10T11:05:14.571Z",
        "dateReserved": "2026-08-09T16:30:01.572Z",
        "dateUpdated": "2026-08-10T13:00:33.543Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…