Skip to content

OliveTin has Unauthenticated Denial of Service via Memory Exhaustion in PasswordHash API Endpoint

High severity GitHub Reviewed Published Mar 1, 2026 in OliveTin/OliveTin • Updated Mar 5, 2026

Package

gomod github.com/OliveTin/OliveTin (Go)

Affected versions

< 0.0.0-20260227002407-2eb5f0ba79d4

Patched versions

0.0.0-20260227002407-2eb5f0ba79d4

Description

Summary

The PasswordHash API endpoint allows unauthenticated users to trigger excessive memory allocation by sending concurrent password hashing requests. By issuing multiple parallel requests, an attacker can exhaust available container memory, leading to service degradation or complete denial of service (DoS).

The issue occurs because the endpoint performs computationally and memory-intensive hashing operations without request throttling, authentication requirements, or resource limits.

Details

The vulnerable endpoint:

POST /api/olivetin.api.v1.OliveTinApiService/PasswordHash

accepts a JSON body containing a password field and returns a computed password hash.

Each request triggers a memory-intensive hashing operation. When multiple concurrent requests are sent, memory consumption increases significantly. There are no safeguards such as:

  • Authentication requirements
  • Rate limiting
  • Request throttling
  • Memory usage caps per request
  • Concurrency controls

As a result, an attacker can repeatedly invoke the endpoint in parallel, causing excessive RAM allocation inside the container.

In a test environment, 50 concurrent requests resulted in approximately 3.2 GB of memory usage (≈64 MB per request), leading to service instability.

This behavior allows unauthenticated attackers to perform a denial of service attack by exhausting server memory resources.

PoC

Environment

  • Docker container: olivetin-test
  • Exposed API on: http://localhost:1337
  • Default configuration (no authentication enabled)

Reproduction Steps

Run the following script to send 50 concurrent requests:

for i in $(seq 1 50); do
  curl -s -X POST http://localhost:1337/api/olivetin.api.v1.OliveTinApiService/PasswordHash \
    -H "Content-Type: application/json" \
    -d "{\"password\":\"flood-$i\"}" &
done
docker stats olivetin-test --no-stream
wait
┌──(root㉿kali)-[~/cve/OliveTin]
└─# docker stats olivetin-test --no-stream
CONTAINER ID   NAME            CPU %     MEM USAGE / LIMIT     MEM %     NET I/O         BLOCK I/O        PIDS
18509670bf3e   olivetin-test   344.63%   6.189GiB / 7.753GiB   79.83%    313kB / 288kB   4.31MB / 106MB   7

Docker CPU is 344.63%

Impact

This vulnerability allows unauthenticated remote attackers to:

  • Exhaust server memory
  • Crash the service
  • Cause availability loss
  • Trigger container termination in orchestrated environments

This is a Denial of Service (DoS) vulnerability affecting service availability.

Production deployments without reverse proxy rate limiting (e.g., Nginx, Traefik) are especially at risk.

References

@jamesread jamesread published to OliveTin/OliveTin Mar 1, 2026
Published to the GitHub Advisory Database Mar 2, 2026
Reviewed Mar 2, 2026
Published by the National Vulnerability Database Mar 5, 2026
Last updated Mar 5, 2026

Severity

High

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

EPSS score

Exploit Prediction Scoring System (EPSS)

This score estimates the probability of this vulnerability being exploited within the next 30 days. Data provided by FIRST.
(62nd percentile)

Weaknesses

Uncontrolled Resource Consumption

The product does not properly control the allocation and maintenance of a limited resource. Learn more on MITRE.

Allocation of Resources Without Limits or Throttling

The product allocates a reusable resource or group of resources on behalf of an actor without imposing any intended restrictions on the size or number of resources that can be allocated. Learn more on MITRE.

CVE ID

CVE-2026-28342

GHSA ID

GHSA-pc8g-78pf-4xrp

Source code

Credits

Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.