OpenSSL
CVE-2026-33505
HIGH
Severity by source
AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
Primary rating from GitHub Advisory.
CVSS VectorGitHub Advisory
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
Lifecycle Timeline
4DescriptionGitHub Advisory
Description
The GetRelationships API in Ory Keto is vulnerable to SQL injection due to flaws in its pagination implementation.
Pagination tokens are encrypted using the secret configured in secrets.pagination. An attacker who knows this secret can craft their own tokens, including malicious tokens that lead to SQL injection. If this configuration value is not set, Keto falls back to a hard-coded default pagination encryption secret. Because this default value is publicly known, attackers can generate valid and malicious pagination tokens manually for installations where this secret is not set.
Preconditions
This issue can be exploited when all of the following conditions are met:
- GetRelationships API is directly or indirectly accessible to the attacker
- The attacker can pass a raw pagination token to the affected API
- The configuration value
secrets.paginationis not set or known to the attacker
Impact
An attacker can execute arbitrary SQL queries through forged pagination tokens.
Mitigation
As a first line of defense, immediately configure a custom value for secrets.pagination by generating a cryptographically secure random secret, for example:
openssl rand -base64 32Next, upgrade Keto to a fixed version as soon as possible.
AnalysisAI
Ory Keto, an open-source authorization service, contains a SQL injection vulnerability in its GetRelationships API due to insecure pagination token handling. Attackers who know or can exploit the default hard-coded pagination encryption secret can craft malicious tokens to execute arbitrary SQL queries. The CVSS score of 7.2 reflects high privileges required (PR:H), though the actual risk is elevated when default secrets remain unchanged in production deployments.
Technical ContextAI
Ory Keto is a Go-based relationship-tuple authorization system that implements permission models. The vulnerability (CWE-89: SQL Injection) resides in the pagination implementation of the GetRelationships API, where pagination tokens are encrypted using a secret configured in 'secrets.pagination'. When this value is not explicitly configured, Keto falls back to a publicly-known hard-coded default secret. Because the token encryption mechanism uses a known key, attackers can decrypt, modify, and re-encrypt tokens containing SQL injection payloads. The affected product is identified by CPE as pkg:go/github.com_ory_keto, indicating the Go package distributed via GitHub. The vulnerability stems from insufficient input validation on pagination tokens after decryption, allowing SQL metacharacters to be injected into database queries.
RemediationAI
Immediately generate and configure a custom cryptographically secure value for 'secrets.pagination' using a command such as 'openssl rand -base64 32' as described in the GitHub advisory at https://github.com/ory/keto/security/advisories/GHSA-c38g-mx2c-9wf2. This configuration change prevents exploitation by invalidating any pagination tokens created with the known default secret. After implementing this mitigation, upgrade Ory Keto to the latest patched version as soon as possible to address the underlying SQL injection flaw in the pagination implementation. As additional defense-in-depth measures, restrict network access to the GetRelationships API to trusted internal services only and implement input validation at API gateway layers if feasible. Review application logs for suspicious pagination token patterns or SQL errors that may indicate exploitation attempts.
The (1) TLS and (2) DTLS implementations in OpenSSL 1.0.1 before 1.0.1g do not properly handle Heartbeat Extension packe
The dtls1_reassemble_fragment function in d1_both.c in OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
The SSLv2 protocol, as used in OpenSSL before 1.0.1s and 1.0.2 before 1.0.2g and other products, requires a server to se
The ssl3_get_key_exchange function in s3_clnt.c in OpenSSL before 0.9.8zd, 1.0.0 before 1.0.0p, and 1.0.1 before 1.0.1k
The SSL protocol 3.0, as used in OpenSSL through 1.0.1i and other products, uses nondeterministic CBC padding, which mak
The AES-NI implementation in OpenSSL before 1.0.1t and 1.0.2 before 1.0.2h does not consider memory allocation during a
The X509_verify_cert function in crypto/x509/x509_vfy.c in OpenSSL 1.0.1n, 1.0.1o, 1.0.2b, and 1.0.2c does not properly
A buffer overrun can be triggered in X.509 certificate verification, specifically in name constraint checking. Rated hig
The ssl3_send_client_key_exchange function in s3_clnt.c in OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before
In OpenSSL 1.1.0 before 1.1.0d, if a malicious server supplies bad parameters for a DHE or ECDHE key exchange then this
A denial of service flaw was found in OpenSSL 0.9.8, 1.0.1, 1.0.2 through 1.0.2h, and 1.1.0 in the way the TLS/SSL proto
Same weakness CWE-89 – SQL Injection
View allVendor StatusVendor
SUSE
Severity: High| Product | Status |
|---|---|
| openSUSE Leap 15.6 | Fixed |
| SUSE Linux Enterprise Module for Package Hub 15 SP5 | Fixed |
| SUSE Linux Enterprise Module for Package Hub 15 SP6 | Fixed |
| openSUSE Leap 15.5 | Fixed |
Share
External POC / Exploit Code
Leaving vuln.today
GHSA-c38g-mx2c-9wf2