Affected by GO-2022-0559
and 10 other vulnerabilities
GO-2022-0559: HashiCorp Consul and Consul Enterprise 1.10.1 Txn.Apply endpoint allowed services to register proxies for other services, enabling access to service traffic. in github.com/hashicorp/consul
GO-2022-0593: HashiCorp Consul Privilege Escalation Vulnerability in github.com/hashicorp/consul
GO-2022-0615: Hashicorp Consul HTTP health check endpoints returning an HTTP redirect may be abused as SSRF vector in github.com/hashicorp/consul
GO-2022-0776: Denial of Service (DoS) in HashiCorp Consul in github.com/hashicorp/consul
GO-2022-0894: Hashicorp Consul Missing SSL Certificate Validation in github.com/hashicorp/consul
GO-2022-0895: HashiCorp Consul L7 deny intention results in an allow action in github.com/hashicorp/consul
GO-2022-1029: HashiCorp Consul vulnerable to authorization bypass in github.com/hashicorp/consul
GO-2023-1827: Hashicorp Consul vulnerable to denial of service in github.com/hashicorp/consul
GO-2023-1850: HashiCorp Consul can use cleartext agent-to-agent RPC communication in github.com/hashicorp/consul
GO-2023-1851: HashiCorp Consul Cross-site Scripting vulnerability in github.com/hashicorp/consul
GO-2023-1853: HashiCorp Consul vulnerable to Origin Validation Error in github.com/hashicorp/consul
The archive utilities manage the internal format of a snapshot, which is a
tar file with the following contents:
meta.json - JSON-encoded snapshot metadata from Raft
state.bin - Encoded snapshot data from Raft
SHA256SUMS - SHA-256 sums of the above two files
The integrity information is automatically created and checked, and a failure
there just looks like an error to the caller.
snapshot manages the interactions between Consul and Raft in order to take
and restore snapshots for disaster recovery. The internal format of a
snapshot is simply a tar file, as described in archive.go.
type Snapshot struct {
// contains filtered or unexported fields
}
Snapshot is a structure that holds state about a temporary file that is used
to hold a snapshot. By using an intermediate file we avoid holding everything
in memory.
New takes a state snapshot of the given Raft instance into a temporary file
and returns an object that gives access to the file as an io.Reader. You must
arrange to call Close() on the returned object or else you will leak a
temporary file.
Close closes the snapshot and removes any temporary storage associated with
it. You must arrange to call this whenever NewSnapshot() has been called
successfully. This is safe to call on a nil snapshot.