GHSA-jfwg-rxf3-p7r9: Authorizer CQL/N1QL Injection Vulnerability

HIGH
CVSS 7.3
CWE-209 CWE-943
Published
Advisory Summary

GHSA-jfwg-rxf3-p7r9 is a HIGH (CVSS 7.3) cql/n1ql injection vulnerability (CWE-209: Generation of Error Message Containing Sensitive Information) affecting Authorizer libraries in the Go ecosystem. The issue involves cql/n1ql injection in cassandra and couchbase backends via fmt.sprintf string interpolation. Remediation is available by upgrading affected packages to version 0.0.0-20260327055742-73679faa53cd.

GHSA-jfwg-rxf3-p7r9 at a Glance

CVE Identifier N/A
GHSA Identifier GHSA-jfwg-rxf3-p7r9
Severity HIGH
CVSS v3.1 Base Score 7.3
CWE Classification CWE-209: Generation of Error Message Containing Sensitive Information
Affected Product Authorizer
Package Ecosystem Go
Published Date
Last Updated

Security Impact

CVSS: 7.3

The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L).

Attack Vector Network (AV:N)
Attack Complexity Low (AC:L)
Privileges Required None (PR:N)
User Interaction None (UI:N)
Scope Unchanged (S:U)
Confidentiality Low (C:L)
Integrity Low (I:L)
Availability Low (A:L)

How to Fix GHSA-jfwg-rxf3-p7r9

To remediate this vulnerability, upgrade all affected Authorizer dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

github.com/authorizerdev/authorizer fixed: 0.0.0-20260327055742-73679faa53cd
Upgrade github.com/authorizerdev/authorizer to 0.0.0-20260327055742-73679faa53cd
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

inspect dependencies for github.com/authorizerdev/authorizer

How to Check if You Are Affected

To determine whether your application is affected by GHSA-jfwg-rxf3-p7r9, inspect your project dependencies for Authorizer:

inspect dependencies for github.com/authorizerdev/authorizer

Analyze the terminal output to locate any version of Authorizer in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 0.0.0-20260327055742-73679faa53cd), your application is affected.

Note: Verify declared build manifests and deployed runtime container environments.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-209: Generation of Error Message Containing Sensitive Information, where the product generates an error message that includes sensitive information about its environment, users, or associated data. In Authorizer, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

## Vulnerability Details **CWE:** CWE-943 - Improper Neutralization of Special Elements in Data Query Logic All 66+ CQL queries in `internal/storage/db/cassandradb/` use `fmt.Sprintf` to interpolate user-controlled values directly into CQL query strings without parameterization. Unauthenticated endpoints (`signup`, `login`, `forgot_password`, `magic_link_login`) pass user input directly into CQL query strings. **Note:** This advisory covers the Cassandra CQL injection only. The Couchbase N1QL injection is tracked in a separate advisory per CVE rule 4.2.11. ## Affected Code Pattern ```go // Before (VULNERABLE) - e.g. cassandradb/user.go query := fmt.Sprintf("SELECT ... FROM %s WHERE email = '%s'", table, email) err := p.db.Query(query).Scan(...) ``` ## Steps to Reproduce 1. Deploy Authorizer <= 2.0.0 with Cassandra backend 2. Send a signup request with a CQL injection payload in the email field: ```bash curl -X POST http://localhost:8080/graphql \ -H 'Content-Type: application/json' \ -d '{"query":"mutation { signup(params: { email: \"test'\" }) { message } }"}' ``` 3. The single quote breaks out of the CQL string literal, causing a CQL parse error that leaks internal schema information 4. Crafted payloads can manipulate query logic to bypass authentication or extract data ## Affected Files (10 Cassandra files) | Package | File | Queries Fixed | |---------|------|--------------| | cassandradb | user.go | 7 | | cassandradb | otp.go | 4 | | cassandradb | session_token.go | 19 | | cassandradb | verification_requests.go | 4 | | cassandradb | authenticator.go | 3 | | cassandradb | email_template.go | 5 | | cassandradb | webhook.go | 5 | | cassandradb | webhook_log.go | 2 | | cassandradb | session.go | 1 | | cassandradb | env.go | 2 | ## Impact An unauthenticated attacker can inject arbitrary CQL operators through the email, phone, or token parameters on public-facing endpoints (signup, login, forgot_password, magic_link_login). This enables authentication bypass and data exfiltration from the Cassandra keyspace. ## Proposed Fix Use parameterized queries: ```go // After (FIXED) query := fmt.Sprintf("SELECT ... FROM %s WHERE email = ?", table) err := p.db.Query(query, email).Scan(...) ``` Fixed in https://github.com/authorizerdev/authorizer/pull/500 (merged 2026-03-27).

GHSA-jfwg-rxf3-p7r9 Affected Authorizer Versions

1 component(s)
Fixed Versions:
0.0.0-20260327055742-73679faa53cd
Product / Package Ecosystem Affected Versions Fixed Version
github.com/authorizerdev/authorizer
Go
< 0.0.0-20260327055742-73679faa53cd
0.0.0-20260327055742-73679faa53cd

References

Frequently Asked Questions

What is GHSA-jfwg-rxf3-p7r9?
GHSA-jfwg-rxf3-p7r9 is a security vulnerability in Authorizer involving CQL/N1QL Injection in Cassandra and Couchbase Backends via fmt.Sprintf String Interpolation under CWE-209: Generation of Error Message Containing Sensitive Information.
Which Authorizer versions are affected?
Affected versions include releases prior to 0.0.0-20260327055742-73679faa53cd across affected packages: github.com/authorizerdev/authorizer.
What version fixes GHSA-jfwg-rxf3-p7r9?
Upgrading to 0.0.0-20260327055742-73679faa53cd (or the latest patched release for your respective branch) resolves the vulnerability.
Is github.com/authorizerdev/authorizer affected?
Yes, github.com/authorizerdev/authorizer is affected in releases prior to 0.0.0-20260327055742-73679faa53cd. Upgrade your dependency to 0.0.0-20260327055742-73679faa53cd or later.
What is the CVSS score of GHSA-jfwg-rxf3-p7r9?
GHSA-jfwg-rxf3-p7r9 has a CVSS v3.1 base score of 7.3 (HIGH) with vector string CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L.
What CWE is associated with GHSA-jfwg-rxf3-p7r9?
GHSA-jfwg-rxf3-p7r9 is classified under CWE-209: Generation of Error Message Containing Sensitive Information (The product generates an error message that includes sensitive information about its environment, users, or associated data.).
How can I check Go dependencies for GHSA-jfwg-rxf3-p7r9?
Run the dependency tree command: 'inspect dependencies for github.com/authorizerdev/authorizer'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-jfwg-rxf3-p7r9",
  "modified" : "2026-04-06T17:56:31Z",
  "published" : "2026-04-06T17:56:31Z",
  "aliases" : [ ],
  "summary" : "Authorizer: CQL/N1QL Injection in Cassandra and Couchbase Backends via fmt.Sprintf String Interpolation",
  "details" : "## Vulnerability Details\n\n**CWE:** CWE-943 - Improper Neutralization of Special Elements in Data Query Logic\n\nAll 66+ CQL queries in `internal/storage/db/cassandradb/` use `fmt.Sprintf` to interpolate user-controlled values directly into CQL query strings without parameterization.\n\nUnauthenticated endpoints (`signup`, `login`, `forgot_password`, `magic_link_login`) pass user input directly into CQL query strings.\n\n**Note:** This advisory covers the Cassandra CQL injection only. The Couchbase N1QL injection is tracked in a separate advisory per CVE rule 4.2.11.\n\n## Affected Code Pattern\n\n```go\n// Before (VULNERABLE) - e.g. cassandradb/user.go\nquery := fmt.Sprintf(\"SELECT ... FROM %s WHERE email = '%s'\", table, email)\nerr := p.db.Query(query).Scan(...)\n```\n\n## Steps to Reproduce\n\n1. Deploy Authorizer <= 2.0.0 with Cassandra backend\n2. Send a signup request with a CQL injection payload in the email field:\n\n```bash\ncurl -X POST http://localhost:8080/graphql \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"query\":\"mutation { signup(params: { email: \\\"test'\\\" }) { message } }\"}'\n```\n\n3. The single quote breaks out of the CQL string literal, causing a CQL parse error that leaks internal schema information\n4. Crafted payloads can manipulate query logic to bypass authentication or extract data\n\n## Affected Files (10 Cassandra files)\n\n| Package | File | Queries Fixed |\n|---------|------|--------------|\n| cassandradb | user.go | 7 |\n| cassandradb | otp.go | 4 |\n| cassandradb | session_token.go | 19 |\n| cassandradb | verification_requests.go | 4 |\n| cassandradb | authenticator.go | 3 |\n| cassandradb | email_template.go | 5 |\n| cassandradb | webhook.go | 5 |\n| cassandradb | webhook_log.go | 2 |\n| cassandradb | session.go | 1 |\n| cassandradb | env.go | 2 |\n\n## Impact\n\nAn unauthenticated attacker can inject arbitrary CQL operators through the email, phone, or token parameters on public-facing endpoints (signup, login, forgot_password, magic_link_login). This enables authentication bypass and data exfiltration from the Cassandra keyspace.\n\n## Proposed Fix\n\nUse parameterized queries:\n\n```go\n// After (FIXED)\nquery := fmt.Sprintf(\"SELECT ... FROM %s WHERE email = ?\", table)\nerr := p.db.Query(query, email).Scan(...)\n```\n\nFixed in https://github.com/authorizerdev/authorizer/pull/500 (merged 2026-03-27).",
  "severity" : [ {
    "type" : "CVSS_V3",
    "score" : "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "Go",
      "name" : "github.com/authorizerdev/authorizer"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "fixed" : "0.0.0-20260327055742-73679faa53cd"
      } ]
    } ]
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/authorizerdev/authorizer/security/advisories/GHSA-jfwg-rxf3-p7r9"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/authorizerdev/authorizer/pull/500"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/authorizerdev/authorizer/commit/73679faa53cd215c7524d651046e402c43809786"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/authorizerdev/authorizer"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/authorizerdev/authorizer/releases/tag/2.0.1"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-209", "CWE-943" ],
    "severity" : "HIGH",
    "github_reviewed" : true,
    "github_reviewed_at" : "2026-04-06T17:56:31Z",
    "nvd_published_at" : null
  }
}