Search criteria

2 vulnerabilities found for absinthe_plug by absinthe-graphql

CVE-2026-42794 (GCVE-0-2026-42794)

Vulnerability from nvd – Published: 2026-05-08 15:42 – Updated: 2026-05-16 10:21
VLAI
Title
Reflected XSS via backslash bypass in GraphiQL js_escape in absinthe_plug
Summary
Improper Neutralization of Input During Web Page Generation (XSS) vulnerability in absinthe-graphql absinthe_plug allows reflected cross-site scripting via the GraphiQL interface. 'Elixir.Absinthe.Plug.GraphiQL':js_escape/1 in lib/absinthe/plug/graphiql.ex escapes single quotes and newlines in the query GET parameter before embedding it in an inline JavaScript string, but does not escape backslashes. An attacker can bypass the escaping by prefixing a quote with a backslash (e.g. \'), breaking out of the string context and executing arbitrary JavaScript in the victim's browser. This issue affects absinthe_plug: from 1.2.0 before 1.5.10.
CWE
  • CWE-79 - Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
Assigner
EEF
Impacted products
Vendor Product Version
absinthe-graphql absinthe_plug Affected: 1.2.0 , < 1.5.10 (semver)
    cpe:2.3:a:absinthe-graphql:absinthe_plug:*:*:*:*:*:*:*:*
Create a notification for this product.
absinthe-graphql absinthe_plug Affected: 26241817cb4b9be4de3f5972c5fba3d36de3d713 , < 23a0d5658d32420086711adf4ce8f05febb09963 (git)
    cpe:2.3:a:absinthe-graphql:absinthe_plug:*:*:*:*:*:*:*:*
Create a notification for this product.
Credits
40826d Bryan A. Enders Leandro Moreno Ben Wilson
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-42794",
                "options": [
                  {
                    "Exploitation": "poc"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-05-08T16:07:51.313563Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-05-08T16:08:26.818Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "references": [
          {
            "tags": [
              "exploit"
            ],
            "url": "https://github.com/absinthe-graphql/absinthe_plug/issues/275"
          }
        ],
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "collectionURL": "https://repo.hex.pm",
          "cpes": [
            "cpe:2.3:a:absinthe-graphql:absinthe_plug:*:*:*:*:*:*:*:*"
          ],
          "defaultStatus": "unaffected",
          "modules": [
            "\u0027Elixir.Absinthe.Plug.GraphiQL\u0027"
          ],
          "packageName": "absinthe_plug",
          "packageURL": "pkg:hex/absinthe_plug",
          "product": "absinthe_plug",
          "programFiles": [
            "lib/absinthe/plug/graphiql.ex"
          ],
          "programRoutines": [
            {
              "name": "\u0027Elixir.Absinthe.Plug.GraphiQL\u0027:js_escape/1"
            }
          ],
          "repo": "https://github.com/absinthe-graphql/absinthe_plug",
          "vendor": "absinthe-graphql",
          "versions": [
            {
              "lessThan": "1.5.10",
              "status": "affected",
              "version": "1.2.0",
              "versionType": "semver"
            }
          ]
        },
        {
          "collectionURL": "https://github.com",
          "cpes": [
            "cpe:2.3:a:absinthe-graphql:absinthe_plug:*:*:*:*:*:*:*:*"
          ],
          "defaultStatus": "unaffected",
          "modules": [
            "\u0027Elixir.Absinthe.Plug.GraphiQL\u0027"
          ],
          "packageName": "absinthe-graphql/absinthe_plug",
          "packageURL": "pkg:github/absinthe-graphql/absinthe_plug",
          "product": "absinthe_plug",
          "programFiles": [
            "lib/absinthe/plug/graphiql.ex"
          ],
          "programRoutines": [
            {
              "name": "\u0027Elixir.Absinthe.Plug.GraphiQL\u0027:js_escape/1"
            }
          ],
          "repo": "https://github.com/absinthe-graphql/absinthe_plug",
          "vendor": "absinthe-graphql",
          "versions": [
            {
              "lessThan": "23a0d5658d32420086711adf4ce8f05febb09963",
              "status": "affected",
              "version": "26241817cb4b9be4de3f5972c5fba3d36de3d713",
              "versionType": "git"
            }
          ]
        }
      ],
      "configurations": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "The application must mount \u003ctt\u003eAbsinthe.Plug.GraphiQL\u003c/tt\u003e on a route that is reachable by untrusted users. The GraphiQL interface is a developer tool and is typically disabled or restricted in production deployments."
            }
          ],
          "value": "The application must mount Absinthe.Plug.GraphiQL on a route that is reachable by untrusted users. The GraphiQL interface is a developer tool and is typically disabled or restricted in production deployments."
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:a:absinthe-graphql:absinthe_plug:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "1.5.10",
                  "versionStartIncluding": "1.2.0",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ],
          "operator": "AND"
        }
      ],
      "credits": [
        {
          "lang": "en",
          "type": "finder",
          "value": "40826d"
        },
        {
          "lang": "en",
          "type": "finder",
          "value": "Bryan A. Enders"
        },
        {
          "lang": "en",
          "type": "remediation developer",
          "value": "Leandro Moreno"
        },
        {
          "lang": "en",
          "type": "remediation reviewer",
          "value": "Ben Wilson"
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "Improper Neutralization of Input During Web Page Generation (XSS) vulnerability in absinthe-graphql absinthe_plug allows reflected cross-site scripting via the GraphiQL interface.\u003cp\u003e\u003ctt\u003e\u0027Elixir.Absinthe.Plug.GraphiQL\u0027:js_escape/1\u003c/tt\u003e in \u003ctt\u003elib/absinthe/plug/graphiql.ex\u003c/tt\u003e escapes single quotes and newlines in the \u003ctt\u003equery\u003c/tt\u003e GET parameter before embedding it in an inline JavaScript string, but does not escape backslashes. An attacker can bypass the escaping by prefixing a quote with a backslash (e.g. \u003ctt\u003e\\\u0027\u003c/tt\u003e), breaking out of the string context and executing arbitrary JavaScript in the victim\u0027s browser.\u003c/p\u003e\u003cp\u003eThis issue affects absinthe_plug: from 1.2.0 before 1.5.10.\u003c/p\u003e"
            }
          ],
          "value": "Improper Neutralization of Input During Web Page Generation (XSS) vulnerability in absinthe-graphql absinthe_plug allows reflected cross-site scripting via the GraphiQL interface.\n\n\u0027Elixir.Absinthe.Plug.GraphiQL\u0027:js_escape/1 in lib/absinthe/plug/graphiql.ex escapes single quotes and newlines in the query GET parameter before embedding it in an inline JavaScript string, but does not escape backslashes. An attacker can bypass the escaping by prefixing a quote with a backslash (e.g. \\\u0027), breaking out of the string context and executing arbitrary JavaScript in the victim\u0027s browser.\n\nThis issue affects absinthe_plug: from 1.2.0 before 1.5.10."
        }
      ],
      "impacts": [
        {
          "capecId": "CAPEC-86",
          "descriptions": [
            {
              "lang": "en",
              "value": "CAPEC-86 XSS Using HTTP Query Strings"
            }
          ]
        }
      ],
      "metrics": [
        {
          "cvssV4_0": {
            "attackComplexity": "LOW",
            "attackRequirements": "PRESENT",
            "attackVector": "NETWORK",
            "baseScore": 2.3,
            "baseSeverity": "LOW",
            "privilegesRequired": "NONE",
            "subAvailabilityImpact": "NONE",
            "subConfidentialityImpact": "NONE",
            "subIntegrityImpact": "NONE",
            "userInteraction": "PASSIVE",
            "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N",
            "version": "4.0",
            "vulnAvailabilityImpact": "NONE",
            "vulnConfidentialityImpact": "LOW",
            "vulnIntegrityImpact": "LOW"
          },
          "format": "CVSS",
          "scenarios": [
            {
              "lang": "en",
              "value": "GENERAL"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-79",
              "description": "CWE-79 Improper Neutralization of Input During Web Page Generation (\u0027Cross-site Scripting\u0027)",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-05-16T10:21:31.067Z",
        "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "shortName": "EEF"
      },
      "references": [
        {
          "tags": [
            "vendor-advisory"
          ],
          "url": "https://github.com/absinthe-graphql/absinthe_plug/issues/275"
        },
        {
          "tags": [
            "related"
          ],
          "url": "https://cna.erlef.org/cves/CVE-2026-42794.html"
        },
        {
          "tags": [
            "related"
          ],
          "url": "https://osv.dev/vulnerability/EEF-CVE-2026-42794"
        },
        {
          "tags": [
            "patch"
          ],
          "url": "https://github.com/absinthe-graphql/absinthe_plug/commit/23a0d5658d32420086711adf4ce8f05febb09963"
        }
      ],
      "source": {
        "discovery": "EXTERNAL"
      },
      "title": "Reflected XSS via backslash bypass in GraphiQL js_escape in absinthe_plug",
      "x_generator": {
        "engine": "cvelib 1.8.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
    "assignerShortName": "EEF",
    "cveId": "CVE-2026-42794",
    "datePublished": "2026-05-08T15:42:40.706Z",
    "dateReserved": "2026-04-29T18:06:33.251Z",
    "dateUpdated": "2026-05-16T10:21:31.067Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}

CVE-2026-42794 (GCVE-0-2026-42794)

Vulnerability from cvelistv5 – Published: 2026-05-08 15:42 – Updated: 2026-05-16 10:21
VLAI
Title
Reflected XSS via backslash bypass in GraphiQL js_escape in absinthe_plug
Summary
Improper Neutralization of Input During Web Page Generation (XSS) vulnerability in absinthe-graphql absinthe_plug allows reflected cross-site scripting via the GraphiQL interface. 'Elixir.Absinthe.Plug.GraphiQL':js_escape/1 in lib/absinthe/plug/graphiql.ex escapes single quotes and newlines in the query GET parameter before embedding it in an inline JavaScript string, but does not escape backslashes. An attacker can bypass the escaping by prefixing a quote with a backslash (e.g. \'), breaking out of the string context and executing arbitrary JavaScript in the victim's browser. This issue affects absinthe_plug: from 1.2.0 before 1.5.10.
CWE
  • CWE-79 - Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
Assigner
EEF
Impacted products
Vendor Product Version
absinthe-graphql absinthe_plug Affected: 1.2.0 , < 1.5.10 (semver)
    cpe:2.3:a:absinthe-graphql:absinthe_plug:*:*:*:*:*:*:*:*
Create a notification for this product.
absinthe-graphql absinthe_plug Affected: 26241817cb4b9be4de3f5972c5fba3d36de3d713 , < 23a0d5658d32420086711adf4ce8f05febb09963 (git)
    cpe:2.3:a:absinthe-graphql:absinthe_plug:*:*:*:*:*:*:*:*
Create a notification for this product.
Credits
40826d Bryan A. Enders Leandro Moreno Ben Wilson
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-42794",
                "options": [
                  {
                    "Exploitation": "poc"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-05-08T16:07:51.313563Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-05-08T16:08:26.818Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "references": [
          {
            "tags": [
              "exploit"
            ],
            "url": "https://github.com/absinthe-graphql/absinthe_plug/issues/275"
          }
        ],
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "collectionURL": "https://repo.hex.pm",
          "cpes": [
            "cpe:2.3:a:absinthe-graphql:absinthe_plug:*:*:*:*:*:*:*:*"
          ],
          "defaultStatus": "unaffected",
          "modules": [
            "\u0027Elixir.Absinthe.Plug.GraphiQL\u0027"
          ],
          "packageName": "absinthe_plug",
          "packageURL": "pkg:hex/absinthe_plug",
          "product": "absinthe_plug",
          "programFiles": [
            "lib/absinthe/plug/graphiql.ex"
          ],
          "programRoutines": [
            {
              "name": "\u0027Elixir.Absinthe.Plug.GraphiQL\u0027:js_escape/1"
            }
          ],
          "repo": "https://github.com/absinthe-graphql/absinthe_plug",
          "vendor": "absinthe-graphql",
          "versions": [
            {
              "lessThan": "1.5.10",
              "status": "affected",
              "version": "1.2.0",
              "versionType": "semver"
            }
          ]
        },
        {
          "collectionURL": "https://github.com",
          "cpes": [
            "cpe:2.3:a:absinthe-graphql:absinthe_plug:*:*:*:*:*:*:*:*"
          ],
          "defaultStatus": "unaffected",
          "modules": [
            "\u0027Elixir.Absinthe.Plug.GraphiQL\u0027"
          ],
          "packageName": "absinthe-graphql/absinthe_plug",
          "packageURL": "pkg:github/absinthe-graphql/absinthe_plug",
          "product": "absinthe_plug",
          "programFiles": [
            "lib/absinthe/plug/graphiql.ex"
          ],
          "programRoutines": [
            {
              "name": "\u0027Elixir.Absinthe.Plug.GraphiQL\u0027:js_escape/1"
            }
          ],
          "repo": "https://github.com/absinthe-graphql/absinthe_plug",
          "vendor": "absinthe-graphql",
          "versions": [
            {
              "lessThan": "23a0d5658d32420086711adf4ce8f05febb09963",
              "status": "affected",
              "version": "26241817cb4b9be4de3f5972c5fba3d36de3d713",
              "versionType": "git"
            }
          ]
        }
      ],
      "configurations": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "The application must mount \u003ctt\u003eAbsinthe.Plug.GraphiQL\u003c/tt\u003e on a route that is reachable by untrusted users. The GraphiQL interface is a developer tool and is typically disabled or restricted in production deployments."
            }
          ],
          "value": "The application must mount Absinthe.Plug.GraphiQL on a route that is reachable by untrusted users. The GraphiQL interface is a developer tool and is typically disabled or restricted in production deployments."
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:a:absinthe-graphql:absinthe_plug:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "1.5.10",
                  "versionStartIncluding": "1.2.0",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ],
          "operator": "AND"
        }
      ],
      "credits": [
        {
          "lang": "en",
          "type": "finder",
          "value": "40826d"
        },
        {
          "lang": "en",
          "type": "finder",
          "value": "Bryan A. Enders"
        },
        {
          "lang": "en",
          "type": "remediation developer",
          "value": "Leandro Moreno"
        },
        {
          "lang": "en",
          "type": "remediation reviewer",
          "value": "Ben Wilson"
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "Improper Neutralization of Input During Web Page Generation (XSS) vulnerability in absinthe-graphql absinthe_plug allows reflected cross-site scripting via the GraphiQL interface.\u003cp\u003e\u003ctt\u003e\u0027Elixir.Absinthe.Plug.GraphiQL\u0027:js_escape/1\u003c/tt\u003e in \u003ctt\u003elib/absinthe/plug/graphiql.ex\u003c/tt\u003e escapes single quotes and newlines in the \u003ctt\u003equery\u003c/tt\u003e GET parameter before embedding it in an inline JavaScript string, but does not escape backslashes. An attacker can bypass the escaping by prefixing a quote with a backslash (e.g. \u003ctt\u003e\\\u0027\u003c/tt\u003e), breaking out of the string context and executing arbitrary JavaScript in the victim\u0027s browser.\u003c/p\u003e\u003cp\u003eThis issue affects absinthe_plug: from 1.2.0 before 1.5.10.\u003c/p\u003e"
            }
          ],
          "value": "Improper Neutralization of Input During Web Page Generation (XSS) vulnerability in absinthe-graphql absinthe_plug allows reflected cross-site scripting via the GraphiQL interface.\n\n\u0027Elixir.Absinthe.Plug.GraphiQL\u0027:js_escape/1 in lib/absinthe/plug/graphiql.ex escapes single quotes and newlines in the query GET parameter before embedding it in an inline JavaScript string, but does not escape backslashes. An attacker can bypass the escaping by prefixing a quote with a backslash (e.g. \\\u0027), breaking out of the string context and executing arbitrary JavaScript in the victim\u0027s browser.\n\nThis issue affects absinthe_plug: from 1.2.0 before 1.5.10."
        }
      ],
      "impacts": [
        {
          "capecId": "CAPEC-86",
          "descriptions": [
            {
              "lang": "en",
              "value": "CAPEC-86 XSS Using HTTP Query Strings"
            }
          ]
        }
      ],
      "metrics": [
        {
          "cvssV4_0": {
            "attackComplexity": "LOW",
            "attackRequirements": "PRESENT",
            "attackVector": "NETWORK",
            "baseScore": 2.3,
            "baseSeverity": "LOW",
            "privilegesRequired": "NONE",
            "subAvailabilityImpact": "NONE",
            "subConfidentialityImpact": "NONE",
            "subIntegrityImpact": "NONE",
            "userInteraction": "PASSIVE",
            "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N",
            "version": "4.0",
            "vulnAvailabilityImpact": "NONE",
            "vulnConfidentialityImpact": "LOW",
            "vulnIntegrityImpact": "LOW"
          },
          "format": "CVSS",
          "scenarios": [
            {
              "lang": "en",
              "value": "GENERAL"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-79",
              "description": "CWE-79 Improper Neutralization of Input During Web Page Generation (\u0027Cross-site Scripting\u0027)",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-05-16T10:21:31.067Z",
        "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "shortName": "EEF"
      },
      "references": [
        {
          "tags": [
            "vendor-advisory"
          ],
          "url": "https://github.com/absinthe-graphql/absinthe_plug/issues/275"
        },
        {
          "tags": [
            "related"
          ],
          "url": "https://cna.erlef.org/cves/CVE-2026-42794.html"
        },
        {
          "tags": [
            "related"
          ],
          "url": "https://osv.dev/vulnerability/EEF-CVE-2026-42794"
        },
        {
          "tags": [
            "patch"
          ],
          "url": "https://github.com/absinthe-graphql/absinthe_plug/commit/23a0d5658d32420086711adf4ce8f05febb09963"
        }
      ],
      "source": {
        "discovery": "EXTERNAL"
      },
      "title": "Reflected XSS via backslash bypass in GraphiQL js_escape in absinthe_plug",
      "x_generator": {
        "engine": "cvelib 1.8.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
    "assignerShortName": "EEF",
    "cveId": "CVE-2026-42794",
    "datePublished": "2026-05-08T15:42:40.706Z",
    "dateReserved": "2026-04-29T18:06:33.251Z",
    "dateUpdated": "2026-05-16T10:21:31.067Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}