CrateDB's Blob HTTP handler bypasses authorization
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- None · High · None
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-863.
Summary
CrateDB is a distributed SQL database. Prior to versions 6.2.8 and 6.3.2, any authenticated user can read or delete any blob whose SHA-1 digest they know, and can plant new blobs unconditionally, in any blob table, regardless of `GRANT`s. CrateDB has two ways to access blob storage: SQL (`SELECT ... FROM blob.<table>` and friends) and the blob HTTP API (`GET|PUT|DELETE /_blobs/{table}/{digest}`). The SQL path goes through `AccessControl`, which is what enforces privilege grants; that's why `SELECT digest FROM blob.secret_blobs` fails for a user who has no grants on the table. The HTTP path authenticates the request but never asks `AccessControl` whether the authenticated user is allowed to touch the table. So a user with no grants gets `MissingPrivilegeException` from SQL and `200 OK` plus the blob bytes from `GET /_blobs/secret_blobs/<digest>`. Deployments that don't use `BLOB TABLE` are unaffected. Authentication itself still works; the bug is strictly that being authenticated as anyone is treated as sufficient for any blob op. Versions 6.2.8 and 6.3.2 fix the issue.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| crate | crate | before 6.2.8; 6.3.0 to before 6.3.2 | 6.2.8, 6.3.2 | Patch available | CNA |
| — | io.crate:crate (Maven) | before 6.2.8 | 6.2.8 | Patch available | GHSA-2xv8-gjwh-fv8p |
| — | io.crate:crate (Maven) | 6.3.0 to before 6.3.2 | 6.3.2 | Patch available | GHSA-2xv8-gjwh-fv8p |
- crate Vendorcrate Affected before 6.2.8; 6.3.0 to before 6.3.2 Fixed in 6.2.8, 6.3.2 Patch available CNA
- io.crate:crate (Maven) Vendor— Affected before 6.2.8 Fixed in 6.2.8 Patch available GHSA-2xv8-gjwh-fv8p
- io.crate:crate (Maven) Vendor— Affected 6.3.0 to before 6.3.2 Fixed in 6.3.2 Patch available GHSA-2xv8-gjwh-fv8p
Remediation
- Fix · CNA crate (crate) Fixed in 6.2.8, 6.3.2
- Fix · GHSA-2xv8-gjwh-fv8p io.crate:crate (Maven) Fixed in 6.2.8 Advisory →
- Fix · GHSA-2xv8-gjwh-fv8p io.crate:crate (Maven) Fixed in 6.3.2 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-49989
- 2026-10-03 Alias added: GHSA-2xv8-gjwh-fv8p
References
Sources
- CVE-2026-49989 · CVE Program
- CVE-2026-49989 · NVD
- FIRST EPSS
- GHSA-2xv8-gjwh-fv8p · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences