Skip to content

Missing Role Based Access Control for the REST handlers in bleve/http package

Moderate
abhinavdangeti published GHSA-9w9f-6mg8-jp7w Jun 1, 2022

Package

gomod bleve/http (Go)

Affected versions

<v2.5.0

Patched versions

v2.5.0

Description

Impact

What kind of vulnerability is it? Who is impacted?

Bleve (< v2.5.0) includes HTTP utilities under bleve/http package, that are used by its sample application.
(https://github.com/blevesearch/bleve-explorer)
These HTTP methods paves way for exploitation of a node’s filesystem where the bleve index resides,
if the user has used bleve’s own HTTP (bleve/http) handlers for exposing the access to the indexes.
For instance, the CreateIndexHandler (http/index_create.go) and DeleteIndexHandler (http/index_delete.go)
enable an attacker to create a bleve index (directory structure) anywhere where the user running the server
has the write permissions and to delete recursively any directory owned by the same user account.

Users who have used the bleve/http package for exposing access to bleve index without the explicit
handling for the Role Based Access Controls(RBAC) of the index assets would be impacted.

Patches

Has the problem been patched? What versions should users upgrade to?

No. The http package is purely intended to be used for demonstration purposes.
And bleve is never designed to be handling the RBACs or it was ever advertised to be used in that way.
Hence the collaborators of this project have decided to stay away from adding any authentication or
authorization to bleve project at the moment.

Workarounds

Is there a way for users to fix or remediate the vulnerability without upgrading?

The bleve/http package is mainly for demonstration purposes and it lacks exhaustive validation of the user
inputs as well as any authentication and authorization measures.
So it is recommended to not use that in production use cases.

For more information

If you have any questions or comments about this advisory:

Severity

Moderate

CVE ID

CVE-2022-31022

Weaknesses

Authentication Bypass Using an Alternate Path or Channel

A product requires authentication, but the product has an alternate path or channel that does not require authentication. Learn more on MITRE.

Missing Authentication for Critical Function

The product does not perform any authentication for functionality that requires a provable user identity or consumes a significant amount of resources. Learn more on MITRE.